|
KiCad PCB EDA Suite
|
#include <panel_remote_symbol.h>
Public Member Functions | |
| PANEL_REMOTE_SYMBOL (SCH_EDIT_FRAME *aParent) | |
| ~PANEL_REMOTE_SYMBOL () override | |
| void | RefreshDataSources () |
| bool | HasDataSources () const |
| void | BindWebViewLoaded () |
| void | SaveCookies () |
| void | LoadCookies () |
Private Member Functions | |
| void | onDataSourceChanged (wxCommandEvent &aEvent) |
| void | onConfigure (wxCommandEvent &aEvent) |
| void | onRefresh (wxCommandEvent &aEvent) |
| void | onWebViewLoaded (wxWebViewEvent &aEvent) |
| void | onDarkModeToggle (wxSysColourChangedEvent &aEvent) |
| void | onOAuthLoopback (wxCommandEvent &aEvent) |
| bool | loadProvider (int aIndex) |
| void | loadProviderPage (const REMOTE_PROVIDER_METADATA &aMetadata, const wxString &aAccessToken) |
| void | bootstrapAuthenticatedSession (const REMOTE_PROVIDER_METADATA &aMetadata, const wxString &aAccessToken) |
| void | showMessage (const wxString &aMessage) |
| void | onKicadMessage (const wxString &aMessage) |
| void | handleRpcMessage (const nlohmann::json &aMessage) |
| void | beginSessionHandshake () |
| void | sendRpcReply (const wxString &aCommand, int aResponseTo, nlohmann::json aParameters=nlohmann::json::object()) |
| void | sendRpcError (const wxString &aCommand, int aResponseTo, const wxString &aErrorCode, const wxString &aErrorMessage) |
| void | sendRpcNotification (const wxString &aCommand, nlohmann::json aParameters=nlohmann::json::object()) |
| void | sendRpcEnvelope (nlohmann::json aEnvelope) |
| bool | startInteractiveLogin (const REMOTE_PROVIDER_ENTRY &aProvider, const REMOTE_PROVIDER_METADATA &aMetadata, wxString &aError) |
| bool | signOutProvider (const REMOTE_PROVIDER_ENTRY &aProvider, wxString &aError) |
| std::optional< OAUTH_TOKEN_SET > | loadTokens (const REMOTE_PROVIDER_ENTRY &aProvider) const |
| wxString | loadAccessToken (const REMOTE_PROVIDER_ENTRY &aProvider) |
| wxFileName | cookieFilePath (const wxString &aProviderId) const |
| void | clearCookies (bool aDeleteSavedCookieFile=true) |
| bool | receiveComponent (const nlohmann::json &aParams, const std::vector< uint8_t > &aPayload, bool aPlaceSymbol, wxString &aError) |
| bool | receiveFootprint (const nlohmann::json &aParams, const std::vector< uint8_t > &aPayload, wxString &aError) |
| bool | receiveSymbol (const nlohmann::json &aParams, const std::vector< uint8_t > &aPayload, wxString &aError) |
| bool | receive3DModel (const nlohmann::json &aParams, const std::vector< uint8_t > &aPayload, wxString &aError) |
| bool | receiveSPICEModel (const nlohmann::json &aParams, const std::vector< uint8_t > &aPayload, wxString &aError) |
| bool | receiveComponentManifest (const nlohmann::json &aParams, bool aPlaceSymbol, wxString &aError) |
| wxString | sanitizeForScript (const std::string &aJson) const |
| bool | decodeBase64Payload (const std::string &aMessage, std::vector< uint8_t > &aOutPayload, wxString &aError) const |
| bool | decompressIfNeeded (const std::string &aCompression, const std::vector< uint8_t > &aInput, std::vector< uint8_t > &aOutput, wxString &aError) const |
| std::unique_ptr< LIB_SYMBOL > | loadSymbolFromPayload (const std::vector< uint8_t > &aPayload, const wxString &aLibItemName, wxString &aError) const |
Definition at line 53 of file panel_remote_symbol.h.
|
explicit |
Definition at line 231 of file panel_remote_symbol.cpp.
References _, config, KiBitmapBundle(), m_configButton, m_dataSourceChoice, m_frame, m_hasSelectedProviderMetadata, m_messageIdCounter, m_pendingHandshake, m_refreshButton, m_selectedProviderIndex, m_webView, onConfigure(), onDarkModeToggle(), onDataSourceChanged(), onKicadMessage(), onOAuthLoopback(), onRefresh(), onWebViewLoaded(), RefreshDataSources(), and reload.
|
override |
Definition at line 288 of file panel_remote_symbol.cpp.
References onDarkModeToggle(), and SaveCookies().
|
private |
Definition at line 545 of file panel_remote_symbol.cpp.
References GetSemanticVersion(), m_messageIdCounter, m_sessionId, m_webView, REMOTE_SYMBOL_SESSION_VERSION, and sendRpcNotification().
Referenced by onWebViewLoaded().
| void PANEL_REMOTE_SYMBOL::BindWebViewLoaded | ( | ) |
Definition at line 295 of file panel_remote_symbol.cpp.
References m_webView, and onWebViewLoaded().
|
private |
Definition at line 487 of file panel_remote_symbol.cpp.
References m_providerClient, m_webView, REMOTE_PROVIDER_ERROR::message, and REMOTE_PROVIDER_METADATA::panel_url.
Referenced by loadProviderPage().
|
private |
Definition at line 340 of file panel_remote_symbol.cpp.
References cookieFilePath(), KIPLATFORM::WEBVIEW::DeleteCookies(), m_providerEntries, m_selectedProviderIndex, and m_webView.
Referenced by loadProvider(), and signOutProvider().
|
private |
Definition at line 302 of file panel_remote_symbol.cpp.
References SanitizeRemoteFileComponent().
Referenced by clearCookies(), LoadCookies(), and SaveCookies().
|
private |
Definition at line 70 of file panel_remote_symbol.cpp.
References _.
Referenced by handleRpcMessage(), and receiveComponent().
|
private |
Definition at line 94 of file panel_remote_symbol.cpp.
References _, m_hasSelectedProviderMetadata, and m_selectedProviderMetadata.
Referenced by handleRpcMessage(), and receiveComponent().
|
private |
Definition at line 787 of file panel_remote_symbol.cpp.
References _, decodeBase64Payload(), decompressIfNeeded(), GetSemanticVersion(), loadAccessToken(), loadProvider(), m_hasSelectedProviderMetadata, m_providerEntries, m_selectedProviderIndex, m_selectedProviderMetadata, m_sessionId, OAUTH2, REMOTE_PROVIDER_ENTRY::provider_id, receive3DModel(), receiveComponent(), receiveComponentManifest(), receiveFootprint(), receiveSPICEModel(), receiveSymbol(), REMOTE_SYMBOL_SESSION_VERSION, RemoteProviderJsonString(), sendRpcError(), sendRpcReply(), signOutProvider(), and startInteractiveLogin().
Referenced by onKicadMessage().
|
inline |
Definition at line 60 of file panel_remote_symbol.h.
References m_providerEntries.
|
private |
Definition at line 646 of file panel_remote_symbol.cpp.
References OAUTH_TOKEN_SET::access_token, loadTokens(), m_hasSelectedProviderMetadata, m_providerClient, m_selectedProviderMetadata, m_tokenStore, REMOTE_PROVIDER_ENTRY::provider_id, and OAUTH_TOKEN_SET::refresh_token.
Referenced by handleRpcMessage(), and loadProvider().
| void PANEL_REMOTE_SYMBOL::LoadCookies | ( | ) |
Definition at line 325 of file panel_remote_symbol.cpp.
References cookieFilePath(), KIPLATFORM::WEBVIEW::LoadCookies(), m_providerEntries, m_selectedProviderIndex, and m_webView.
Referenced by loadProvider().
|
private |
Definition at line 438 of file panel_remote_symbol.cpp.
References _, clearCookies(), GetAppSettings(), loadAccessToken(), LoadCookies(), loadProviderPage(), m_hasSelectedProviderMetadata, m_pendingHandshake, m_providerClient, m_providerEntries, m_selectedProviderIndex, m_selectedProviderMetadata, REMOTE_PROVIDER_ERROR::message, SaveCookies(), and showMessage().
Referenced by handleRpcMessage(), onDarkModeToggle(), onDataSourceChanged(), onOAuthLoopback(), onRefresh(), and RefreshDataSources().
|
private |
Definition at line 469 of file panel_remote_symbol.cpp.
References bootstrapAuthenticatedSession(), m_pendingHandshake, m_webView, REMOTE_PROVIDER_METADATA::panel_url, and REMOTE_PROVIDER_METADATA::session_bootstrap_url.
Referenced by loadProvider().
|
private |
Definition at line 163 of file panel_remote_symbol.cpp.
References _, and IO_ERROR::What().
Referenced by receiveSymbol().
|
private |
Definition at line 640 of file panel_remote_symbol.cpp.
References m_tokenStore, and REMOTE_PROVIDER_ENTRY::provider_id.
Referenced by loadAccessToken(), and signOutProvider().
|
private |
Definition at line 410 of file panel_remote_symbol.cpp.
References RefreshDataSources(), and DIALOG_SHIM::ShowModal().
Referenced by PANEL_REMOTE_SYMBOL().
|
private |
Definition at line 429 of file panel_remote_symbol.cpp.
References loadProvider(), and m_selectedProviderIndex.
Referenced by PANEL_REMOTE_SYMBOL(), and ~PANEL_REMOTE_SYMBOL().
|
private |
Definition at line 404 of file panel_remote_symbol.cpp.
References loadProvider().
Referenced by PANEL_REMOTE_SYMBOL().
|
private |
Definition at line 622 of file panel_remote_symbol.cpp.
References handleRpcMessage().
Referenced by PANEL_REMOTE_SYMBOL().
|
private |
Definition at line 1430 of file panel_remote_symbol.cpp.
References _, GetAppSettings(), loadProvider(), m_hasSelectedProviderMetadata, m_oauthLoopbackServer, m_pendingOAuthMetadata, m_pendingOAuthSession, m_pendingProviderId, m_providerClient, m_selectedProviderIndex, m_tokenStore, REMOTE_PROVIDER_ERROR::message, OAUTH_TOKEN_SET::refresh_token, and showMessage().
Referenced by PANEL_REMOTE_SYMBOL().
|
private |
Definition at line 420 of file panel_remote_symbol.cpp.
References loadProvider(), and m_selectedProviderIndex.
Referenced by PANEL_REMOTE_SYMBOL().
|
private |
Definition at line 525 of file panel_remote_symbol.cpp.
References beginSessionHandshake(), and m_pendingHandshake.
Referenced by BindWebViewLoaded(), and PANEL_REMOTE_SYMBOL().
|
private |
Definition at line 1311 of file panel_remote_symbol.cpp.
References EnsureRemoteDestinationRoot(), RemoteLibraryPrefix(), RemoteProviderJsonString(), SanitizeRemoteFileComponent(), and WriteRemoteBinaryFile().
Referenced by handleRpcMessage(), and receiveComponent().
|
private |
Definition at line 1142 of file panel_remote_symbol.cpp.
References _, decodeBase64Payload(), decompressIfNeeded(), receive3DModel(), receiveFootprint(), receiveSPICEModel(), receiveSymbol(), and RemoteProviderJsonString().
Referenced by handleRpcMessage().
|
private |
Definition at line 1366 of file panel_remote_symbol.cpp.
References _, REMOTE_PROVIDER_PART_ASSET::asset_type, REMOTE_PROVIDER_PART_MANIFEST::assets, REMOTE_PROVIDER_PART_ASSET::content_type, REMOTE_PROVIDER_PART_MANIFEST::display_name, REMOTE_PROVIDER_PART_ASSET::download_url, REMOTE_SYMBOL_IMPORT_JOB::Import(), REMOTE_SYMBOL_IMPORT_CONTEXT::library_name, REMOTE_PROVIDER_PART_MANIFEST::license, m_frame, m_hasSelectedProviderMetadata, m_selectedProviderMetadata, REMOTE_PROVIDER_PART_ASSET::name, REMOTE_PROVIDER_PART_MANIFEST::part_id, RemoteProviderJsonString(), REMOTE_PROVIDER_PART_ASSET::required, REMOTE_PROVIDER_PART_ASSET::sha256, REMOTE_PROVIDER_PART_ASSET::size_bytes, REMOTE_PROVIDER_PART_MANIFEST::summary, REMOTE_SYMBOL_IMPORT_CONTEXT::symbol_name, REMOTE_PROVIDER_PART_ASSET::target_library, and REMOTE_PROVIDER_PART_ASSET::target_name.
Referenced by handleRpcMessage().
|
private |
Definition at line 1250 of file panel_remote_symbol.cpp.
References _, REMOTE_PROVIDER_SETTINGS::add_to_global_table, EnsureRemoteDestinationRoot(), EnsureRemoteLibraryEntry(), FOOTPRINT, GetAppSettings(), PGM_BASE::GetLibraryManager(), GLOBAL, EESCHEMA_SETTINGS::m_RemoteSymbol, Pgm(), PROJECT, LIBRARY_MANAGER::ReloadLibraryEntry(), RemoteLibraryPrefix(), RemoteProviderJsonString(), SanitizeRemoteFileComponent(), and WriteRemoteBinaryFile().
Referenced by handleRpcMessage(), and receiveComponent().
|
private |
Definition at line 1337 of file panel_remote_symbol.cpp.
References EnsureRemoteDestinationRoot(), RemoteLibraryPrefix(), RemoteProviderJsonString(), SanitizeRemoteFileComponent(), and WriteRemoteBinaryFile().
Referenced by handleRpcMessage(), and receiveComponent().
|
private |
Definition at line 1043 of file panel_remote_symbol.cpp.
References _, REMOTE_PROVIDER_SETTINGS::add_to_global_table, EnsureRemoteDestinationRoot(), EnsureRemoteLibraryEntry(), GetAppSettings(), PGM_BASE::GetLibraryManager(), GLOBAL, loadSymbolFromPayload(), m_frame, EESCHEMA_SETTINGS::m_RemoteSymbol, Pgm(), PlaceRemoteDownloadedSymbol(), PROJECT, LIBRARY_MANAGER::ReloadLibraryEntry(), RemoteLibraryPrefix(), RemoteProviderJsonString(), SanitizeRemoteFileComponent(), SYMBOL_LIBRARY_ADAPTER::SAVE_OK, SYMBOL_LIBRARY_ADAPTER::SaveSymbol(), LIB_ID::SetLibItemName(), LIB_ID::SetLibNickname(), SYMBOL, and PROJECT_SCH::SymbolLibAdapter().
Referenced by handleRpcMessage(), and receiveComponent().
| void PANEL_REMOTE_SYMBOL::RefreshDataSources | ( | ) |
Definition at line 356 of file panel_remote_symbol.cpp.
References _, GetAppSettings(), REMOTE_PROVIDER_SETTINGS::last_used_provider_id, loadProvider(), m_dataSourceChoice, m_hasSelectedProviderMetadata, m_providerEntries, EESCHEMA_SETTINGS::m_RemoteSymbol, m_selectedProviderIndex, REMOTE_PROVIDER_SETTINGS::providers, SaveCookies(), and showMessage().
Referenced by onConfigure(), and PANEL_REMOTE_SYMBOL().
|
private |
Definition at line 154 of file panel_remote_symbol.cpp.
Referenced by sendRpcEnvelope().
| void PANEL_REMOTE_SYMBOL::SaveCookies | ( | ) |
Definition at line 312 of file panel_remote_symbol.cpp.
References cookieFilePath(), m_providerEntries, m_selectedProviderIndex, m_webView, and KIPLATFORM::WEBVIEW::SaveCookies().
Referenced by loadProvider(), RefreshDataSources(), and ~PANEL_REMOTE_SYMBOL().
|
private |
Definition at line 561 of file panel_remote_symbol.cpp.
References m_webView, and sanitizeForScript().
Referenced by sendRpcError(), sendRpcNotification(), and sendRpcReply().
|
private |
Definition at line 590 of file panel_remote_symbol.cpp.
References m_messageIdCounter, m_sessionId, REMOTE_SYMBOL_SESSION_VERSION, and sendRpcEnvelope().
Referenced by handleRpcMessage().
|
private |
Definition at line 606 of file panel_remote_symbol.cpp.
References m_messageIdCounter, m_sessionId, REMOTE_SYMBOL_SESSION_VERSION, and sendRpcEnvelope().
Referenced by beginSessionHandshake().
|
private |
Definition at line 572 of file panel_remote_symbol.cpp.
References m_messageIdCounter, m_sessionId, REMOTE_SYMBOL_SESSION_VERSION, and sendRpcEnvelope().
Referenced by handleRpcMessage().
|
private |
Definition at line 504 of file panel_remote_symbol.cpp.
References EscapeHTML(), and m_webView.
Referenced by loadProvider(), onOAuthLoopback(), and RefreshDataSources().
|
private |
Definition at line 746 of file panel_remote_symbol.cpp.
References _, clearCookies(), GetAppSettings(), loadTokens(), m_hasSelectedProviderMetadata, m_providerClient, m_selectedProviderMetadata, m_tokenStore, and REMOTE_PROVIDER_ENTRY::provider_id.
Referenced by handleRpcMessage().
|
private |
Definition at line 685 of file panel_remote_symbol.cpp.
References _, REMOTE_PROVIDER_METADATA::auth, REMOTE_PROVIDER_AUTH_METADATA::client_id, OAUTH_PKCE::GenerateCodeVerifier(), OAUTH_PKCE::GenerateState(), m_oauthLoopbackServer, m_pendingOAuthMetadata, m_pendingOAuthSession, m_pendingProviderId, m_providerClient, REMOTE_PROVIDER_ERROR::message, OAUTH2, REMOTE_PROVIDER_ENTRY::provider_id, REMOTE_PROVIDER_AUTH_METADATA::scopes, and REMOTE_PROVIDER_AUTH_METADATA::type.
Referenced by handleRpcMessage().
|
private |
Definition at line 120 of file panel_remote_symbol.h.
Referenced by PANEL_REMOTE_SYMBOL().
|
private |
Definition at line 119 of file panel_remote_symbol.h.
Referenced by PANEL_REMOTE_SYMBOL(), and RefreshDataSources().
|
private |
Definition at line 118 of file panel_remote_symbol.h.
Referenced by PANEL_REMOTE_SYMBOL(), receiveComponentManifest(), and receiveSymbol().
|
private |
Definition at line 126 of file panel_remote_symbol.h.
Referenced by decompressIfNeeded(), handleRpcMessage(), loadAccessToken(), loadProvider(), onOAuthLoopback(), PANEL_REMOTE_SYMBOL(), receiveComponentManifest(), RefreshDataSources(), and signOutProvider().
|
private |
Definition at line 128 of file panel_remote_symbol.h.
Referenced by beginSessionHandshake(), PANEL_REMOTE_SYMBOL(), sendRpcError(), sendRpcNotification(), and sendRpcReply().
|
private |
Definition at line 132 of file panel_remote_symbol.h.
Referenced by onOAuthLoopback(), and startInteractiveLogin().
|
private |
Definition at line 129 of file panel_remote_symbol.h.
Referenced by loadProvider(), loadProviderPage(), onWebViewLoaded(), and PANEL_REMOTE_SYMBOL().
|
private |
Definition at line 133 of file panel_remote_symbol.h.
Referenced by onOAuthLoopback(), and startInteractiveLogin().
|
private |
Definition at line 134 of file panel_remote_symbol.h.
Referenced by onOAuthLoopback(), and startInteractiveLogin().
|
private |
Definition at line 135 of file panel_remote_symbol.h.
Referenced by onOAuthLoopback(), and startInteractiveLogin().
|
private |
Definition at line 130 of file panel_remote_symbol.h.
Referenced by bootstrapAuthenticatedSession(), loadAccessToken(), loadProvider(), onOAuthLoopback(), signOutProvider(), and startInteractiveLogin().
|
private |
Definition at line 123 of file panel_remote_symbol.h.
Referenced by clearCookies(), handleRpcMessage(), HasDataSources(), LoadCookies(), loadProvider(), RefreshDataSources(), and SaveCookies().
|
private |
Definition at line 121 of file panel_remote_symbol.h.
Referenced by PANEL_REMOTE_SYMBOL().
|
private |
Definition at line 124 of file panel_remote_symbol.h.
Referenced by clearCookies(), handleRpcMessage(), LoadCookies(), loadProvider(), onDarkModeToggle(), onOAuthLoopback(), onRefresh(), PANEL_REMOTE_SYMBOL(), RefreshDataSources(), and SaveCookies().
|
private |
Definition at line 125 of file panel_remote_symbol.h.
Referenced by decompressIfNeeded(), handleRpcMessage(), loadAccessToken(), loadProvider(), receiveComponentManifest(), and signOutProvider().
|
private |
Definition at line 127 of file panel_remote_symbol.h.
Referenced by beginSessionHandshake(), handleRpcMessage(), sendRpcError(), sendRpcNotification(), and sendRpcReply().
|
private |
Definition at line 131 of file panel_remote_symbol.h.
Referenced by loadAccessToken(), loadTokens(), onOAuthLoopback(), and signOutProvider().
|
private |
Definition at line 122 of file panel_remote_symbol.h.
Referenced by beginSessionHandshake(), BindWebViewLoaded(), bootstrapAuthenticatedSession(), clearCookies(), LoadCookies(), loadProviderPage(), PANEL_REMOTE_SYMBOL(), SaveCookies(), sendRpcEnvelope(), and showMessage().