├── .gitignore ├── .gitlab-ci.yml ├── .gitmodules ├── CellFrameDashboard.pro ├── CellFrameDashboardGUI ├── Autocomplete │ ├── CommandHelperController.cpp │ └── CommandHelperController.h ├── CellFrameDashboardGUI.conf ├── CellFrameDashboardGUI.pro ├── ConfigWorker │ ├── configfile.cpp │ ├── configfile.h │ ├── configworker.cpp │ └── configworker.h ├── DapApplication.cpp ├── DapApplication.h ├── DapServiceController.cpp ├── DapServiceController.h ├── DataManager │ ├── DapAbstractDataManager.cpp │ ├── DapAbstractDataManager.h │ ├── DapDataManagerController.cpp │ ├── DapDataManagerController.h │ ├── DapNetworksManager.cpp │ ├── DapNetworksManager.h │ ├── DapNetworksTypes.h │ └── DataManager.pri ├── Models │ ├── AbstractModels │ │ ├── DapAbstractDiagnosticModel.cpp │ │ ├── DapAbstractDiagnosticModel.h │ │ ├── DapAbstractWalletList.cpp │ │ └── DapAbstractWalletList.h │ ├── DEXModel │ │ ├── DEXTypes.cpp │ │ ├── DEXTypes.h │ │ ├── DapOrderHistoryModel.cpp │ │ ├── DapOrderHistoryModel.h │ │ ├── DapTokenPairModel.cpp │ │ ├── DapTokenPairModel.h │ │ ├── DapTokensModel.cpp │ │ ├── DapTokensModel.h │ │ ├── OrdersHistoryProxyModel.cpp │ │ ├── OrdersHistoryProxyModel.h │ │ ├── TokenPairsProxyModel.cpp │ │ ├── TokenPairsProxyModel.h │ │ ├── TokensProxyModel.cpp │ │ └── TokensProxyModel.h │ ├── DapDiagnosticModel.cpp │ ├── DapDiagnosticModel.h │ ├── DapHistoryModel.cpp │ ├── DapHistoryModel.h │ ├── DapHistoryProxyModel.cpp │ ├── DapHistoryProxyModel.h │ ├── DapInfoWalletModel.cpp │ ├── DapInfoWalletModel.h │ ├── DapListWalletsModel.cpp │ ├── DapListWalletsModel.h │ ├── DapNetworkModel.cpp │ ├── DapNetworkModel.h │ ├── DapOrdersModel.cpp │ ├── DapOrdersModel.h │ ├── DapStringListModel.cpp │ ├── DapStringListModel.h │ ├── DapTokensWalletModel.cpp │ ├── DapTokensWalletModel.h │ ├── DapWalletListModel.cpp │ ├── DapWalletListModel.h │ ├── Models.pri │ ├── OrdersProxyModel.cpp │ ├── OrdersProxyModel.h │ ├── TokenProxyModel.cpp │ └── TokenProxyModel.h ├── Modules │ ├── Certificates │ │ ├── DapModuleCertificates.cpp │ │ └── DapModuleCertificates.h │ ├── Console │ │ ├── DapModuleConsole.cpp │ │ ├── DapModuleConsole.h │ │ └── consoleitem.h │ ├── DapAbstractModule.cpp │ ├── DapAbstractModule.h │ ├── DapModulesController.cpp │ ├── DapModulesController.h │ ├── Dex │ │ ├── DapModuleDex.cpp │ │ ├── DapModuleDex.h │ │ ├── DapModuleDexLightPanel.cpp │ │ ├── DapModuleDexLightPanel.h │ │ ├── DapRegularTokenType.cpp │ │ ├── DapRegularTokenType.h │ │ └── StockDataWorker │ │ │ ├── CandleChartWorker.cpp │ │ │ ├── CandleChartWorker.h │ │ │ ├── ChartTypes.h │ │ │ ├── CreateCandleChart.cpp │ │ │ ├── CreateCandleChart.h │ │ │ ├── CreatingSheduleController.cpp │ │ │ ├── CreatingSheduleController.h │ │ │ ├── DapCommonDexMethods.cpp │ │ │ ├── DapCommonDexMethods.h │ │ │ ├── MainInfoChart.cpp │ │ │ ├── MainInfoChart.h │ │ │ ├── OrderBookWorker.cpp │ │ │ ├── OrderBookWorker.h │ │ │ ├── StockDataWorker.cpp │ │ │ ├── StockDataWorker.h │ │ │ ├── TokenPairInfo.h │ │ │ ├── TokenPairsWorker.cpp │ │ │ └── TokenPairsWorker.h │ ├── Diagnostics │ │ ├── AbstractDiagnostic.cpp │ │ ├── AbstractDiagnostic.h │ │ ├── DapModuleDiagnostics.cpp │ │ ├── DapModuleDiagnostics.h │ │ ├── DiagtoolConnectCotroller.cpp │ │ └── DiagtoolConnectCotroller.h │ ├── Logs │ │ ├── DapLogsReader.cpp │ │ ├── DapLogsReader.h │ │ ├── DapModuleLogs.cpp │ │ ├── DapModuleLogs.h │ │ ├── loginfo.h │ │ ├── logmodel.cpp │ │ ├── logmodel.h │ │ ├── logreader.cpp │ │ └── logreader.h │ ├── MasterNode │ │ ├── DapMasterNodeKeys.cpp │ │ ├── DapMasterNodeKeys.h │ │ ├── DapModuleMasterNode.cpp │ │ ├── DapModuleMasterNode.h │ │ └── MasterNodeCommand │ │ │ ├── DapAbstractMasterNodeCommand.cpp │ │ │ ├── DapAbstractMasterNodeCommand.h │ │ │ ├── DapNodeDelStage.cpp │ │ │ ├── DapNodeDelStage.h │ │ │ ├── DapSrvStakeInvalidateStage.cpp │ │ │ ├── DapSrvStakeInvalidateStage.h │ │ │ ├── DapStakeDelegate.cpp │ │ │ ├── DapStakeDelegate.h │ │ │ ├── DapStakeListCommand.cpp │ │ │ ├── DapStakeListCommand.h │ │ │ ├── DapUpdateConfigStage.cpp │ │ │ ├── DapUpdateConfigStage.h │ │ │ ├── DapUpdateStakeData.cpp │ │ │ ├── DapUpdateStakeData.h │ │ │ ├── DapWaitingPermission.cpp │ │ │ └── DapWaitingPermission.h │ ├── Modules.pri │ ├── Networks │ │ ├── DapModuleNetworks.cpp │ │ └── DapModuleNetworks.h │ ├── Orders │ │ ├── DapModuleOrders.cpp │ │ └── DapModuleOrders.h │ ├── Settings │ │ ├── DapModuleSettings.cpp │ │ └── DapModuleSettings.h │ ├── Tokens │ │ ├── DapModuleTokens.cpp │ │ └── DapModuleTokens.h │ ├── TxExplorer │ │ ├── DapModuleTxExplorer.cpp │ │ └── DapModuleTxExplorer.h │ ├── Wallet │ │ ├── CommonWallet │ │ │ └── DapWalletInfo.h │ │ ├── DapModuleWallet.cpp │ │ ├── DapModuleWallet.h │ │ └── WalletRestore │ │ │ ├── english_words.txt │ │ │ ├── randomfile.cpp │ │ │ ├── randomfile.h │ │ │ ├── randomwords.cpp │ │ │ ├── randomwords.h │ │ │ ├── wallethashmanager.cpp │ │ │ └── wallethashmanager.h │ └── dApps │ │ ├── DapDappsNetworkManager.cpp │ │ ├── DapDappsNetworkManager.h │ │ ├── DapModuledApps.cpp │ │ └── DapModuledApps.h ├── NotifyController │ ├── DapNotificationWatcher.cpp │ ├── DapNotificationWatcher.h │ ├── DapNotifyController.cpp │ └── DapNotifyController.h ├── Resources │ ├── BlackTheme │ │ ├── Illustratons │ │ │ ├── comingsoon_illustration.png │ │ │ ├── illustration_vpn-service.svg │ │ │ ├── lock_illustration.svg │ │ │ ├── wallet_illustration.png │ │ │ └── wallet_illustration.svg │ │ ├── cellframe-logo-dashboard.svg │ │ ├── icons │ │ │ ├── navigation │ │ │ │ ├── icon_certificates.png │ │ │ │ ├── icon_certificates.svg │ │ │ │ ├── icon_console.png │ │ │ │ ├── icon_console.svg │ │ │ │ ├── icon_daaps.png │ │ │ │ ├── icon_daaps.svg │ │ │ │ ├── icon_exchange.png │ │ │ │ ├── icon_exchange.svg │ │ │ │ ├── icon_history.png │ │ │ │ ├── icon_history.svg │ │ │ │ ├── icon_logs.png │ │ │ │ ├── icon_logs.svg │ │ │ │ ├── icon_master_node.svg │ │ │ │ ├── icon_settings.png │ │ │ │ ├── icon_settings.svg │ │ │ │ ├── icon_tokens.png │ │ │ │ ├── icon_tokens.svg │ │ │ │ ├── icon_vpn.png │ │ │ │ ├── icon_vpn_client.svg │ │ │ │ ├── icon_vpn_service.svg │ │ │ │ ├── icon_wallet.png │ │ │ │ ├── icon_wallet.svg │ │ │ │ └── vpn-client_icon.png │ │ │ └── other │ │ │ │ ├── Arrow.png │ │ │ │ ├── Double_arrow.png │ │ │ │ ├── arrow_button.svg │ │ │ │ ├── arrow_button_hover.svg │ │ │ │ ├── arrow_down.svg │ │ │ │ ├── arrow_down_rect.svg │ │ │ │ ├── arrow_left_right.svg │ │ │ │ ├── back.svg │ │ │ │ ├── back_hover.svg │ │ │ │ ├── bg-menuitem_active.png │ │ │ │ ├── bg-menuitem_hover.png │ │ │ │ ├── browser.svg │ │ │ │ ├── browser_disabled.svg │ │ │ │ ├── browser_hover.svg │ │ │ │ ├── check_icon.png │ │ │ │ ├── check_icon.svg │ │ │ │ ├── copy_hover_small.svg │ │ │ │ ├── copy_small.svg │ │ │ │ ├── cross.png │ │ │ │ ├── cross.svg │ │ │ │ ├── crossBold.svg │ │ │ │ ├── crossBoldTest.svg │ │ │ │ ├── crossBold_hover.svg │ │ │ │ ├── crossTest.svg │ │ │ │ ├── cross_hover.png │ │ │ │ ├── cross_hover.svg │ │ │ │ ├── dash.svg │ │ │ │ ├── delete_button.svg │ │ │ │ ├── delete_button_hover.svg │ │ │ │ ├── detach_icon.svg │ │ │ │ ├── disabled-node_icon.svg │ │ │ │ ├── ic_arrow_up.png │ │ │ │ ├── ic_checkbox_off.png │ │ │ │ ├── ic_checkbox_off.svg │ │ │ │ ├── ic_checkbox_on.png │ │ │ │ ├── ic_checkbox_on.svg │ │ │ │ ├── ic_copy_black.svg │ │ │ │ ├── ic_copy_white.svg │ │ │ │ ├── ic_info.png │ │ │ │ ├── ic_info.svg │ │ │ │ ├── ic_infoGray.svg │ │ │ │ ├── ic_info_hover.svg │ │ │ │ ├── ic_info_orange.svg │ │ │ │ ├── ic_info_small.svg │ │ │ │ ├── icon_activate.svg │ │ │ │ ├── icon_activateHover.svg │ │ │ │ ├── icon_activate_pass.svg │ │ │ │ ├── icon_arrow.svg │ │ │ │ ├── icon_arrowDown.svg │ │ │ │ ├── icon_arrow_down.png │ │ │ │ ├── icon_arrow_hover.svg │ │ │ │ ├── icon_copy_black.svg │ │ │ │ ├── icon_copy_white.svg │ │ │ │ ├── icon_deactivate.svg │ │ │ │ ├── icon_deactivateHover.svg │ │ │ │ ├── icon_eyeHide.svg │ │ │ │ ├── icon_eyeHideHover.svg │ │ │ │ ├── icon_eyeShow.svg │ │ │ │ ├── icon_eyeShowHover.svg │ │ │ │ ├── icon_link.svg │ │ │ │ ├── icon_linkHover.svg │ │ │ │ ├── icon_pause.svg │ │ │ │ ├── icon_pause_hover.svg │ │ │ │ ├── icon_reload.svg │ │ │ │ ├── icon_reload_hover.svg │ │ │ │ ├── icon_rightChevron.svg │ │ │ │ ├── icon_up_green.svg │ │ │ │ ├── icon_walletLocked.svg │ │ │ │ ├── icon_walletUnlocked.svg │ │ │ │ ├── icon_wiki.svg │ │ │ │ ├── indicator_error.png │ │ │ │ ├── indicator_error.svg │ │ │ │ ├── indicator_offline.png │ │ │ │ ├── indicator_offline.svg │ │ │ │ ├── indicator_online.png │ │ │ │ ├── indicator_online.svg │ │ │ │ ├── loader.svg │ │ │ │ ├── loader_orange.svg │ │ │ │ ├── lock_20.svg │ │ │ │ ├── lock_hover_20.svg │ │ │ │ ├── next-page.png │ │ │ │ ├── next-page_hover.png │ │ │ │ ├── next-page_pressed.png │ │ │ │ ├── next.svg │ │ │ │ ├── no_icon.png │ │ │ │ ├── no_icon.svg │ │ │ │ ├── on_off.svg │ │ │ │ ├── radio_btn_off.png │ │ │ │ ├── radio_btn_on.png │ │ │ │ ├── receipt_hover.svg │ │ │ │ ├── receipt_normal.svg │ │ │ │ ├── remove_wallet.svg │ │ │ │ ├── search.svg │ │ │ │ ├── spinner_network.svg │ │ │ │ ├── sync.svg │ │ │ │ ├── sync_15x15.svg │ │ │ │ ├── unlock_20.svg │ │ │ │ ├── unlock_hover_20.svg │ │ │ │ └── upload_icon.svg │ │ └── only-logo-dashboard.svg │ ├── CellframeDashboard.icns │ ├── Translations │ │ ├── Translation_cs.qm │ │ ├── Translation_cs.ts │ │ ├── Translation_nl.qm │ │ ├── Translation_nl.ts │ │ ├── Translation_pt.qm │ │ ├── Translation_pt.ts │ │ ├── Translation_ru.qm │ │ ├── Translation_ru.ts │ │ ├── Translation_zh.qm │ │ └── Translation_zh.ts │ ├── icon.ico │ ├── icon_win32.ico │ ├── theme │ │ ├── Black.qml │ │ ├── Dark.qml │ │ └── Light.qml │ └── ui_menu_light.png ├── Translator │ ├── qmltranslator.cpp │ └── qmltranslator.h ├── Workers │ ├── dateworker.cpp │ ├── dateworker.h │ ├── mathworker.cpp │ ├── mathworker.h │ ├── stringworker.cpp │ └── stringworker.h ├── android │ ├── AndroidManifest.xml │ ├── build.gradle │ ├── build.gradle.bak │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── res │ │ ├── drawable-hdpi │ │ │ ├── icon.png │ │ │ ├── icon_bar.png │ │ │ └── old │ │ │ │ ├── icon.png │ │ │ │ └── icon_bar.png │ │ ├── drawable-ldpi │ │ │ ├── icon.png │ │ │ ├── icon_bar.png │ │ │ └── old │ │ │ │ ├── icon.png │ │ │ │ └── icon_bar.png │ │ ├── drawable-mdpi │ │ │ ├── icon.png │ │ │ ├── icon_bar.png │ │ │ └── old │ │ │ │ ├── icon.png │ │ │ │ └── icon_bar.png │ │ └── values │ │ │ └── libs.xml │ └── src │ │ └── com │ │ └── Cellframe │ │ └── Dashboard │ │ ├── DashboardActivity.java │ │ └── DashboardService.java ├── dapvpnorderscontroller.cpp ├── dapvpnorderscontroller.h ├── logic │ ├── MainApplicationLogic.qml │ └── MainParams.qml ├── main.cpp ├── main.qml ├── mobile │ ├── QMLClipboard.h │ ├── testcontroller.cpp │ └── testcontroller.h ├── qml.qrc ├── quickcontrols │ ├── qrcodequickitem.cpp │ └── qrcodequickitem.h ├── resizeimageprovider.cpp ├── resizeimageprovider.h ├── screen │ ├── DapMainApplicationWindow.qml │ ├── DapMessagePopup.qml │ ├── DapWalletComboBox.qml │ └── desktop │ │ ├── Certificates │ │ ├── CertificatesActionsButtonList.qml │ │ ├── CertificatesListView.qml │ │ ├── CertificatesLogic.qml │ │ ├── CertificatesModels.qml │ │ ├── DapCertificateAtcions.qml │ │ ├── DapCertificateScreen.qml │ │ ├── DapCertificateTab.qml │ │ ├── RightPanels │ │ │ ├── CertificateInfoItem.qml │ │ │ ├── CreateCertificateItem.qml │ │ │ └── CreateFinishedItem.qml │ │ ├── models │ │ │ └── FindDelegateModel.qml │ │ └── parts │ │ │ ├── CreateCertificateModel.qml │ │ │ ├── FindDelegateModel.qml │ │ │ ├── SearchInputBox.qml │ │ │ ├── TextInputFilter.qml │ │ │ ├── TitleTextView.qml │ │ │ └── Utils.qml │ │ ├── Console │ │ ├── DapConsoleRightPanel.qml │ │ ├── DapConsoleScreen.qml │ │ ├── DapConsoleScreenForm.qml │ │ ├── DapConsoleTab.qml │ │ ├── DapConsoleTopPanel.qml │ │ └── Suggestion │ │ │ ├── LineEdit.qml │ │ │ └── SuggestionBox.qml │ │ ├── Dashboard │ │ ├── DapDashboardCreateWalletsScreen.qml │ │ ├── DapDashboardNoWalletsScreen.qml │ │ ├── DapDashboardScreen.qml │ │ ├── DapDashboardTab.qml │ │ ├── DapDashboardTopPanel.qml │ │ ├── DapDashboardWalletsShowScreen.qml │ │ ├── RightPanel │ │ │ ├── DapCreateWallet.qml │ │ │ ├── DapCreateWalletForm.qml │ │ │ ├── DapDoneCreateWallet.qml │ │ │ ├── DapLastActionsRightPanel.qml │ │ │ ├── DapLastActionsRightPanelForm.qml │ │ │ ├── DapNewPaymentAddedQueueRightPanel.qml │ │ │ ├── DapNewPaymentDoneRightPanel.qml │ │ │ ├── DapNewPaymentMainRightPanel.qml │ │ │ ├── DapNewPaymentMainRightPanelForm.qml │ │ │ ├── DapRecoveryWalletRightPanel.qml │ │ │ └── DapRecoveryWalletRightPanelForm.qml │ │ └── logic │ │ │ └── LogicWallet.qml │ │ ├── Diagnostic │ │ ├── DapDiagnosticRightPanel.qml │ │ ├── DapDiagnosticScreen.qml │ │ ├── DapDiagnosticTab.qml │ │ ├── DapDiagnosticTopPanel.qml │ │ └── Parts │ │ │ ├── AllNodesBlock.qml │ │ │ ├── PopupInfoPanel.qml │ │ │ ├── ProgressBarDiagnostic.qml │ │ │ ├── TextElement.qml │ │ │ ├── TextInfoElement.qml │ │ │ └── TrackedNodesBlock.qml │ │ ├── History │ │ ├── DapHistoryRightPanel.qml │ │ ├── DapHistoryRightPanelInfoTx.qml │ │ ├── DapHistoryScreen.qml │ │ ├── DapHistoryTab.qml │ │ ├── TextDetailsTx.qml │ │ └── logic │ │ │ └── LogicTxExplorer.qml │ │ ├── Logs │ │ ├── DapExportPopup.qml │ │ ├── DapLogsRightPanel.qml │ │ ├── DapLogsScreen.qml │ │ ├── DapLogsTab.qml │ │ ├── DapLogsTopPanel.qml │ │ ├── JS │ │ │ └── DapLogScreenScripts.js │ │ ├── SelectorItem.qml │ │ └── fillModelScript.js │ │ ├── MasterNode │ │ ├── DapMainMasterNodeScreen.qml │ │ ├── DapMasterNodeScreen.qml │ │ ├── DapMasterNodeTab.qml │ │ ├── RightPanel │ │ │ ├── DapBaseMasterNodeRightPanel.qml │ │ │ ├── DapCreateMasterNodeDone.qml │ │ │ ├── DapCreateOrderMasterNode.qml │ │ │ ├── DapLastActionsMasterNode.qml │ │ │ ├── DapLoaderMasterNodeRightPanel.qml │ │ │ ├── DapOrdersMasterNodeRightPanel.qml │ │ │ └── DapStartMasterNodeRightPanel.qml │ │ └── parts │ │ │ ├── DapIsMasterNodeScreen.qml │ │ │ └── DapStringInfoMasterNode.qml │ │ ├── Networks │ │ ├── DapNetworksPanel.qml │ │ ├── logic │ │ │ └── LogicNetworks.qml │ │ └── parts │ │ │ ├── DapInfoButton.qml │ │ │ ├── DapInfoContent.qml │ │ │ ├── DapInfoDelegate.qml │ │ │ ├── DapNetworkButton.qml │ │ │ ├── DapNetworkDelegate.qml │ │ │ ├── DapNetworkNameStatusComponent.qml │ │ │ └── DapRowInfoText.qml │ │ ├── Orders │ │ ├── DapOrdersScreen.qml │ │ ├── DapOrdersTab.qml │ │ ├── Logic │ │ │ └── LogicOrders.qml │ │ ├── Parts │ │ │ ├── DapDoubleSpinBox.qml │ │ │ ├── DapOrderHeader.qml │ │ │ ├── DapOrderInfoLine.qml │ │ │ ├── DapOrderPanelButton.qml │ │ │ ├── DapOrdersGridView.qml │ │ │ ├── DapSpinBox.qml │ │ │ └── DapTextButton.qml │ │ └── RightPanel │ │ │ ├── DapOrderCreate.qml │ │ │ ├── DapOrderCreateDone.qml │ │ │ └── DapOrderInfo.qml │ │ ├── Plugins │ │ ├── MiniGame │ │ │ ├── Elements │ │ │ │ ├── GameMainScreen.qml │ │ │ │ ├── GamePlayer.qml │ │ │ │ └── GameTopPanel.qml │ │ │ └── MiniGame.qml │ │ └── Plugin │ │ │ ├── DapApp.qml │ │ │ └── Elements │ │ │ ├── DapAppButton.qml │ │ │ ├── DapAppMainScreen.qml │ │ │ ├── DapAppRow.qml │ │ │ └── Windows │ │ │ ├── Certificates │ │ │ ├── DapCertificatesComponent.qml │ │ │ ├── DapCreateCertificate.qml │ │ │ └── DapShowCertificates.qml │ │ │ ├── Console │ │ │ ├── DapConsoleComponent.qml │ │ │ └── DapShowConsole.qml │ │ │ ├── DapWindowLoader.qml │ │ │ ├── LastActions │ │ │ ├── DapDelegateLastActions.qml │ │ │ └── DapShowLastActions.qml │ │ │ ├── Orders │ │ │ ├── DapOrdersFrame.qml │ │ │ ├── DapOrdersGrid.qml │ │ │ ├── DapOrdersInfo.qml │ │ │ └── DapShowOrders.qml │ │ │ └── Wallets │ │ │ ├── DapCreateWallet.qml │ │ │ ├── DapShowWallets.qml │ │ │ ├── DapWalletsComponent.qml │ │ │ └── DapWalletsInfo.qml │ │ ├── Settings │ │ ├── DapSettingsScreen.qml │ │ ├── DapSettingsTab.qml │ │ ├── DapSettingsTopPanel.qml │ │ ├── MenuBlocks │ │ │ ├── DapAppearanceBlock.qml │ │ │ ├── DapExtensionsBlock.qml │ │ │ ├── DapGeneralBlock.qml │ │ │ ├── DapLinksBlock.qml │ │ │ └── DapSupportBlock.qml │ │ ├── NodeSettings │ │ │ ├── ComboBoxPopupItem.qml │ │ │ ├── HeaderItem.qml │ │ │ ├── NodeBlock.qml │ │ │ ├── PageHeaderItem.qml │ │ │ ├── ResetUpdateButtons.qml │ │ │ ├── SettingsArrowItem.qml │ │ │ ├── SettingsCheckBoxItem.qml │ │ │ ├── TextEditPopupItem.qml │ │ │ └── WarningPopupItem.qml │ │ └── RightPanel │ │ │ ├── DapEmptyRightPanel.qml │ │ │ └── DapRequestsRightPanel.qml │ │ ├── Stock │ │ ├── DapStockScreen.qml │ │ ├── DapStockTab.qml │ │ ├── DapStockTopPanel.qml │ │ ├── LogicStock.qml │ │ ├── icons │ │ │ ├── buyIcon.png │ │ │ ├── sellBuy_icon.png │ │ │ └── sellIcon.png │ │ └── parts │ │ │ ├── Chart │ │ │ ├── CandleChart.qml │ │ │ ├── ChartBigTextBlock.qml │ │ │ ├── ChartPanel.qml │ │ │ ├── ChartTextBlock.qml │ │ │ └── LogicCandleChart.qml │ │ │ ├── CreateOrder │ │ │ ├── OrderCreate.qml │ │ │ ├── OrderCreateDone.qml │ │ │ ├── OrderCreateFieldsComponent.qml │ │ │ ├── OrderExchangeDone.qml │ │ │ ├── OrderStopLimit.qml │ │ │ └── OrderTextBlock.qml │ │ │ ├── CreateOrderLight │ │ │ ├── CreateOrderLight.qml │ │ │ ├── DapOrderTextField.qml │ │ │ └── TokensListRightPanel.qml │ │ │ ├── DapPairComboBox │ │ │ ├── DapPairComboBox.qml │ │ │ ├── SearchElement.qml │ │ │ ├── icons │ │ │ │ ├── bnb_icon.png │ │ │ │ ├── cell_icon.png │ │ │ │ ├── dai_icon.png │ │ │ │ ├── eth_icon.png │ │ │ │ ├── icon_arrow_down.png │ │ │ │ ├── searchIcon.svg │ │ │ │ └── usdt_icon.png │ │ │ └── logic │ │ │ │ └── LogicComboBox.qml │ │ │ ├── MyOrders │ │ │ ├── AllOrders.qml │ │ │ ├── MyOrders.qml │ │ │ ├── MyOrdersTab.qml │ │ │ ├── OrdersHistory.qml │ │ │ ├── RightPanels │ │ │ │ ├── BuySellPanel.qml │ │ │ │ ├── DefaultRightPanel.qml │ │ │ │ ├── DetailsHistory.qml │ │ │ │ └── DetailsOpen.qml │ │ │ ├── logic │ │ │ │ └── LogicMyOrders.qml │ │ │ └── parts │ │ │ │ ├── DetailsText.qml │ │ │ │ ├── HeaderBigLabel.qml │ │ │ │ └── HeaderLabel.qml │ │ │ ├── OrderBook │ │ │ ├── BookSellBuyImg.qml │ │ │ ├── OrderBook.qml │ │ │ └── OrderBookDelegate.qml │ │ │ └── StockHome.qml │ │ ├── Tokens │ │ ├── RightPanel │ │ │ ├── CreateNewToken.qml │ │ │ ├── InfoAboutToken.qml │ │ │ ├── TokenEmission.qml │ │ │ ├── TokenOperationsDone.qml │ │ │ └── TokensLastActions.qml │ │ ├── TokensScreen.qml │ │ ├── TokensTab.qml │ │ ├── logic │ │ │ └── LogicTokens.qml │ │ └── parts │ │ │ ├── DetailsText.qml │ │ │ └── TitleTextView.qml │ │ ├── UnderConstructions.qml │ │ ├── VPNClient │ │ ├── DapVpnClientScreen.qml │ │ ├── DapVpnClientTab.qml │ │ ├── DapVpnClientTopPanel.qml │ │ ├── Images │ │ │ ├── check.png │ │ │ ├── page-hov.png │ │ │ └── page.png │ │ ├── Parts │ │ │ ├── ChartPanel.qml │ │ │ ├── CheckersPanel.qml │ │ │ ├── CurrentUsagePanel.qml │ │ │ ├── RightStackView.qml │ │ │ └── StatisticsPanel.qml │ │ └── RightPanel │ │ │ ├── Receipts.qml │ │ │ ├── ReceiptsDetails.qml │ │ │ ├── Refund.qml │ │ │ ├── TopUp.qml │ │ │ └── VPNOrders.qml │ │ ├── VPNService │ │ ├── DapVPNServiceScreen.qml │ │ ├── DapVPNServiceTab.qml │ │ ├── DapVPNServiceTopPanel.qml │ │ ├── Parts │ │ │ ├── DapDoubleSpinBox.qml │ │ │ ├── DapOrderPanelButton.qml │ │ │ ├── DapSpinBox.qml │ │ │ ├── DapTextButton.qml │ │ │ ├── DapVPNOrderInfoLine.qml │ │ │ └── DapVPNOrdersGridView.qml │ │ └── RightPanel │ │ │ ├── CreateOrder.qml │ │ │ ├── DapEarnedFunds.qml │ │ │ └── DapOrderDetails.qml │ │ ├── controls │ │ ├── CopyButton.qml │ │ ├── CopyPopup.qml │ │ ├── DapActivateWalletPopup.qml │ │ ├── DapCertificatesComboBox.qml │ │ ├── DapContextMenu.qml │ │ ├── DapCreatePasswordWalletPopup.qml │ │ ├── DapDeactivateWalletPopup.qml │ │ ├── DapFeePopup.qml │ │ ├── DapLoadIndicator.qml │ │ ├── DapLoadingPanel.qml │ │ ├── DapLoadingTopPanel.qml │ │ ├── DapMainButtonsMenu.qml │ │ ├── DapMenuButton.qml │ │ ├── DapMenuButtonMobile.qml │ │ ├── DapNodeVersionPopup.qml │ │ ├── DapPage.qml │ │ ├── DapPageElement.qml │ │ ├── DapRemoveOrderPopup.qml │ │ ├── DapRemoveWalletPopup.qml │ │ ├── DapRightPanelDone.qml │ │ ├── DapScreenPage.qml │ │ ├── DapSearchTopPanel.qml │ │ ├── DapTopPanel.qml │ │ ├── DapTryCreatePasswordWalletPopup.qml │ │ ├── DapVersionPopup.qml │ │ ├── DapWalletsControllerPopup.qml │ │ ├── DapWebMessagePopup.qml │ │ ├── HeaderButtonForRightPanels.qml │ │ ├── SearchInputBox.qml │ │ ├── TextInputFilter.qml │ │ └── TwoTextBlocks.qml │ │ └── dApps │ │ ├── DapAppsScreen.qml │ │ ├── DapAppsTab.qml │ │ ├── RightPanel │ │ ├── DapAppsDefaultRightPanel.qml │ │ ├── DapAppsDownloadRightPanel.qml │ │ └── DapProgressBar.qml │ │ └── logic │ │ └── AppsLogic.qml ├── systemtray.cpp ├── systemtray.h ├── thirdPartyLibs │ └── QRCodeGenerator │ │ ├── QRCodeGenerator.cpp │ │ └── QRCodeGenerator.h └── windowframerect.h ├── CellFrameDashboardService ├── CellFrameDashboardService.pro ├── CellFrameDashboardService.qrc ├── DapServiceController.cpp ├── DapServiceController.h ├── DapToolTipWidget.cpp ├── DapToolTipWidget.h ├── classdiagram.qmodel ├── main.cpp ├── platforms │ └── win32 │ │ └── service │ │ ├── Service.cpp │ │ └── Service.h └── resources │ └── icons │ └── icon.ico ├── LICENSE ├── README.md ├── config.pri ├── debian ├── os ├── debian │ ├── changelog │ ├── compat │ ├── control │ ├── postinst │ ├── postrm │ ├── preinst │ ├── prerm │ └── share │ │ ├── CellFrameDashboard.desktop │ │ ├── CellframeDashboard.png │ │ └── init.d │ │ └── cellframe-dashboard.service ├── linux │ └── share │ │ ├── CellFrameDashboard.desktop │ │ ├── CellframeDashboard.png │ │ └── init.d │ │ └── cellframe-dashboard.service ├── macos │ ├── Info.plist │ ├── PKGINSTALL │ │ ├── Cellframe-Dashboard.plist │ │ ├── PackageInfo │ │ ├── postinstall │ │ └── preinstall │ ├── cellframe-uninstaller │ ├── cleanup │ │ ├── cleanup.sh │ │ └── com.demlabs.cleanup.plist │ ├── com.demlabs.Cellframe-DashboardService.plist │ ├── com.demlabs.cellframe-node.plist │ ├── uninstall │ └── uninstall_icon.rsrc └── windows │ ├── build.nsi │ ├── manifest.xml │ └── resources.rc ├── project.yaml ├── utils ├── Build Node │ ├── run_build │ └── run_build.py ├── GetLogNode │ ├── getLog │ └── getNodeLogs.py ├── SearchSym │ ├── Search │ └── SearchSym.py ├── allComands │ ├── commands.txt │ ├── getAllCommand.py │ └── run └── hooks │ ├── cyrillicFilter.py │ ├── main.py │ └── mergeProblem.py ├── version.mk └── wiki └── Instruction.odt /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | CMakeCache.txt 3 | CMakeFiles 4 | CMakeScripts 5 | Testing 6 | Makefile 7 | cmake_install.cmake 8 | install_manifest.txt 9 | compile_commands.json 10 | CTestTestfile.cmake 11 | *.user* 12 | *.o 13 | *.obj 14 | moc_* 15 | .DS_Store 16 | .autosave 17 | .qmake_stash 18 | qrc_* 19 | rcc/* 20 | node_build 21 | build 22 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "cellframe-ui-sdk"] 2 | path = cellframe-ui-sdk 3 | url = https://gitlab.demlabs.net/cellframe/cellframe-ui-sdk.git 4 | branch = master 5 | [submodule "dap-ui-sdk"] 6 | path = dap-ui-sdk 7 | url = https://gitlab.demlabs.net/dap/dap-ui-sdk 8 | branch = master 9 | [submodule "prod_build"] 10 | path = prod_build 11 | url = ../prod_build_cellframe-dashboard 12 | branch = master 13 | [submodule "web3_api"] 14 | path = web3_api 15 | url = https://gitlab.demlabs.net/cellframe/web3_api.git 16 | branch = master 17 | [submodule "cellframe-sdk"] 18 | path = cellframe-sdk 19 | url = https://gitlab.demlabs.net/cellframe/cellframe-sdk 20 | -------------------------------------------------------------------------------- /CellFrameDashboard.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = subdirs 2 | 3 | SUBDIRS = cellframe-sdk \ 4 | CellFrameDashboardGUI \ 5 | CellFrameDashboardService \ 6 | 7 | CellFrameDashboardGUI.depends=cellframe-sdk 8 | CellFrameDashboardService.depends=cellframe-sdk 9 | 10 | include(config.pri) 11 | 12 | 13 | TRANSLATIONS += \ 14 | Resources/Translations/Translation_ru.ts \ 15 | Resources/Translations/Translation_zh.ts \ 16 | Resources/Translations/Translation_cs.ts \ 17 | Resources/Translations/Translation_pt.ts \ 18 | Resources/Translations/Translation_nl.ts 19 | 20 | # Adds Clean target-cellframe-sdk 21 | 22 | subclean.commands = $(MAKE) -C cellframe-sdk clean 23 | subclean.CONFIG += phony 24 | QMAKE_EXTRA_TARGETS += subclean 25 | QMAKE_CLEAN_STEPS += subclean 26 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Autocomplete/CommandHelperController.h: -------------------------------------------------------------------------------- 1 | #ifndef COMMANDHELPERCONTROLLER_H 2 | #define COMMANDHELPERCONTROLLER_H 3 | 4 | #include 5 | #include 6 | #include "DapServiceController.h" 7 | #include "../chain/wallet/autocomplete/HelpDictionaryController.h" 8 | 9 | class CommandHelperController : public QObject 10 | { 11 | Q_OBJECT 12 | public: 13 | explicit CommandHelperController(QObject *parent = nullptr); 14 | ~CommandHelperController(); 15 | 16 | bool isDictionary(); 17 | 18 | void loadNewDictionary(); 19 | void loadDictionary(); 20 | void loadData(); 21 | 22 | signals: 23 | void helpListGeted(const QStringList& list); 24 | 25 | public slots: 26 | void tryListGetting(const QString& text, int cursorPosition); 27 | void tryDataUpdate(); 28 | private: 29 | DapServiceController *s_serviceCtrl; 30 | HelpDictionaryController* m_helpController = nullptr; 31 | }; 32 | 33 | #endif // COMMANDHELPERCONTROLLER_H 34 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/CellFrameDashboardGUI.conf: -------------------------------------------------------------------------------- 1 | ; This file can be edited to change the style of the application 2 | ; Read "Qt Quick Controls 2 Configuration File" for details: 3 | ; http://doc.qt.io/qt-5/qtquickcontrols2-configuration.html 4 | 5 | [Controls] 6 | Style=Default 7 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/ConfigWorker/configfile.h: -------------------------------------------------------------------------------- 1 | #ifndef CONFIGFILE_H 2 | #define CONFIGFILE_H 3 | 4 | #include 5 | 6 | class ConfigFile 7 | { 8 | public: 9 | ConfigFile(const QString &file_name); 10 | 11 | QString readConfigValue(const QString &key) const; 12 | 13 | void writeConfigValue(const QString &key, const QString &value); 14 | 15 | QString readGroupValue(const QString &group, 16 | const QString &key) const; 17 | 18 | void writeGroupValue(const QString &group, 19 | const QString &key, const QString &value); 20 | 21 | void saveFile(); 22 | 23 | void resetChanges(); 24 | 25 | bool checkUpdate(); 26 | 27 | bool updateFile(); 28 | 29 | bool getNetworkStatus(); 30 | 31 | void setNetworkStatus(bool status); 32 | 33 | private: 34 | QVector lines; 35 | 36 | QString fileName; 37 | }; 38 | 39 | #endif // CONFIGFILE_H 40 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/DataManager/DapAbstractDataManager.cpp: -------------------------------------------------------------------------------- 1 | #include "DapAbstractDataManager.h" 2 | #include "Modules/DapModulesController.h" 3 | 4 | DapAbstractDataManager::DapAbstractDataManager(DapModulesController *moduleController) 5 | : QObject{} 6 | , m_modulesController(moduleController) 7 | {} 8 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/DataManager/DapAbstractDataManager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class DapModulesController; 6 | 7 | class DapAbstractDataManager : public QObject 8 | { 9 | Q_OBJECT 10 | public: 11 | explicit DapAbstractDataManager(DapModulesController* moduleController); 12 | 13 | protected: 14 | DapModulesController* m_modulesController = nullptr; 15 | }; 16 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/DataManager/DapDataManagerController.cpp: -------------------------------------------------------------------------------- 1 | #include "DapDataManagerController.h" 2 | 3 | DapDataManagerController::DapDataManagerController(DapModulesController* moduleController) 4 | : QObject() 5 | , m_networksManager(new DapNetworksManager(moduleController)) 6 | { 7 | qRegisterMetaType(); 8 | connect(m_networksManager, &DapNetworksManager::networkListChanged, this, &DapDataManagerController::networkListChanged); 9 | connect(m_networksManager, &DapNetworksManager::isConnectedChanged, this, &DapDataManagerController::isConnectedChanged); 10 | } 11 | 12 | QStringList DapDataManagerController::getNetworkList() const 13 | { 14 | if(m_networksManager) 15 | { 16 | return m_networksManager->getNetworkList(); 17 | } 18 | qDebug()<<"[DapDataManagerController] The network manager was not found."; 19 | return QStringList(); 20 | } 21 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/DataManager/DapDataManagerController.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "DapNetworksManager.h" 5 | #include "Modules/DapModulesController.h" 6 | 7 | class DapDataManagerController : public QObject 8 | { 9 | Q_OBJECT 10 | public: 11 | DapDataManagerController(DapModulesController* moduleController); 12 | 13 | DapNetworksManager* getNetworkManager() const { return m_networksManager; } 14 | 15 | Q_PROPERTY (QStringList networkList READ getNetworkList NOTIFY networkListChanged) 16 | QStringList getNetworkList() const; 17 | 18 | signals: 19 | void networkListChanged(); 20 | void isConnectedChanged(bool isConnected); 21 | private: 22 | DapNetworksManager *m_networksManager = nullptr; 23 | }; 24 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/DataManager/DapNetworksTypes.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "qobject.h" 4 | #include 5 | 6 | struct NetworkLoadProgress{ 7 | QString name{""}; 8 | QString state{""}; 9 | QString percent{""}; 10 | }; 11 | 12 | struct NetworkInfo 13 | { 14 | QString networkName = ""; 15 | QString networkState = ""; 16 | QString targetState = ""; 17 | QString address = ""; 18 | QString activeLinksCount = ""; 19 | QString linksCount = ""; 20 | QString syncPercent = ""; 21 | QString errorMessage = ""; 22 | QString displayNetworkState = ""; 23 | QString displayTargetState = ""; 24 | }; 25 | Q_DECLARE_METATYPE(NetworkInfo) 26 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/DataManager/DataManager.pri: -------------------------------------------------------------------------------- 1 | HEADERS += $$PWD/DapDataManagerController.h \ 2 | $$PWD/DapAbstractDataManager.h \ 3 | $$PWD/DapNetworksManager.h \ 4 | $$PWD/DapNetworksTypes.h 5 | 6 | SOURCES += $$PWD/DapDataManagerController.cpp \ 7 | $$PWD/DapAbstractDataManager.cpp \ 8 | $$PWD/DapNetworksManager.cpp 9 | 10 | INCLUDEPATH += $$PWD 11 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Models/DEXModel/DEXTypes.cpp: -------------------------------------------------------------------------------- 1 | #include "DEXTypes.h" 2 | 3 | namespace DEX 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Models/DEXModel/TokenPairsProxyModel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include "DEXTypes.h" 7 | 8 | class TokenPairsProxyModel : public QSortFilterProxyModel 9 | { 10 | Q_OBJECT 11 | public: 12 | explicit TokenPairsProxyModel(QObject *parent = nullptr); 13 | 14 | Q_INVOKABLE void setNetworkFilter(const QString& network); 15 | Q_INVOKABLE void setDisplayTextFilter(const QString& str); 16 | Q_INVOKABLE void setNewPairFilter(const QString& pair, const QString& network); 17 | 18 | Q_INVOKABLE bool isFilter(); 19 | Q_INVOKABLE QString getFirstItem() const; 20 | Q_INVOKABLE int getSize() const { return m_currentList.size();} 21 | const QList>& getCurrantList() const { return m_currentList; } 22 | protected: 23 | bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override; 24 | 25 | private: 26 | QString m_network = ""; 27 | QString m_currentDisplayText = ""; 28 | mutable QList> m_currentList; 29 | }; 30 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Models/DEXModel/TokensProxyModel.cpp: -------------------------------------------------------------------------------- 1 | #include "TokensProxyModel.h" 2 | #include "DapTokensModel.h" 3 | 4 | TokensProxyModel::TokensProxyModel (QObject *parent) 5 | : QSortFilterProxyModel{parent} 6 | { 7 | } 8 | 9 | bool TokensProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const 10 | { 11 | const DapTokensModel* model = static_cast(sourceModel()); 12 | if(!model) 13 | { 14 | return true; 15 | } 16 | const DapTokensModel::Item& item = model->getItem(source_row); 17 | bool isType = item.type == m_type; 18 | 19 | bool isQuery = true; 20 | if(!m_query.isEmpty() && !item.displayText.toLower().contains(m_query.toLower())) 21 | { 22 | isQuery = false; 23 | } 24 | 25 | return isType && isQuery; 26 | } 27 | 28 | void TokensProxyModel::setParmsModel(const QString& type) 29 | { 30 | if(type != m_type) 31 | { 32 | Q_ASSERT_X(TYPE_LIST.contains(type), "type filter", "the type is specified incorrectly"); 33 | m_type = type; 34 | } 35 | m_query.clear(); 36 | 37 | invalidateFilter(); 38 | } 39 | 40 | void TokensProxyModel::searchQuery(const QString& text) 41 | { 42 | m_query = text; 43 | invalidateFilter(); 44 | } 45 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Models/DEXModel/TokensProxyModel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include "DEXTypes.h" 7 | // #include "DapOrderHistoryModel.h" 8 | 9 | class TokensProxyModel : public QSortFilterProxyModel 10 | { 11 | Q_OBJECT 12 | public: 13 | explicit TokensProxyModel(QObject *parent = nullptr); 14 | 15 | void setParmsModel(const QString& type); 16 | 17 | Q_INVOKABLE void searchQuery(const QString& text); 18 | protected: 19 | bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override; 20 | 21 | private: 22 | QString m_type = "sell"; 23 | QString m_query = ""; 24 | 25 | const QStringList TYPE_LIST = {"sell", "buy"}; 26 | }; 27 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Models/DapWalletListModel.cpp: -------------------------------------------------------------------------------- 1 | #include "DapWalletListModel.h" 2 | 3 | DapWalletListModel::DapWalletListModel(QObject *a_parent) 4 | : DapAbstractWalletList (a_parent) 5 | { 6 | 7 | } 8 | 9 | void DapWalletListModel::setModel(QJsonDocument *doc) 10 | { 11 | QList items; 12 | QJsonArray arr = doc->array(); 13 | 14 | for (auto itr = arr.begin(); itr != arr.end(); itr++) 15 | { 16 | QJsonObject obj = itr->toObject(); 17 | items.append(getItem(obj)); 18 | } 19 | 20 | auto *g = global(); 21 | if(g->m_items->isEmpty() || g->m_items->count() != items.count() ) 22 | { 23 | g->beginResetModel(); 24 | *g->m_items = items; 25 | g->endResetModel(); 26 | } 27 | else 28 | for(int i = 0; i < items.count(); i++) 29 | g->set(i,items[i]); 30 | } 31 | 32 | DapAbstractWalletList::Item DapWalletListModel::getItem(QJsonObject obj) 33 | { 34 | Item itm; 35 | 36 | QString name = obj["name"].toString(); 37 | QString status = obj["status"].toString(); 38 | 39 | itm.name = name; 40 | itm.statusProtect = status; 41 | 42 | return itm; 43 | } 44 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Models/DapWalletListModel.h: -------------------------------------------------------------------------------- 1 | #ifndef DAPWALLETLISTMODEL_H 2 | #define DAPWALLETLISTMODEL_H 3 | 4 | 5 | /* INCLUDES */ 6 | #include 7 | #include "qjsonarray.h" 8 | #include "qjsonobject.h" 9 | #include "qjsondocument.h" 10 | #include 11 | #include 12 | 13 | 14 | #include "AbstractModels/DapAbstractWalletList.h" 15 | 16 | class DapWalletListModel : public DapAbstractWalletList 17 | { 18 | Q_OBJECT 19 | 20 | /****************************************//** 21 | * @name PROPERTIES 22 | *******************************************/ 23 | /// @{ 24 | Q_PROPERTY (int size READ size NOTIFY sizeChanged) 25 | Q_PROPERTY (int count READ size NOTIFY sizeChanged) 26 | /// @} 27 | 28 | /****************************************//** 29 | * @name CONSTRUCT/DESTRUCT 30 | *******************************************/ 31 | /// @{ 32 | public: 33 | explicit DapWalletListModel (QObject *a_parent = nullptr); 34 | /// @} 35 | 36 | /****************************************//** 37 | * @name METHODS 38 | *******************************************/ 39 | /// @{ 40 | 41 | void setModel(QJsonDocument* doc); 42 | 43 | private: 44 | Item getItem(QJsonObject obj); 45 | /// @} 46 | }; 47 | 48 | #endif // DAPWALLETLISTMODEL_H 49 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Models/OrdersProxyModel.cpp: -------------------------------------------------------------------------------- 1 | #include "OrdersProxyModel.h" 2 | #include 3 | 4 | OrdersProxyModel::OrdersProxyModel(QObject *parent) 5 | : QSortFilterProxyModel{parent} 6 | { 7 | } 8 | 9 | bool OrdersProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const 10 | { 11 | Q_UNUSED(source_parent) 12 | 13 | const DapOrdersModel* model = static_cast(sourceModel()); 14 | if(!model) 15 | { 16 | return true; 17 | } 18 | DapOrdersModel::Item item = model->getItem(source_row); 19 | 20 | if(m_uidOrder != item.srv_uid) 21 | { 22 | return false; 23 | } 24 | 25 | bool isPKey = m_pkey == "All" || m_pkey == item.pkey; 26 | 27 | bool isNodeAddr = m_nodeAddr.isEmpty() || m_nodeAddr == item.node_addr; 28 | 29 | return isPKey && isNodeAddr; 30 | } 31 | 32 | void OrdersProxyModel::setPkeyFilter(const QString& data) 33 | { 34 | m_pkey = data == "All" ? "All" : data; 35 | invalidateFilter(); 36 | } 37 | 38 | void OrdersProxyModel::setNodeAddrFilter(const QString& data) 39 | { 40 | m_nodeAddr = data == "All" ? QString() : data; 41 | invalidateFilter(); 42 | } 43 | 44 | bool OrdersProxyModel::isFilter() 45 | { 46 | return !m_pkey.isEmpty() || !m_nodeAddr.isEmpty(); 47 | } 48 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Models/OrdersProxyModel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include "Models/DapOrdersModel.h" 6 | 7 | class OrdersProxyModel : public QSortFilterProxyModel 8 | { 9 | Q_OBJECT 10 | public: 11 | explicit OrdersProxyModel(QObject *parent = nullptr); 12 | 13 | Q_INVOKABLE void setPkeyFilter(const QString& data); 14 | Q_INVOKABLE void setNodeAddrFilter(const QString& data); 15 | 16 | Q_INVOKABLE bool isFilter(); 17 | protected: 18 | bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override; 19 | 20 | private: 21 | QString m_pkey = ""; 22 | QString m_nodeAddr = ""; 23 | 24 | QString m_uidOrder = "Stake"; 25 | }; 26 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Certificates/DapModuleCertificates.cpp: -------------------------------------------------------------------------------- 1 | #include "DapModuleCertificates.h" 2 | 3 | DapModuleCertificates::DapModuleCertificates(DapModulesController *parent) 4 | : DapAbstractModule(parent) 5 | , m_modulesCtrl(parent) 6 | , m_pathCert(CellframeNodeConfig::instance()->getDefaultCADir() + "/") 7 | { 8 | 9 | #if !defined(Q_OS_WIN) 10 | m_filePrefix = "file://"; 11 | #else 12 | m_filePrefix = "file:///"; 13 | #endif 14 | 15 | } 16 | 17 | void DapModuleCertificates::import(QString path) 18 | { 19 | QString name = path.split("/").last(); 20 | path.remove(m_filePrefix); 21 | QVariant status = QFile::copy(path,m_pathCert+name); 22 | emit signalImportFinished(status); 23 | } 24 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Certificates/DapModuleCertificates.h: -------------------------------------------------------------------------------- 1 | #ifndef DAPMODULECERTIFICATES_H 2 | #define DAPMODULECERTIFICATES_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include "DapServiceController.h" 9 | #include "../DapAbstractModule.h" 10 | #include "../DapModulesController.h" 11 | 12 | class DapModuleCertificates : public DapAbstractModule 13 | { 14 | Q_OBJECT 15 | public: 16 | explicit DapModuleCertificates(DapModulesController *parent); 17 | Q_INVOKABLE void import(QString); 18 | 19 | 20 | private: 21 | DapModulesController *m_modulesCtrl; 22 | QString m_pathCert; 23 | QString m_filePrefix; 24 | 25 | //public slots: 26 | 27 | signals: 28 | void signalImportFinished(QVariant status); 29 | }; 30 | 31 | #endif // DAPMODULECERTIFICATES_H 32 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Console/consoleitem.h: -------------------------------------------------------------------------------- 1 | #ifndef CONSOLEITEM_H 2 | #define CONSOLEITEM_H 3 | 4 | #include 5 | 6 | struct ConsoleInfo 7 | { 8 | Q_GADGET 9 | Q_PROPERTY(QString query MEMBER query) 10 | Q_PROPERTY(QString response MEMBER response) 11 | 12 | public: 13 | QString query; 14 | QString response; 15 | 16 | ConsoleInfo(const QString &query = "", 17 | const QString &response = "") 18 | { 19 | this->query = query; 20 | this->response = response; 21 | } 22 | }; 23 | Q_DECLARE_METATYPE(ConsoleInfo) 24 | 25 | #endif // CONSOLEITEM_H 26 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/DapAbstractModule.cpp: -------------------------------------------------------------------------------- 1 | #include "DapAbstractModule.h" 2 | 3 | DapAbstractModule::DapAbstractModule(QObject *parent) 4 | :QObject(parent) 5 | , s_serviceCtrl(&DapServiceController::getInstance()) 6 | { 7 | 8 | } 9 | 10 | bool DapAbstractModule::statusProcessing() 11 | { 12 | return m_statusProcessing; 13 | } 14 | void DapAbstractModule::setStatusProcessing(bool status) 15 | { 16 | m_statusProcessing = status; 17 | emit statusProcessingChanged(); 18 | } 19 | 20 | 21 | void DapAbstractModule::setName(QString name) 22 | { 23 | m_name = name; 24 | } 25 | 26 | QString DapAbstractModule::getName() 27 | { 28 | return m_name; 29 | } 30 | 31 | void DapAbstractModule::setStatusInit(bool status) 32 | { 33 | m_statusInit = status; 34 | emit statusInitChanged(); 35 | } 36 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/DapAbstractModule.h: -------------------------------------------------------------------------------- 1 | #ifndef DAPABSTRACTMODULE_H 2 | #define DAPABSTRACTMODULE_H 3 | 4 | #include 5 | 6 | #include "DapServiceController.h" 7 | 8 | class DapAbstractModule : public QObject 9 | { 10 | Q_OBJECT 11 | public: 12 | 13 | explicit DapAbstractModule(QObject *parent = nullptr); 14 | 15 | Q_PROPERTY(bool statusInit READ statusInit NOTIFY statusInitChanged) 16 | Q_INVOKABLE bool statusInit(){return m_statusInit;} 17 | 18 | bool m_statusProcessing{false}; 19 | bool m_statusInit{false}; 20 | QString m_name; 21 | 22 | public: 23 | void setStatusInit(bool status); 24 | 25 | Q_PROPERTY (bool statusProcessing READ statusProcessing WRITE setStatusProcessing NOTIFY statusProcessingChanged) 26 | bool statusProcessing(); 27 | virtual void setStatusProcessing(bool status); 28 | 29 | 30 | //QML 31 | void setName(QString name); 32 | QString getName(); 33 | 34 | protected: 35 | DapServiceController *s_serviceCtrl; 36 | 37 | signals: 38 | void initDone(const QString &name, bool status); 39 | void statusInitChanged(); 40 | void statusProcessingChanged(); 41 | }; 42 | 43 | #endif // DAPABSTRACTMODULE_H 44 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Dex/DapRegularTokenType.cpp: -------------------------------------------------------------------------------- 1 | #include "DapRegularTokenType.h" 2 | 3 | DapRegularTokenType::DapRegularTokenType(QList &pairsInfo, QObject *parent) 4 | : QObject{parent} 5 | , m_tokensPair(pairsInfo) 6 | { 7 | 8 | } 9 | 10 | void DapRegularTokenType::setSellToken(const QString& value) 11 | { 12 | m_sellToken = value; 13 | emit sellTokenChanged(); 14 | } 15 | 16 | void DapRegularTokenType::setBuyToken(const QString& value) 17 | { 18 | m_buyToken = value; 19 | emit buyTokenChanged(); 20 | } 21 | 22 | void DapRegularTokenType::setNetwork(const QString& value) 23 | { 24 | m_network = value; 25 | emit networkChanged(); 26 | } 27 | 28 | void DapRegularTokenType::setBuyTokenCount(const QString& value) 29 | { 30 | m_buyTokenCount = value; 31 | emit buyTokenCountChanged(); 32 | } 33 | 34 | void DapRegularTokenType::setSellTokenCount(const QString& value) 35 | { 36 | m_sellTokenCount = value; 37 | emit sellTokenCountChanged(); 38 | } 39 | 40 | void DapRegularTokenType::currentPairChanged(const DEX::InfoTokenPair& pair) 41 | { 42 | 43 | } 44 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Dex/StockDataWorker/DapCommonDexMethods.cpp: -------------------------------------------------------------------------------- 1 | #include "DapCommonDexMethods.h" 2 | #include "DapCoin.h" 3 | 4 | bool DapCommonDexMethods::isCorrectAmount(const QString& value) 5 | { 6 | Dap::Coin amount(value); 7 | Dap::Coin minAmount(QString("0.0001")); 8 | Dap::Coin nullAmount(QString("0.0")); 9 | if(amount < minAmount && amount > nullAmount) 10 | { 11 | return false; 12 | } 13 | return true; 14 | } 15 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Dex/StockDataWorker/DapCommonDexMethods.h: -------------------------------------------------------------------------------- 1 | #ifndef DAPCOMMONDEXMETHODS_H 2 | #define DAPCOMMONDEXMETHODS_H 3 | 4 | #include 5 | 6 | class DapCommonDexMethods 7 | { 8 | public: 9 | DapCommonDexMethods() = default; 10 | 11 | static bool isCorrectAmount(const QString& value); 12 | }; 13 | 14 | #endif // DAPCOMMONDEXMETHODS_H 15 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Dex/StockDataWorker/MainInfoChart.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include "ChartTypes.h" 7 | 8 | struct MainInfoChart: public QObject 9 | { 10 | Q_OBJECT 11 | 12 | public: 13 | void clear(); 14 | void onInit(); 15 | void moveFrom(MainInfoChart& other); 16 | 17 | MainInfoChart& operator=(const MainInfoChart& other); 18 | MainInfoChart& operator=(const MainInfoChart&& other); 19 | 20 | QVector m_priceModel; 21 | QVector m_candleModel; 22 | QVector> m_averagedModel; 23 | 24 | QString m_currentTokenPriceText = "0.0"; 25 | 26 | double m_currentTokenPrice = 0.0f; 27 | double m_previousTokenPrice = 0.0f; 28 | double m_minimum24h = 0.0f; 29 | double m_maximum24h = 0.0f; 30 | 31 | int m_lastCandleNumber = 0; 32 | int m_rightCandleNumber = 0; 33 | 34 | int m_commonRoundPower = 8; 35 | 36 | qint64 m_rightTime = 0; 37 | }; 38 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Dex/StockDataWorker/StockDataWorker.h: -------------------------------------------------------------------------------- 1 | #ifndef STOCKDATAWORKER_H 2 | #define STOCKDATAWORKER_H 3 | 4 | #include 5 | #include 6 | 7 | #include "CandleChartWorker.h" 8 | #include "OrderBookWorker.h" 9 | #include "TokenPairsWorker.h" 10 | 11 | class StockDataWorker : public QObject 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | explicit StockDataWorker(QQmlContext *cont, QObject *parent = nullptr); 17 | 18 | CandleChartWorker* getCandleChartWorker() const {return candleChartWorker; } 19 | OrderBookWorker* getOrderBookWorker() const { return orderBookWorker; } 20 | 21 | public slots: 22 | // void signalXchangeOrderListReceived(const QVariant& rcvData); 23 | 24 | // void rcvXchangeTokenPriceHistory(const QVariant& rcvData); 25 | 26 | // void signalXchangeTokenPairReceived(const QVariant& rcvData); 27 | 28 | private: 29 | 30 | QQmlContext *context; 31 | 32 | CandleChartWorker *candleChartWorker; 33 | OrderBookWorker *orderBookWorker; 34 | TokenPairsWorker *tokenPairsWorker; 35 | }; 36 | 37 | #endif // STOCKDATAWORKER_H 38 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Diagnostics/DiagtoolConnectCotroller.h: -------------------------------------------------------------------------------- 1 | #ifndef DIAGTOOLCONNECTCOTROLLER_H 2 | #define DIAGTOOLCONNECTCOTROLLER_H 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | 27 | class DiagtoolConnectCotroller : public QObject 28 | { 29 | Q_OBJECT 30 | public: 31 | explicit DiagtoolConnectCotroller(QObject *parent = nullptr); 32 | 33 | public: 34 | bool getConncetState(){return m_connectStatus;} 35 | quint64 writeSocket(QByteArray data); 36 | 37 | private slots: 38 | void slotError(); 39 | void slotReadyRead(); 40 | void slotStateChanged(QAbstractSocket::SocketState socketState); 41 | 42 | private: 43 | QTcpSocket *m_socket; 44 | bool m_connectStatus{false}; 45 | 46 | signals: 47 | void signalDataRcv(QJsonDocument); 48 | void signalSocketChangeStatus(bool status); 49 | }; 50 | 51 | #endif // DIAGTOOLCONNECTCOTROLLER_H 52 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Logs/DapLogsReader.h: -------------------------------------------------------------------------------- 1 | #ifndef DAPLOGSREADER_H 2 | #define DAPLOGSREADER_H 3 | 4 | #include 5 | #include 6 | 7 | class DapLogsReader : public QObject 8 | { 9 | Q_OBJECT 10 | public: 11 | explicit DapLogsReader(QObject *parent = nullptr); 12 | 13 | QString getPath() const {return m_path;} 14 | void setPath(const QString& path){m_path = path;} 15 | 16 | void setStatusUpdate(bool status); 17 | 18 | private: 19 | QString m_path; 20 | int m_bufferSize{1000}; 21 | QStringList m_logList; 22 | QTimer *m_timerLogUpdate; 23 | 24 | //functions 25 | public: 26 | QStringList getLogList(){return m_logList;} 27 | void setLogType(QString path); 28 | 29 | private: 30 | void updateLogList(); 31 | 32 | signals: 33 | void sigLogUpdated(); 34 | }; 35 | 36 | #endif // DAPLOGSREADER_H 37 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Logs/loginfo.h: -------------------------------------------------------------------------------- 1 | #ifndef LOGINFO_H 2 | #define LOGINFO_H 3 | 4 | #include 5 | 6 | struct LogInfo 7 | { 8 | Q_GADGET 9 | Q_PROPERTY(QString type MEMBER type) 10 | Q_PROPERTY(QString info MEMBER info) 11 | Q_PROPERTY(QString file MEMBER file) 12 | Q_PROPERTY(QString time MEMBER time) 13 | Q_PROPERTY(QString date MEMBER date) 14 | Q_PROPERTY(QString momentTime MEMBER momentTime) 15 | 16 | public: 17 | QString type; 18 | QString info; 19 | QString file; 20 | QString time; 21 | QString date; 22 | QString momentTime; 23 | 24 | LogInfo(const QString &type = "", 25 | const QString &info = "", 26 | const QString &file = "", 27 | const QString &time = "", 28 | const QString &date = "", 29 | const QString &momentTime = "") 30 | { 31 | this->type = type; 32 | this->info = info; 33 | this->file = file; 34 | this->time = time; 35 | this->date = date; 36 | this->momentTime = momentTime; 37 | } 38 | }; 39 | Q_DECLARE_METATYPE(LogInfo) 40 | 41 | #endif // LOGINFO_H 42 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Logs/logreader.h: -------------------------------------------------------------------------------- 1 | #ifndef LOGREADER_H 2 | #define LOGREADER_H 3 | 4 | #include 5 | #include 6 | 7 | class LogReader 8 | { 9 | public: 10 | LogReader(const QString &file_path, 11 | const QString &file_name, bool with_data = false); 12 | 13 | void updateAll(); 14 | 15 | void readFullLog(); 16 | 17 | void updateLines(qint64 begin, qint64 size); 18 | 19 | void updateLog(); 20 | 21 | qint64 getLength() 22 | { 23 | return m_logLength; 24 | } 25 | 26 | const QStringList &getLines() 27 | { 28 | return logLines; 29 | } 30 | 31 | private: 32 | void getFileNames(bool reverse); 33 | 34 | void getFullLength(); 35 | 36 | qint64 getLogLength(const QString &file_name); 37 | 38 | void readFile(const QString &file_name); 39 | 40 | void readLines(const QString &file_name); 41 | 42 | QString m_fileName; 43 | QString m_filePath; 44 | bool m_withData; 45 | 46 | QStringList logLines; 47 | 48 | QVector linePosition; 49 | 50 | QMap fileSize; 51 | 52 | QStringList fileNames; 53 | 54 | qint64 m_logLength{0}; 55 | qint64 m_begin{0}; 56 | qint64 m_size{0}; 57 | qint64 m_current{0}; 58 | }; 59 | 60 | #endif // LOGREADER_H 61 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/MasterNode/DapMasterNodeKeys.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | struct MasterNode 6 | { 7 | static const QString STAKE_HASH_KEY; 8 | static const QString STAKE_INVALIDATE_HASH_KEY; 9 | static const QString QUEUE_HASH_KEY; 10 | static const QString QUEUE_INVALIDATE_HASH_KEY; 11 | static const QString IS_UPLOAD_CERT_KEY; 12 | static const QString CERT_NAME_KEY; 13 | static const QString CERT_SIGN_KEY; 14 | static const QString CERT_HASH_KEY; 15 | static const QString CERT_PATH_KEY; 16 | static const QString NODE_ADDR_KEY; 17 | static const QString WALLET_NAME_KEY; 18 | static const QString WALLET_ADDR_KEY; 19 | static const QString NETWORK_KEY; 20 | static const QString FEE_KEY; 21 | static const QString FEE_TOKEN_KEY; 22 | static const QString NODE_IP_KEY; 23 | static const QString PORT_KEY; 24 | static const QString STAKE_VALUE_KEY; 25 | static const QString STAKE_TOKEN_KEY; 26 | static const QString STAKE_FEE_KEY; 27 | static const QString CERT_LOGIC_KEY; 28 | static const QString MASTER_NODE_KEY; 29 | static const QString MASTER_NODE_TO_CENCEL_KEY; 30 | static const QString ORDER_HASH_KEY; 31 | static const QString NODE_ADDED_KEY; 32 | static const QString STAKE_EFFECTIVE_VALUE_KEY; 33 | static const QString STAKE_RELATED_WEIGHT_KEY; 34 | }; 35 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/MasterNode/MasterNodeCommand/DapNodeDelStage.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "DapAbstractMasterNodeCommand.h" 5 | 6 | class DapNodeDelStage : public DapAbstractMasterNodeCommand 7 | { 8 | Q_OBJECT 9 | public: 10 | DapNodeDelStage(DapServiceController *serviceController); 11 | 12 | void tryDeleteNode(const QVariantMap& masterNodeInfo); 13 | private slots: 14 | void deletedNode(const QVariant &rcvData); 15 | }; 16 | 17 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/MasterNode/MasterNodeCommand/DapSrvStakeInvalidateStage.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "DapAbstractMasterNodeCommand.h" 5 | 6 | class DapSrvStakeInvalidateStage : public DapAbstractMasterNodeCommand 7 | { 8 | Q_OBJECT 9 | public: 10 | DapSrvStakeInvalidateStage(DapServiceController *serviceController); 11 | 12 | void stakeInvalidate(const QVariantMap& masterNodeInfo); 13 | void checkStakeInvalidate(const QVariantMap& masterNodeInfo); 14 | void cencelRegistration() override; 15 | private slots: 16 | void respondStakeInvalidate(const QVariant &rcvData); 17 | void respondCheckStakeDelegate(const QVariant &rcvData); 18 | void respondMempoolCheck(const QVariant &rcvData); 19 | 20 | void mempoolCheck(); 21 | void checkStake(); 22 | private: 23 | void checkStakeDelegate(); 24 | private: 25 | QTimer* m_checkStakeTimer = nullptr; 26 | 27 | const int TIME_OUT_CHECK_STAKE = 5000; 28 | }; 29 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/MasterNode/MasterNodeCommand/DapStakeDelegate.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "DapAbstractMasterNodeCommand.h" 5 | 6 | class DapStakeDelegate : public DapAbstractMasterNodeCommand 7 | { 8 | Q_OBJECT 9 | public: 10 | DapStakeDelegate(DapServiceController *serviceController); 11 | ~DapStakeDelegate(); 12 | 13 | void stakeDelegate(const QVariantMap& masterNodeInfo); 14 | void tryCheckStakeDelegate(const QVariantMap& masterNodeInfo); 15 | 16 | void cencelRegistration() override; 17 | private slots: 18 | void respondStakeDelegate(const QVariant &rcvData); 19 | void respondCheckStakeDelegate(const QVariant &rcvData); 20 | void respondMempoolCheck(const QVariant &rcvData); 21 | 22 | void mempoolCheck(); 23 | void checkStake(); 24 | private: 25 | void checkStakeDelegate(); 26 | private: 27 | QTimer* m_checkStakeTimer = nullptr; 28 | 29 | const int TIME_OUT_CHECK_STAKE = 5000; 30 | }; 31 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/MasterNode/MasterNodeCommand/DapStakeListCommand.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "DapAbstractMasterNodeCommand.h" 5 | 6 | class DapStakeListCommand : public DapAbstractMasterNodeCommand 7 | { 8 | Q_OBJECT 9 | public: 10 | DapStakeListCommand(DapServiceController *serviceController); 11 | ~DapStakeListCommand(); 12 | 13 | void getListKeys(const QString& network, const QString& nodeAddr); 14 | signals: 15 | void responseRequest(const QJsonObject& nodeInfo); 16 | void errorResponse(int errorNumber, const QString& message); 17 | protected: 18 | virtual void nodeFound(const QJsonObject& nodeInfo); 19 | virtual void errorReceived(int errorNumber, const QString& message); 20 | virtual void nodeNotFound(); 21 | private slots: 22 | void respondListKeys(const QVariant &rcvData); 23 | private: 24 | QString m_requiredNode; 25 | QString m_networkName; 26 | }; 27 | 28 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/MasterNode/MasterNodeCommand/DapUpdateConfigStage.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "DapAbstractMasterNodeCommand.h" 5 | 6 | class DapUpdateConfigStage : public DapAbstractMasterNodeCommand 7 | { 8 | Q_OBJECT 9 | public: 10 | DapUpdateConfigStage(DapServiceController *serviceController); 11 | 12 | void updateConfigForRegistration(const QVariantMap& masterNodeInfo); 13 | void updateConfigForCencel(const QVariantMap& masterNodeInfo, const QMap& allMasterNode); 14 | }; 15 | 16 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/MasterNode/MasterNodeCommand/DapUpdateStakeData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "DapStakeListCommand.h" 5 | 6 | class DapUpdateStakeData : public DapStakeListCommand 7 | { 8 | Q_OBJECT 9 | public: 10 | DapUpdateStakeData(DapServiceController *serviceController); 11 | 12 | void tryUpdateStakeData(const QMap& nodes); 13 | 14 | protected: 15 | void nodeNotFound() override; 16 | void errorReceived(int errorNumber, const QString& message) override; 17 | void nodeFound(const QJsonObject& nodeInfo) override; 18 | private: 19 | void dataUpdate(); 20 | private: 21 | QStringList m_lastNetworkRequest; 22 | 23 | QMap m_nodes; 24 | }; 25 | 26 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/MasterNode/MasterNodeCommand/DapWaitingPermission.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include "DapStakeListCommand.h" 6 | 7 | class DapWaitingPermission : public DapStakeListCommand 8 | { 9 | Q_OBJECT 10 | public: 11 | DapWaitingPermission(DapServiceController *serviceController); 12 | ~DapWaitingPermission(); 13 | 14 | void startWaitingPermission(const QVariantMap& masterNodeInfo); 15 | 16 | void cencelRegistration() override; 17 | protected: 18 | void nodeFound(const QJsonObject& nodeInfo) override; 19 | void errorReceived(int errorNumber, const QString& message) override; 20 | private slots: 21 | void getListKeysRequest(); 22 | private: 23 | QTimer* m_listKeysTimer = nullptr; 24 | 25 | const int TIME_OUT_LIST_KEYS = 30000; 26 | }; 27 | 28 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Tokens/DapModuleTokens.cpp: -------------------------------------------------------------------------------- 1 | #include "DapModuleTokens.h" 2 | 3 | DapModuleTokens::DapModuleTokens(DapModulesController *modulesCtrl, DapAbstractModule *parent) 4 | : DapAbstractModule(parent) 5 | , s_serviceCtrl(&DapServiceController::getInstance()) 6 | , s_modulesCtrl(modulesCtrl) 7 | { 8 | } 9 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Tokens/DapModuleTokens.h: -------------------------------------------------------------------------------- 1 | #ifndef DAPMODULETOKENS_H 2 | #define DAPMODULETOKENS_H 3 | 4 | #include 5 | #include 6 | 7 | #include "DapServiceController.h" 8 | #include "../DapAbstractModule.h" 9 | #include "../DapModulesController.h" 10 | 11 | 12 | class DapModuleTokens : public DapAbstractModule 13 | { 14 | Q_OBJECT 15 | public: 16 | explicit DapModuleTokens(DapModulesController * modulesCtrl, DapAbstractModule *parent = nullptr); 17 | 18 | private: 19 | DapServiceController *s_serviceCtrl; 20 | DapModulesController *s_modulesCtrl; 21 | }; 22 | 23 | #endif // DAPMODULETOKENS_H 24 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Wallet/CommonWallet/DapWalletInfo.h: -------------------------------------------------------------------------------- 1 | #ifndef DAPWALLETINFO_H 2 | #define DAPWALLETINFO_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | namespace CommonWallet 9 | { 10 | struct WalletTokensInfo 11 | { 12 | QString tokenName = QString(); 13 | QString value = QString(); 14 | QString datoshi = QString(); 15 | QString ticker = QString(); 16 | QString network = QString(); 17 | QString availableDatoshi = QString(); 18 | QString availableCoins = QString(); 19 | }; 20 | 21 | struct WalletNetworkInfo 22 | { 23 | QString network = QString(); 24 | QString address = QString(); 25 | // tokenName info 26 | QList networkInfo; 27 | }; 28 | 29 | struct WalletInfo 30 | { 31 | QString walletName = QString(); 32 | QString status = QString(); 33 | bool isLoad = false; 34 | // networkName info 35 | QMap walletInfo; 36 | }; 37 | 38 | struct FeeInfo 39 | { 40 | QMap netFee; 41 | QMap validatorFee; 42 | }; 43 | } 44 | #endif // DAPWALLETINFO_H 45 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Wallet/WalletRestore/randomfile.h: -------------------------------------------------------------------------------- 1 | #ifndef RANDOMFILE_H 2 | #define RANDOMFILE_H 3 | 4 | #include 5 | 6 | class RandomFile 7 | { 8 | public: 9 | RandomFile(); 10 | 11 | QByteArray generateRandomData(); 12 | 13 | bool saveDataToFile(const QString & fileName, const QByteArray & data); 14 | 15 | QByteArray loadDataFromFile(const QString & fileName); 16 | }; 17 | 18 | #endif // RANDOMFILE_H 19 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Wallet/WalletRestore/randomwords.cpp: -------------------------------------------------------------------------------- 1 | #include "randomwords.h" 2 | 3 | #include 4 | #include 5 | 6 | RandomWords::RandomWords() 7 | { 8 | QFile file("://Modules/Wallet/WalletRestore/english_words.txt"); 9 | 10 | if (file.open(QIODevice::ReadOnly | QIODevice::Text)) 11 | { 12 | words = QString::fromUtf8(file.readAll()).split("\n"); 13 | 14 | file.close(); 15 | } 16 | } 17 | 18 | QStringList RandomWords::getRandomWords(int number) const 19 | { 20 | if (words.isEmpty()) 21 | return QStringList(); 22 | 23 | QStringList result; 24 | 25 | for (int i = 0; i < number; ++i) 26 | { 27 | long index = QRandomGenerator::global()->bounded(words.size()); 28 | result.append(words[index]); 29 | } 30 | 31 | return result; 32 | } 33 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Modules/Wallet/WalletRestore/randomwords.h: -------------------------------------------------------------------------------- 1 | #ifndef RANDOMWORDS_H 2 | #define RANDOMWORDS_H 3 | 4 | #include 5 | 6 | class RandomWords 7 | { 8 | public: 9 | RandomWords(); 10 | 11 | QStringList getRandomWords(int number) const; 12 | 13 | private: 14 | QStringList words; 15 | 16 | }; 17 | 18 | #endif // RANDOMWORDS_H 19 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/Illustratons/comingsoon_illustration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/Illustratons/comingsoon_illustration.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/Illustratons/wallet_illustration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/Illustratons/wallet_illustration.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_certificates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_certificates.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_console.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_console.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_daaps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_daaps.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_exchange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_exchange.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_exchange.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_history.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_history.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_logs.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_master_node.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_settings.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_tokens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_tokens.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_vpn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_vpn.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_vpn_client.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_wallet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_wallet.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/icon_wallet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/vpn-client_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/navigation/vpn-client_icon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/Arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/Arrow.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/Double_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/Double_arrow.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/arrow_button.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/arrow_button_hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/arrow_down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/arrow_down_rect.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/back.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/back_hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/bg-menuitem_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/bg-menuitem_active.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/bg-menuitem_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/bg-menuitem_hover.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/browser.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/browser_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/browser_hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/check_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/check_icon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/check_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/copy_hover_small.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/copy_small.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/cross.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/cross.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/crossBold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/crossBoldTest.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/crossBold_hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/crossTest.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/cross_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/cross_hover.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/cross_hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/dash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/delete_button.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/delete_button_hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/detach_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/disabled-node_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/ic_arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/ic_arrow_up.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/ic_checkbox_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/ic_checkbox_off.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/ic_checkbox_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/ic_checkbox_on.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/ic_copy_black.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/ic_copy_white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/ic_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/ic_info.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_activate_pass.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_arrowDown.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_arrow_down.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_arrow_hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_copy_black.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_copy_white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_eyeHide.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_eyeShow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_eyeShowHover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_linkHover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_pause.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_pause_hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_reload.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_reload_hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_rightChevron.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_up_green.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_walletLocked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_walletUnlocked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/icon_wiki.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/indicator_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/indicator_error.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/indicator_error.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/indicator_offline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/indicator_offline.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/indicator_offline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/indicator_online.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/indicator_online.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/indicator_online.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/loader.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/loader_orange.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/lock_20.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/lock_hover_20.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/next-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/next-page.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/next-page_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/next-page_hover.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/next-page_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/next-page_pressed.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/next.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/no_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/no_icon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/no_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/on_off.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/radio_btn_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/radio_btn_off.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/radio_btn_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/BlackTheme/icons/other/radio_btn_on.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/receipt_hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/receipt_normal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/remove_wallet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/spinner_network.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/unlock_20.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/unlock_hover_20.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/BlackTheme/icons/other/upload_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/CellframeDashboard.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/CellframeDashboard.icns -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/Translations/Translation_cs.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/Translations/Translation_cs.qm -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/Translations/Translation_nl.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/Translations/Translation_nl.qm -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/Translations/Translation_pt.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/Translations/Translation_pt.qm -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/Translations/Translation_ru.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/Translations/Translation_ru.qm -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/Translations/Translation_zh.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/Translations/Translation_zh.qm -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/icon.ico -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/icon_win32.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/icon_win32.ico -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Resources/ui_menu_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/Resources/ui_menu_light.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Translator/qmltranslator.cpp: -------------------------------------------------------------------------------- 1 | #include "qmltranslator.h" 2 | 3 | #include 4 | #include 5 | 6 | #define TRANSLATION_DEBUG 7 | 8 | QMLTranslator::QMLTranslator(QQmlEngine *engine, QObject *parent) : 9 | QObject(parent), 10 | _engine(engine) 11 | { 12 | 13 | } 14 | 15 | void QMLTranslator::setLanguage(QString language) 16 | { 17 | QString fileName(QString("Translation_%1").arg(language)); 18 | 19 | qDebug() << "QMLTranslator::setLanguage" << language << fileName; 20 | 21 | #ifndef TRANSLATION_DEBUG 22 | QString filePath(":/Resources/Translations/"); 23 | #else 24 | QString filePath("./"); 25 | #endif 26 | 27 | if (!_translator.load(fileName, filePath) ) 28 | { 29 | qDebug() << "Failed to load" << fileName << ", switch to English"; 30 | } 31 | 32 | qApp->installTranslator(&_translator); 33 | _engine->retranslate(); 34 | 35 | emit languageChanged(); 36 | } 37 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Translator/qmltranslator.h: -------------------------------------------------------------------------------- 1 | #ifndef QMLTRANSLATOR_H 2 | #define QMLTRANSLATOR_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | class QMLTranslator : public QObject 9 | { 10 | Q_OBJECT 11 | public: 12 | explicit QMLTranslator(QQmlEngine *engine, QObject *parent = 0); 13 | 14 | Q_INVOKABLE void setLanguage(QString language); 15 | 16 | signals: 17 | void languageChanged(); 18 | 19 | private: 20 | QTranslator _translator; 21 | QQmlEngine *_engine; 22 | }; 23 | 24 | #endif // QMLTRANSLATOR_H 25 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Workers/dateworker.h: -------------------------------------------------------------------------------- 1 | #ifndef DATEWORKER_H 2 | #define DATEWORKER_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | class DateWorker : public QObject 9 | { 10 | Q_OBJECT 11 | public: 12 | explicit DateWorker(QObject *parent = nullptr); 13 | 14 | Q_INVOKABLE QString getCurrentDate(QString format); 15 | Q_INVOKABLE QString getDate(const QString &date, QString format); 16 | Q_INVOKABLE QString getDateString(const QString &date); 17 | 18 | signals: 19 | 20 | }; 21 | 22 | #endif // DATEWORKER_H 23 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Workers/mathworker.h: -------------------------------------------------------------------------------- 1 | #ifndef MATHWORKER_H 2 | #define MATHWORKER_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | 9 | #include 10 | 11 | class MathWorker : public QObject 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | MathWorker(QObject *parent = nullptr); 17 | 18 | Q_INVOKABLE QVariant multCoins(QVariant arg1, QVariant arg2, QVariant getDatoshi); 19 | Q_INVOKABLE QVariant multDatoshi(QVariant arg1, QVariant arg2, QVariant getDatoshi); 20 | 21 | Q_INVOKABLE QVariant divDatoshi(QVariant arg1, QVariant arg2, QVariant getDatoshi); 22 | Q_INVOKABLE QVariant divCoins(QVariant arg1, QVariant arg2, QVariant getDatoshi); 23 | 24 | Q_INVOKABLE QVariant sumCoins(QVariant arg1, QVariant arg2, QVariant getDatoshi); 25 | Q_INVOKABLE QVariant subCoins(QVariant arg1, QVariant arg2, QVariant getDatoshi); 26 | 27 | Q_INVOKABLE QVariant isEqual(QVariant arg1, QVariant arg2); 28 | 29 | Q_INVOKABLE QVariant coinsToBalance(QVariant coins); 30 | Q_INVOKABLE QVariant balanceToCoins(QVariant balance); 31 | 32 | Q_INVOKABLE QString summDouble(const QString &value, const QString &step); 33 | 34 | void test(); 35 | 36 | }; 37 | 38 | #endif // MATHWORKER_H 39 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/Workers/stringworker.h: -------------------------------------------------------------------------------- 1 | #ifndef STRINGWORKER_H 2 | #define STRINGWORKER_H 3 | 4 | #include 5 | 6 | class StringWorker : public QObject 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | explicit StringWorker(QObject *parent = nullptr); 12 | 13 | Q_INVOKABLE bool testAmount( 14 | const QString &balance, const QString &amount) const; 15 | Q_INVOKABLE QString clearZeros(const QString &str) const; 16 | Q_INVOKABLE int compareStringNumbers1( 17 | const QString &str1, const QString &str2) const; 18 | Q_INVOKABLE int compareStringNumbers2( 19 | const QString &str1, const QString &str2) const; 20 | Q_INVOKABLE QString toDatoshi(const QString &str) const; 21 | 22 | }; 23 | 24 | #endif // STRINGWORKER_H 25 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/gradle.properties: -------------------------------------------------------------------------------- 1 | androidBuildToolsVersion=30.0.3 2 | androidCompileSdkVersion=30 3 | buildDir=.build 4 | qt5AndroidDir=P:/Qt/Qt5.14.2/5.14.2/android/src/android/java 5 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/res/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/android/res/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/res/drawable-hdpi/icon_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/android/res/drawable-hdpi/icon_bar.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/res/drawable-hdpi/old/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/android/res/drawable-hdpi/old/icon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/res/drawable-hdpi/old/icon_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/android/res/drawable-hdpi/old/icon_bar.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/res/drawable-ldpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/android/res/drawable-ldpi/icon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/res/drawable-ldpi/icon_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/android/res/drawable-ldpi/icon_bar.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/res/drawable-ldpi/old/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/android/res/drawable-ldpi/old/icon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/res/drawable-ldpi/old/icon_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/android/res/drawable-ldpi/old/icon_bar.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/res/drawable-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/android/res/drawable-mdpi/icon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/res/drawable-mdpi/icon_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/android/res/drawable-mdpi/icon_bar.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/res/drawable-mdpi/old/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/android/res/drawable-mdpi/old/icon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/res/drawable-mdpi/old/icon_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/android/res/drawable-mdpi/old/icon_bar.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/res/values/libs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | https://download.qt.io/ministro/android/qt5/qt-5.14 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/android/src/com/Cellframe/Dashboard/DashboardActivity.java: -------------------------------------------------------------------------------- 1 | package com.Cellframe.Dashboard; 2 | import org.qtproject.qt5.android.bindings.QtApplication; 3 | import org.qtproject.qt5.android.bindings.QtActivity; 4 | import android.content.Intent; 5 | import android.os.Build; 6 | import android.os.Bundle; 7 | import android.util.Log; 8 | import android.content.Context; 9 | import android.content.BroadcastReceiver; 10 | import android.content.IntentFilter; 11 | import android.app.Activity; 12 | import android.Manifest; 13 | 14 | import com.Cellframe.Dashboard.DashboardService; 15 | 16 | public class DashboardActivity extends QtActivity 17 | { 18 | @Override 19 | public void onCreate(final Bundle savedInstanceState) 20 | { 21 | super.onCreate(savedInstanceState); 22 | } 23 | 24 | @Override 25 | protected void onDestroy() 26 | { 27 | stopService(); 28 | super.onDestroy(); 29 | } 30 | 31 | public void stopService() 32 | { 33 | getApplicationContext().stopService(new Intent(getApplicationContext(), DashboardService.class)); 34 | } 35 | 36 | public String getExtFilesDir() 37 | { 38 | return getExternalFilesDir(null).getPath(); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/dapvpnorderscontroller.h: -------------------------------------------------------------------------------- 1 | #ifndef DAPVPNORDERSCONTROLLER_H 2 | #define DAPVPNORDERSCONTROLLER_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | class DapVPNOrdersController : public QObject 13 | { 14 | Q_OBJECT 15 | 16 | QNetworkAccessManager *manager; 17 | QNetworkReply *reply; 18 | QNetworkRequest request; 19 | 20 | QByteArray ordersModel; 21 | bool isError = false; 22 | 23 | public: 24 | DapVPNOrdersController(); 25 | 26 | public slots: 27 | void VPNOrdersReplyFinished(); 28 | void connectionError(QNetworkReply::NetworkError); 29 | void retryConnection(); 30 | QByteArray getOrdersModel(); 31 | bool getIsError(); 32 | bool isTokenInOrders(const QString &tokenName); 33 | 34 | signals: 35 | void vpnOrdersReceived(QByteArray doc); 36 | void connectionError(); 37 | }; 38 | 39 | #endif // DAPVPNORDERSCONTROLLER_H 40 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/mobile/QMLClipboard.h: -------------------------------------------------------------------------------- 1 | #ifndef QMLCLIPBOARD_H 2 | #define QMLCLIPBOARD_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | class QMLClipboard : public QObject 9 | { 10 | Q_OBJECT 11 | public: 12 | explicit QMLClipboard(QObject *parent = 0) : QObject(parent) { 13 | clipboard = QApplication::clipboard(); 14 | } 15 | 16 | Q_INVOKABLE void setText(const QString &text){ 17 | clipboard->setText(text, QClipboard::Clipboard); 18 | } 19 | 20 | Q_INVOKABLE QString getText(){ 21 | return clipboard->text(); 22 | } 23 | 24 | private: 25 | QClipboard *clipboard; 26 | }; 27 | 28 | #endif // QMLCLIPBOARD_H 29 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/mobile/testcontroller.cpp: -------------------------------------------------------------------------------- 1 | #include "testcontroller.h" 2 | 3 | #include 4 | 5 | void TestController::requestToService(const QString &asServiceName, const QVariant &arg1, const QVariant &arg2, const QVariant &arg3, const QVariant &arg4, const QVariant &arg5, const QVariant &arg6, const QVariant &arg7, const QVariant &arg8, const QVariant &arg9, const QVariant &arg10) 6 | { 7 | qDebug() << "TestController::requestToService"; 8 | 9 | QList walletHistory; 10 | 11 | emit walletHistoryReceived(walletHistory); 12 | } 13 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/mobile/testcontroller.h: -------------------------------------------------------------------------------- 1 | #ifndef TESTCONTROLLER_H 2 | #define TESTCONTROLLER_H 3 | 4 | #include 5 | #include 6 | 7 | class TestController : public QObject 8 | { 9 | Q_OBJECT 10 | public: 11 | explicit TestController(QObject *parent = 0) : QObject(parent) { 12 | } 13 | 14 | public: 15 | Q_INVOKABLE void requestToService(const QString& asServiceName, const QVariant &arg1 = QVariant(), 16 | const QVariant &arg2 = QVariant(), const QVariant &arg3 = QVariant(), 17 | const QVariant &arg4 = QVariant(), const QVariant &arg5 = QVariant(), 18 | const QVariant &arg6 = QVariant(), const QVariant &arg7 = QVariant(), 19 | const QVariant &arg8 = QVariant(), const QVariant &arg9 = QVariant(), 20 | const QVariant &arg10 = QVariant()); 21 | signals: 22 | void walletHistoryReceived(const QList& walletHistory); 23 | 24 | }; 25 | 26 | #endif // TESTCONTROLLER_H 27 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/quickcontrols/qrcodequickitem.h: -------------------------------------------------------------------------------- 1 | #ifndef QRCODEQUICKITEM_H 2 | #define QRCODEQUICKITEM_H 3 | 4 | #include 5 | #include 6 | 7 | class CQR_Encode; 8 | 9 | class QrCodeQuickItem : public QQuickPaintedItem 10 | { 11 | Q_OBJECT 12 | Q_PROPERTY(QByteArray data READ data WRITE setData NOTIFY dataChanged) 13 | public: 14 | explicit QrCodeQuickItem(QQuickItem *parent = nullptr); 15 | ~QrCodeQuickItem() override; 16 | 17 | const QByteArray &data() const; 18 | void setData(const QByteArray &data); 19 | 20 | Q_INVOKABLE bool saveToFile(const QString &fileName, int width, int height) const; 21 | 22 | void paint(QPainter *painter) override; 23 | 24 | signals: 25 | void dataChanged(); 26 | 27 | private: 28 | void createQRImage(); 29 | QImage scaledQRImage(const QSize &size) const; 30 | 31 | private: 32 | CQR_Encode *m_qrEncode; 33 | QByteArray m_data; 34 | bool m_successfulEncoding; 35 | int m_encodeImageSize; 36 | QImage m_encodeImage; 37 | QImage m_encodeImageScaled; 38 | QSize m_encodeImageScaledItemSize; 39 | }; 40 | 41 | #endif // QRCODEQUICKITEM_H 42 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/resizeimageprovider.h: -------------------------------------------------------------------------------- 1 | #ifndef RESIZEIMAGEPROVIDER_H 2 | #define RESIZEIMAGEPROVIDER_H 3 | 4 | #include 5 | 6 | class ResizeImageProvider : public QQuickImageProvider 7 | { 8 | public: 9 | ResizeImageProvider(); 10 | 11 | QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize) override; 12 | }; 13 | 14 | #endif // RESIZEIMAGEPROVIDER_H 15 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Certificates/RightPanels/CreateFinishedItem.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.9 2 | import QtGraphicalEffects 1.0 3 | import QtQuick.Controls 2.12 4 | import QtQuick.Layouts 1.3 5 | import "qrc:/widgets" 6 | import "../parts" 7 | 8 | import "../../controls" 9 | 10 | 11 | DapRightPanelDone { 12 | id: root 13 | 14 | property bool accept 15 | property string titleText 16 | property string contentText 17 | 18 | headerText: titleText 19 | messageText: contentText 20 | 21 | doneButton.textButton: {if (accept) return qsTr("Done") 22 | else return qsTr("Back")} 23 | 24 | doneButton.onClicked: 25 | { 26 | if (accept) 27 | certificateNavigator.clearRightPanel() 28 | else dapRightPanel.pop() 29 | } 30 | 31 | Component.onCompleted: 32 | { 33 | if (accept) 34 | messageImage = iconOk 35 | else messageImage = iconBad 36 | } 37 | } //root 38 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Certificates/parts/CreateCertificateModel.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.0 2 | 3 | 4 | 5 | //этот компонент должен лежать в подкаталоге models 6 | 7 | 8 | 9 | Item { 10 | 11 | 12 | 13 | 14 | 15 | } 16 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Certificates/parts/TitleTextView.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.9 2 | import QtQuick.Layouts 1.3 3 | 4 | 5 | 6 | ColumnLayout { 7 | id: root 8 | 9 | property alias title: title 10 | property alias content: content 11 | 12 | spacing: 5 13 | 14 | Text { 15 | id: title 16 | Layout.fillWidth: true 17 | font: mainFont.dapFont.regular12 18 | color: "#B4B1BD" 19 | width: parent.width 20 | wrapMode: Text.Wrap 21 | height: 15 22 | } 23 | 24 | Text { 25 | id: content 26 | Layout.fillWidth: true 27 | font: mainFont.dapFont.regular14 28 | color: currTheme.white 29 | width: parent.width 30 | wrapMode: Text.Wrap 31 | height: 18 32 | } 33 | } // 34 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Dashboard/DapDashboardCreateWalletsScreen.qml: -------------------------------------------------------------------------------- 1 | import QtQml 2.12 2 | import QtQuick 2.12 3 | import QtQuick.Controls 2.5 4 | import QtQuick.Layouts 1.3 5 | 6 | ColumnLayout 7 | { 8 | anchors.fill: parent 9 | spacing: 0 10 | 11 | Item{Layout.fillHeight: true} 12 | 13 | Image 14 | { 15 | Layout.alignment: Qt.AlignHCenter 16 | 17 | source: "qrc:/Resources/" + pathTheme + "/Illustratons/wallet_illustration.png" 18 | mipmap: true 19 | fillMode: Image.PreserveAspectFit 20 | } 21 | 22 | Text 23 | { 24 | id:textTitle 25 | Layout.alignment: Qt.AlignHCenter 26 | Layout.topMargin: 24 27 | 28 | font: mainFont.dapFont.medium24 29 | color: currTheme.white 30 | text: logicWallet.restoreWalletMode ? qsTr("Importing wallet in process...") : qsTr("Creating wallet in process...") 31 | } 32 | 33 | Item{Layout.fillHeight: true} 34 | } 35 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Dashboard/RightPanel/DapDoneCreateWallet.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQml 2.12 3 | 4 | import "../../controls" 5 | 6 | DapRightPanelDone 7 | { 8 | headerText: qsTr("Wallet created\nsuccessfully") 9 | messageText: qsTr("Now you can manage your\nwallets in Settings") 10 | 11 | doneButton.onClicked: navigator.popPage() 12 | 13 | Component.onCompleted: 14 | { 15 | if(commandResult.success) 16 | { 17 | messageImage = iconOk 18 | headerText = qsTr("Wallet created\nsuccessfully") 19 | } 20 | else 21 | { 22 | messageImage = iconBad 23 | headerText = qsTr("Creating wallet error") 24 | messageText = commandResult.message 25 | } 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Dashboard/RightPanel/DapNewPaymentAddedQueueRightPanel.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQml 2.12 3 | 4 | import "../../controls" 5 | 6 | DapRightPanelDone 7 | { 8 | headerText: qsTr("Placed to queue") 9 | messageText: qsTr("Pending") 10 | 11 | doneButton.onClicked: 12 | { 13 | navigator.popPage() 14 | } 15 | 16 | Component.onCompleted: 17 | { 18 | if(commandResult.success) 19 | { 20 | messageImage = iconOk 21 | headerText = qsTr("Placed to queue") 22 | messageText = "" 23 | } 24 | else 25 | { 26 | messageImage = iconBad 27 | headerText = qsTr("Error") 28 | messageText = commandResult.errorMessage 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Dashboard/RightPanel/DapNewPaymentDoneRightPanel.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQml 2.12 3 | 4 | import "../../controls" 5 | 6 | DapRightPanelDone 7 | { 8 | headerText: qsTr("Placed to mempool") 9 | messageText: qsTr("Pending") 10 | 11 | doneButton.onClicked: 12 | { 13 | navigator.popPage() 14 | } 15 | 16 | Component.onCompleted: 17 | { 18 | if(commandResult.success) 19 | { 20 | messageImage = iconOk 21 | headerText = qsTr("Placed to mempool") 22 | messageText = qsTr("Pending") 23 | } 24 | else 25 | { 26 | messageImage = iconBad 27 | headerText = qsTr("Error") 28 | messageText = commandResult.error 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Dashboard/logic/LogicWallet.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.12 2 | import QtQml 2.12 3 | 4 | QtObject { 5 | 6 | property bool restoreWalletMode: false 7 | property string walletType: "Standart" 8 | property string walletRecoveryType: "Words" 9 | property string walletStatus: "" 10 | 11 | } 12 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Diagnostic/DapDiagnosticRightPanel.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.9 2 | import QtGraphicalEffects 1.0 3 | import QtQuick.Layouts 1.3 4 | import QtQuick.Controls 2.12 5 | import "qrc:/widgets" 6 | import "Parts" 7 | 8 | ColumnLayout { 9 | spacing: 24 10 | 11 | DapRectangleLitAndShaded { 12 | Layout.fillWidth: true 13 | Layout.fillHeight: true 14 | 15 | color: currTheme.secondaryBackground 16 | radius: 12 17 | shadowColor: currTheme.shadowColor 18 | lightColor: currTheme.reflectionLight 19 | 20 | contentData: TrackedNodesBlock{} 21 | } 22 | 23 | DapRectangleLitAndShaded { 24 | Layout.fillWidth: true 25 | Layout.fillHeight: true 26 | 27 | color: currTheme.secondaryBackground 28 | radius: 12 29 | shadowColor: currTheme.shadowColor 30 | lightColor: currTheme.reflectionLight 31 | 32 | contentData: AllNodesBlock{} 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Diagnostic/Parts/ProgressBarDiagnostic.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQuick.Controls 1.4 3 | import QtQuick.Controls.Styles 1.4 4 | 5 | ProgressBar { 6 | id: progressBar 7 | maximumValue: 100 8 | minimumValue: 0 9 | 10 | style: ProgressBarStyle { 11 | background: Rectangle { 12 | radius: 3 13 | color: "#ffffff" 14 | implicitWidth: 80 15 | implicitHeight: 10 16 | } 17 | progress: Rectangle { 18 | color: progressBar.value < 40 ? currTheme.lightGreen 19 | : progressBar.value < 80 ? currTheme.orange 20 | : currTheme.red 21 | radius: 2 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Diagnostic/Parts/TextElement.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQml 2.12 3 | import QtQuick.Controls 2.4 4 | import QtQuick.Layouts 1.2 5 | import QtGraphicalEffects 1.0 6 | import "qrc:/widgets" 7 | 8 | RowLayout { 9 | id: root 10 | 11 | property alias title: title 12 | property alias content: content 13 | 14 | Layout.fillWidth: true 15 | spacing: 0 16 | 17 | Text { 18 | Layout.alignment: Qt.AlignLeft 19 | Layout.fillHeight: true 20 | id: title 21 | 22 | font: mainFont.dapFont.regular14 23 | color: currTheme.gray 24 | verticalAlignment: Qt.AlignVCenter 25 | } 26 | 27 | Text{ 28 | Layout.alignment: Qt.AlignLeft 29 | Layout.fillHeight: true 30 | Layout.fillWidth: true 31 | id: content 32 | 33 | font: mainFont.dapFont.regular14 34 | color: currTheme.white 35 | elide: Text.ElideRight 36 | horizontalAlignment: Qt.AlignLeft 37 | verticalAlignment: Qt.AlignVCenter 38 | } 39 | } // 40 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/History/logic/LogicTxExplorer.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.12 2 | import QtQml 2.12 3 | 4 | QtObject { 5 | 6 | property int selectTxIndex: -1 7 | 8 | property var commandResult 9 | 10 | function initDetailsModel(model) 11 | { 12 | detailsModel.clear() 13 | detailsModel.append(model) 14 | } 15 | 16 | function historyUpdate() 17 | { 18 | // console.log(modulesController.currentWalletName, txExplorerModule.walletName) 19 | 20 | // if (walletModule.currentWalletIndex >=0 && modulesController.currentWalletName !== txExplorerModule.walletName) 21 | // txExplorerModule.setWalletName(modulesController.currentWalletName) 22 | // txExplorerModule.updateHistory(true) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Logs/JS/DapLogScreenScripts.js: -------------------------------------------------------------------------------- 1 | Qt.include("qrc:/resources/JS/TimeFunctions.js") 2 | 3 | //Fills in the model. 4 | WorkerScript.onMessage = function(msg) 5 | { 6 | msg.model.clear(); 7 | var count = Object.keys(msg.stringList).length 8 | console.log(count); 9 | var thisDay = new Date(); 10 | var privateDate = {'today' : thisDay, 11 | 'todayDay': thisDay.getDate(), 12 | 'todayMonth': thisDay.getMonth(), 13 | 'todayYear': thisDay.getFullYear()}; 14 | 15 | for (var ind = count-1; ind >= 0; ind--) 16 | { 17 | var arrLogString = parceStringFromLog(msg.stringList[ind]); 18 | var stringTime = parceTime(arrLogString[1]); 19 | 20 | if(stringTime !== "error") 21 | msg.model.append({"type": arrLogString[2], 22 | "info": arrLogString[4], 23 | "file": arrLogString[3], 24 | "time": getTime(stringTime), 25 | "date": getDay(stringTime, privateDate), 26 | "momentTime": stringTime}); 27 | } 28 | msg.model.sync(); 29 | WorkerScript.sendMessage({result: true}); 30 | } 31 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Logs/SelectorItem.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.12 2 | import QtQuick.Controls 2.5 3 | import QtQuick.Layouts 1.3 4 | 5 | ColumnLayout 6 | { 7 | id: main 8 | property alias text: textItem.text 9 | property bool current: true 10 | property int margin: 26 11 | spacing: 10 12 | 13 | height: 42 14 | 15 | signal itemClicked() 16 | 17 | Text 18 | { 19 | id: textItem 20 | Layout.topMargin: 12 21 | Layout.fillHeight: true 22 | Layout.leftMargin: margin 23 | Layout.rightMargin: margin 24 | font: mainFont.dapFont.bold14 25 | color: current ? currTheme.white : currTheme.gray 26 | verticalAlignment: Qt.AlignVCenter 27 | 28 | MouseArea 29 | { 30 | anchors.fill: parent 31 | 32 | onClicked: 33 | { 34 | itemClicked() 35 | } 36 | } 37 | } 38 | 39 | Rectangle 40 | { 41 | Layout.alignment: Qt.AlignBottom 42 | Layout.bottomMargin: 1 43 | Layout.minimumHeight: 2 44 | radius: 8 45 | width: textItem.width + margin*2 46 | color: current ? currTheme.lime : "transparent" 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/MasterNode/parts/DapStringInfoMasterNode.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | 3 | Item { 4 | property alias key: keyText.text 5 | property alias value: valueText.text 6 | height: Math.max(keyText.contentHeight, keyText.contentHeight) 7 | 8 | Text 9 | { 10 | id: keyText 11 | width: 140 12 | anchors.left: parent.left 13 | anchors.top: parent.top 14 | font: mainFont.dapFont.regular14 15 | color: currTheme.gray 16 | text: displayKey 17 | wrapMode: Text.WordWrap 18 | } 19 | 20 | Text 21 | { 22 | id: valueText 23 | anchors.left: keyText.right 24 | anchors.right: parent.right 25 | anchors.top: parent.top 26 | anchors.leftMargin: textMargins 27 | font: mainFont.dapFont.regular14 28 | color: currTheme.white 29 | text: nodeMasterModule.validatorData[key] 30 | wrapMode: Text.Wrap 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Networks/logic/LogicNetworks.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.0 2 | import QtQml 2.12 3 | 4 | QtObject { 5 | 6 | function delay(delayTime, cb) { 7 | timer.interval = delayTime; 8 | timer.repeat = false; 9 | timer.triggered.connect(cb); 10 | timer.start(); 11 | } 12 | 13 | function getCountVisiblePopups() 14 | { 15 | var count = networkList.width/item_width 16 | return Math.floor(count) 17 | } 18 | 19 | function percentToRatio(text) 20 | { 21 | var percent = parseFloat(text) 22 | if(isNaN(percent) || percent < 0 || percent > 150) 23 | { 24 | console.warn("Percent of processed is wrong:", text) 25 | percent = 0.0 26 | } 27 | return percent / 100.0 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Networks/parts/DapRowInfoText.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.0 2 | 3 | Item { 4 | property alias dynamicText: dynamicText_ 5 | property alias staticText: staticText_ 6 | signal textChangedSign() 7 | 8 | Text { 9 | id: staticText_ 10 | anchors.verticalCenter: parent.verticalCenter 11 | font: mainFont.dapFont.medium12 12 | color: currTheme.white 13 | } 14 | Text { 15 | id:dynamicText_ 16 | anchors.left: staticText_.right 17 | anchors.verticalCenter: parent.verticalCenter 18 | font: mainFont.dapFont.regular12 19 | color: currTheme.white 20 | onTextChanged: textChangedSign() 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Orders/Logic/LogicOrders.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.12 2 | import QtQml 2.12 3 | import QtQuick.Controls 2.12 4 | 5 | QtObject 6 | { 7 | property var commandResult: 8 | { 9 | "success": "", 10 | "message": "" 11 | } 12 | 13 | property string currentTabName: qsTr("VPN") 14 | property string currentTabTechName: "VPN" 15 | 16 | function initDetailsModel(selectedModel) 17 | { 18 | detailsModel.clear() 19 | detailsModel.append(selectedModel) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Orders/Parts/DapOrderInfoLine.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.7 2 | import QtQuick.Layouts 1.12 3 | import "qrc:/widgets" 4 | 5 | RowLayout { 6 | id: control 7 | 8 | property alias name: textName.text 9 | property alias value: textValue.fullText 10 | height: 15 11 | Layout.maximumWidth: 296 12 | 13 | Text { 14 | id: textName 15 | Layout.alignment: Qt.AlignLeft 16 | Layout.fillHeight: true 17 | 18 | font: mainFont.dapFont.regular12 19 | elide: Text.ElideRight 20 | color: currTheme.gray 21 | } 22 | 23 | Item{ 24 | Layout.fillWidth: true 25 | } 26 | 27 | DapBigText 28 | { 29 | id: textValue 30 | Layout.alignment: Qt.AlignRight 31 | Layout.fillHeight: true 32 | Layout.maximumWidth: 250 33 | width: textValue.textElement.implicitWidth 34 | height: parent.height 35 | textFont: mainFont.dapFont.regular12 36 | fullText: name 37 | textElement.elide: Text.ElideRight 38 | textElement.horizontalAlignment: Qt.AlignRight 39 | textElement.color: currTheme.white 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Orders/Parts/DapSpinBox.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.7 2 | import QtQuick.Controls 2.2 3 | 4 | SpinBox { 5 | id: control 6 | 7 | padding: 4 8 | font: mainFont.dapFont.medium16 9 | editable: true 10 | inputMethodHints: Qt.ImhFormattedNumbersOnly 11 | 12 | validator: IntValidator { 13 | locale: control.locale.name 14 | top: control.to 15 | bottom: control.from 16 | } 17 | 18 | contentItem: TextInput { 19 | text: control.textFromValue(control.value, control.locale) 20 | 21 | font: control.font 22 | color: currTheme.white 23 | horizontalAlignment: Qt.AlignRight 24 | verticalAlignment: Qt.AlignVCenter 25 | 26 | readOnly: !control.editable 27 | validator: control.validator 28 | inputMethodHints: control.inputMethodHints 29 | selectByMouse: true 30 | } 31 | 32 | up.indicator: null 33 | down.indicator: null 34 | 35 | background: Rectangle { 36 | implicitWidth: 140 37 | color:"transparent" 38 | border.width: pt 39 | border.color: "#B4B1BD" 40 | radius: 4 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Orders/Parts/DapTextButton.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.7 2 | import QtQuick.Controls 2.2 3 | 4 | Button { 5 | id: control 6 | 7 | property color textColor: "#FFFFFF" 8 | property color textColorHover: "#FFFFFF" 9 | property color backgroundColor: "#271C4E" 10 | property color backgroundColorHover: "#D51F5D" 11 | property real backgroudRadius: 4 12 | property int borderWidth: 0 13 | property color borderColor 14 | 15 | font: mainFont.dapFont.medium14 16 | 17 | contentItem: Text { 18 | font: control.font 19 | elide: Text.ElideRight 20 | color: control.hovered ? control.textColorHover : control.textColor 21 | horizontalAlignment: Text.AlignHCenter 22 | verticalAlignment: Text.AlignVCenter 23 | text: control.text 24 | } 25 | 26 | background: Rectangle { 27 | border { width: control.borderWidth; color: control.borderColor } 28 | radius: control.backgroudRadius 29 | color: control.hovered ? control.backgroundColorHover : control.backgroundColor 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Orders/RightPanel/DapOrderCreateDone.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQml 2.12 3 | 4 | import "../../controls" 5 | 6 | DapRightPanelDone 7 | { 8 | headerText: qsTr("Order created\nsuccessfully") 9 | messageText: qsTr("") 10 | 11 | doneButton.onClicked: navigator.clear() 12 | 13 | Component.onCompleted: 14 | { 15 | if(logicOrders.commandResult.success) 16 | { 17 | messageImage = iconOk 18 | headerText = qsTr("Order created\nsuccessfully") 19 | } 20 | else 21 | { 22 | messageImage = iconBad 23 | headerText = qsTr("Creating order error") 24 | messageText = logicOrders.commandResult.message 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Plugins/MiniGame/Elements/GamePlayer.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.9 2 | 3 | Rectangle { 4 | 5 | Rectangle{ 6 | id: none 7 | anchors.horizontalCenter: parent.horizontalCenter 8 | anchors.verticalCenter: parent.verticalCenter 9 | width: 30 10 | height: 30 11 | color:"gray" 12 | } 13 | 14 | // Connections 15 | // { 16 | // target: dapMainWindow 17 | // onKeyPressed: 18 | // { 19 | //// if(event.key === Qt.Key_W && event.key === Qt.Key_A) 20 | // console.log(event) 21 | // } 22 | // } 23 | 24 | // focus: true 25 | // Keys.onPressed: 26 | // { 27 | //// if(event.key === Qt.Key_W) 28 | // console.log(event.key) 29 | // } 30 | 31 | // Shortcut 32 | // { 33 | // sequence: "W + A" 34 | // onActivated: topLeft.visible = true 35 | // } 36 | // Shortcut 37 | // { 38 | // sequence: "S + A" 39 | // onActivated: bottomLeft.visible = true 40 | // } 41 | // Shortcut 42 | // { 43 | // sequence: "W + D" 44 | // onActivated: topRight.visible = true 45 | // } 46 | // Shortcut 47 | // { 48 | // sequence: "S + D" 49 | // onActivated: bottomRight.visible = true 50 | // } 51 | 52 | 53 | } 54 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Plugins/MiniGame/MiniGame.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.9 2 | import QtQuick.Controls 2.0 3 | import QtGraphicalEffects 1.0 4 | import "Elements" 5 | 6 | Rectangle { 7 | anchors.fill: parent 8 | color: "#2E3138" 9 | radius: 16 10 | 11 | GameMainScreen 12 | { 13 | id: mainScreen 14 | } 15 | 16 | 17 | InnerShadow { 18 | id: topLeftSadow 19 | anchors.fill: mainScreen 20 | cached: true 21 | horizontalOffset: 5 22 | verticalOffset: 5 23 | radius: 4 24 | samples: 32 25 | color: "#2A2C33" 26 | smooth: true 27 | source: mainScreen 28 | visible: mainScreen.visible 29 | } 30 | InnerShadow { 31 | anchors.fill: mainScreen 32 | cached: true 33 | horizontalOffset: -1 34 | verticalOffset: -1 35 | radius: 1 36 | samples: 32 37 | color: "#4C4B5A" 38 | source: topLeftSadow 39 | visible: mainScreen.visible 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Plugins/Plugin/DapApp.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQuick.Controls 2.0 3 | import QtGraphicalEffects 1.0 4 | import "Elements" 5 | 6 | Rectangle { 7 | anchors.fill: parent 8 | color: "#2E3138" 9 | radius: 16 10 | 11 | DapAppMainScreen 12 | { 13 | id: mainScreen 14 | } 15 | 16 | InnerShadow { 17 | id: topLeftSadow 18 | anchors.fill: mainScreen 19 | cached: true 20 | horizontalOffset: 5 21 | verticalOffset: 5 22 | radius: 4 23 | samples: 32 24 | color: "#2A2C33" 25 | smooth: true 26 | source: mainScreen 27 | visible: mainScreen.visible 28 | } 29 | InnerShadow { 30 | anchors.fill: mainScreen 31 | cached: true 32 | horizontalOffset: -1 33 | verticalOffset: -1 34 | radius: 1 35 | samples: 32 36 | color: "#4C4B5A" 37 | source: topLeftSadow 38 | visible: mainScreen.visible 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Plugins/Plugin/Elements/DapAppRow.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQuick.Layouts 1.3 3 | 4 | RowLayout { 5 | 6 | property alias leftButton: leftBut 7 | property alias rightButton: rightBut 8 | 9 | spacing: 20 10 | 11 | DapAppButton 12 | { 13 | id:leftBut 14 | 15 | Layout.fillHeight: true 16 | Layout.fillWidth: true 17 | radius: 16 18 | 19 | fontButton.family: "Qicksand" 20 | fontButton.pixelSize: 20 21 | horizontalAligmentText: Qt.AlignHCenter 22 | } 23 | 24 | DapAppButton 25 | { 26 | id:rightBut 27 | 28 | Layout.fillHeight: true 29 | Layout.fillWidth: true 30 | radius: 16 31 | 32 | fontButton.family: "Qicksand" 33 | fontButton.pixelSize: 20 34 | horizontalAligmentText: Qt.AlignHCenter 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Plugins/Plugin/Elements/Windows/Console/DapConsoleComponent.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.0 2 | 3 | Component 4 | { 5 | id: delegateConsoleCommand 6 | Column 7 | { 8 | width: parent.width 9 | TextEdit 10 | { 11 | width: parent.width 12 | id: textQuery 13 | readOnly: true 14 | selectByMouse: true 15 | text: "> " + query 16 | wrapMode: TextEdit.Wrap 17 | font.family: "Quicksand" 18 | font.pixelSize: 18 19 | color: "#ffffff" 20 | 21 | selectionColor: "#AABCDE" 22 | selectedTextColor: "#2E3138" 23 | 24 | } 25 | TextEdit 26 | { 27 | id: textResponse 28 | readOnly: true 29 | selectByMouse: true 30 | text: response 31 | width: parent.width 32 | wrapMode: TextEdit.Wrap 33 | font.family: "Quicksand" 34 | font.pixelSize: 18 35 | color: "#ffffff" 36 | selectionColor: "#AABCDE" 37 | selectedTextColor: "#2E3138" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Plugins/Plugin/Elements/Windows/DapWindowLoader.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.2 2 | import QtQml 2.12 3 | import QtQuick.Controls 2.12 4 | 5 | Popup { 6 | 7 | id: dialog 8 | property alias source:loader.source 9 | 10 | scale: mainWindow.scale 11 | 12 | width: 700 * mainWindow.scale 13 | height: 600 * mainWindow.scale 14 | parent: Overlay.overlay 15 | x: Math.round((parent.width - width) / 2) 16 | y: Math.round((parent.height - height) / 2) 17 | 18 | modal: true 19 | 20 | contentItem: 21 | Loader{ 22 | id: loader 23 | anchors.fill: parent 24 | } 25 | 26 | background: 27 | Rectangle 28 | { 29 | anchors.fill: parent 30 | color: "transparent" 31 | radius: 16 32 | } 33 | } 34 | 35 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Plugins/Plugin/Elements/Windows/Orders/DapOrdersInfo.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.7 2 | 3 | Item { 4 | id: control 5 | 6 | property alias name: textName.text 7 | property alias value: textValue.text 8 | 9 | implicitWidth: textName.implicitWidth + textValue.implicitWidth 10 | implicitHeight: Math.max(textName.implicitHeight, textValue.implicitHeight) 11 | 12 | Text { 13 | id: textName 14 | anchors.left: parent.left 15 | anchors.right: parent.horizontalCenter 16 | anchors.verticalCenter: parent.verticalCenter 17 | height: Math.max(implicitHeight, parent.height) 18 | font.family: "Quicksand" 19 | font.pixelSize: 12 20 | elide: Text.ElideRight 21 | color: "#ffffff" 22 | text: qsTr("text") 23 | } 24 | 25 | Text { 26 | id: textValue 27 | anchors.left: parent.horizontalCenter 28 | anchors.right: parent.right 29 | anchors.verticalCenter: parent.verticalCenter 30 | height: Math.max(implicitHeight, parent.height) 31 | font.family: "Quicksand" 32 | font.pixelSize: 12 33 | elide: Text.ElideRight 34 | horizontalAlignment: Qt.AlignRight 35 | color: "#ffffff" 36 | text: qsTr("text") 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Settings/NodeSettings/HeaderItem.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.12 2 | import QtQuick.Controls 2.5 3 | import QtQuick.Layouts 1.3 4 | import QtGraphicalEffects 1.0 5 | import "../../controls" 6 | import "qrc:/widgets" 7 | 8 | Rectangle 9 | { 10 | property string headerName: "" 11 | 12 | Layout.fillWidth: true 13 | height: 30 14 | color: currTheme.mainBackground 15 | 16 | Text 17 | { 18 | anchors.fill: parent 19 | anchors.leftMargin: 16 20 | anchors.verticalCenter: parent.verticalCenter 21 | font: mainFont.dapFont.medium12 22 | color: currTheme.white 23 | verticalAlignment: Qt.AlignVCenter 24 | text: headerName 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Settings/RightPanel/DapEmptyRightPanel.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQuick.Controls 2.5 3 | import "../../" 4 | 5 | Page 6 | { 7 | background: Rectangle { 8 | color: "transparent" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/DapStockScreen.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQml 2.12 3 | import QtQuick.Controls 2.0 4 | import QtQuick.Layouts 1.3 5 | import QtGraphicalEffects 1.0 6 | import "qrc:/widgets" 7 | import "parts" 8 | import "parts/Chart" 9 | 10 | Page 11 | { 12 | id: mainStockScreen 13 | 14 | Component.onCompleted: 15 | { 16 | changeMainPage("parts/StockHome.qml") 17 | } 18 | 19 | background: Rectangle 20 | { 21 | color: currTheme.mainBackground 22 | } 23 | 24 | StackView { 25 | id: mainStackView 26 | anchors.fill: parent 27 | 28 | clip: true 29 | } 30 | 31 | 32 | function changeMainPage(page) 33 | { 34 | mainStackView.clear() 35 | mainStackView.push(page) 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/icons/buyIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/screen/desktop/Stock/icons/buyIcon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/icons/sellBuy_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/screen/desktop/Stock/icons/sellBuy_icon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/icons/sellIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/screen/desktop/Stock/icons/sellIcon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/parts/Chart/ChartBigTextBlock.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQuick.Layouts 1.3 3 | import "qrc:/widgets" 4 | 5 | Item { 6 | property alias label: labelItem.text 7 | property alias text: textItem.fullText 8 | property alias labelVisible: labelItem.visible 9 | property alias textColor: textItem.textElement.color 10 | property var fontComponent: mainFont.dapFont.regular12 11 | 12 | Text 13 | { 14 | id: labelItem 15 | font: fontComponent 16 | color: currTheme.gray 17 | } 18 | 19 | DapBigText 20 | { 21 | id: textItem 22 | anchors.left: labelItem.right 23 | anchors.right: parent.right 24 | height: labelItem.height 25 | textFont: fontComponent 26 | textColor: currTheme.gray 27 | textElement.elide: Text.ElideRight 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/parts/Chart/ChartTextBlock.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQuick.Layouts 1.3 3 | 4 | RowLayout { 5 | property alias label: labelItem.text 6 | property alias text: textItem.text 7 | property alias labelVisible: labelItem.visible 8 | property alias textColor: textItem.color 9 | property var textFont: mainFont.dapFont.regular12 10 | 11 | spacing: 3 12 | Text 13 | { 14 | id: labelItem 15 | font: textFont 16 | color: currTheme.gray 17 | } 18 | Text 19 | { 20 | id: textItem 21 | font: textFont 22 | color: currTheme.gray 23 | } 24 | Item { 25 | Layout.fillWidth: true 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/parts/CreateOrder/OrderCreateDone.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQml 2.12 3 | 4 | import "../../../controls" 5 | 6 | DapRightPanelDone { 7 | 8 | headerText: qsTr("Order created\nsuccessfully!") 9 | messageText: qsTr("Click on «Orders» to view\nthe status of your order") 10 | 11 | doneButton.onClicked: 12 | { 13 | goToRightHome() 14 | } 15 | 16 | Component.onCompleted: 17 | { 18 | console.log(logicStock.resultCreate.success) 19 | if(logicStock.resultCreate.success) 20 | { 21 | messageImage = iconOk 22 | 23 | if(logicStock.resultCreate.toQueue) 24 | { 25 | headerText = qsTr("Placed to queue") 26 | messageText = "" 27 | } 28 | else 29 | { 30 | headerText = qsTr("Order created\nsuccessfully!") 31 | } 32 | 33 | } 34 | else 35 | { 36 | messageImage = iconBad 37 | headerText = qsTr("Order creation\nerror!") 38 | messageText = logicStock.resultCreate.message 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/parts/CreateOrder/OrderExchangeDone.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQml 2.12 3 | 4 | import "../../../controls" 5 | 6 | DapRightPanelDone { 7 | 8 | headerText: qsTr("Order created\nsuccessfully!") 9 | messageText: qsTr("Click on «Orders» to view\nthe status of your order") 10 | 11 | doneButton.onClicked: 12 | { 13 | goToRightHome() 14 | } 15 | 16 | Component.onCompleted: 17 | { 18 | console.log(logicStock.resultCreate.success) 19 | if(logicStock.resultCreate.success) 20 | { 21 | messageImage = iconOk 22 | 23 | if(logicStock.resultCreate.toQueue) 24 | { 25 | headerText = qsTr("Placed to queue") 26 | messageText = "" 27 | } 28 | else 29 | { 30 | headerText = qsTr("Exchange completed!") 31 | } 32 | 33 | } 34 | else 35 | { 36 | messageImage = iconBad 37 | headerText = qsTr("Order creation\nerror!") 38 | messageText = logicStock.resultCreate.message 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/parts/CreateOrderLight/DapOrderTextField.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQuick.Controls 2.4 3 | import QtQuick.Layouts 1.3 4 | import "qrc:/widgets" 5 | 6 | DapTextField { 7 | property bool isInputText: true 8 | signal edited() 9 | 10 | id: textValue 11 | 12 | onTextChanged: 13 | { 14 | if (enabled) 15 | { 16 | if(isInputText) 17 | edited() 18 | 19 | isInputText = true 20 | } 21 | if(!focus) cursorPosition = 0 22 | } 23 | 24 | onFocusChanged: 25 | { 26 | textValue.cursorPosition = 0 27 | } 28 | 29 | function setText(text) 30 | { 31 | if(textValue.text === text) 32 | { 33 | return 34 | } 35 | isInputText = false 36 | textValue.text = text 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/parts/DapPairComboBox/icons/bnb_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/screen/desktop/Stock/parts/DapPairComboBox/icons/bnb_icon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/parts/DapPairComboBox/icons/cell_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/screen/desktop/Stock/parts/DapPairComboBox/icons/cell_icon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/parts/DapPairComboBox/icons/dai_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/screen/desktop/Stock/parts/DapPairComboBox/icons/dai_icon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/parts/DapPairComboBox/icons/eth_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/screen/desktop/Stock/parts/DapPairComboBox/icons/eth_icon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/parts/DapPairComboBox/icons/icon_arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/screen/desktop/Stock/parts/DapPairComboBox/icons/icon_arrow_down.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/parts/DapPairComboBox/icons/searchIcon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/parts/DapPairComboBox/icons/usdt_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/screen/desktop/Stock/parts/DapPairComboBox/icons/usdt_icon.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/parts/MyOrders/parts/DetailsText.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.9 2 | import QtQuick.Layouts 1.3 3 | 4 | ColumnLayout { 5 | id: root 6 | 7 | property alias title: title 8 | property alias content: content 9 | Layout.fillWidth: true 10 | spacing: 8 11 | 12 | 13 | Text { 14 | id: title 15 | Layout.fillWidth: true 16 | font: mainFont.dapFont.regular12 17 | color: currTheme.white 18 | width: parent.width 19 | wrapMode: Text.Wrap 20 | } 21 | 22 | Text { 23 | id: content 24 | Layout.fillWidth: true 25 | font: mainFont.dapFont.regular14 26 | color: currTheme.white 27 | width: parent.width 28 | wrapMode: Text.Wrap 29 | } 30 | } // 31 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/parts/MyOrders/parts/HeaderBigLabel.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQml 2.12 3 | import QtQuick.Controls 2.2 4 | import QtQuick.Layouts 1.2 5 | import "qrc:/widgets" 6 | 7 | Item { 8 | property alias label: label 9 | Layout.fillHeight: true 10 | Layout.fillWidth: true 11 | 12 | DapBigText 13 | { 14 | id: label 15 | anchors.fill: parent 16 | textColor: currTheme.white 17 | textElement.elide: Text.ElideCenter 18 | textFont: mainFont.dapFont.regular13 19 | fullText: price 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/parts/MyOrders/parts/HeaderLabel.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQml 2.12 3 | import QtQuick.Controls 2.2 4 | import QtQuick.Layouts 1.2 5 | 6 | Item { 7 | property alias label: label 8 | Layout.fillHeight: true 9 | Layout.fillWidth: true 10 | Text 11 | { 12 | id: label 13 | anchors.fill: parent 14 | verticalAlignment: Qt.AlignVCenter 15 | font: mainFont.dapFont.medium12 16 | color: currTheme.white 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Stock/parts/OrderBook/BookSellBuyImg.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQuick.Controls 2.4 3 | import QtQuick.Layouts 1.3 4 | 5 | Image { 6 | property var index 7 | property bool isActive: false 8 | property alias source: control.source 9 | signal clicked() 10 | 11 | id: control 12 | 13 | opacity: isActive? 1 : 0.6 14 | 15 | MouseArea { 16 | anchors.fill: parent 17 | hoverEnabled: true 18 | onClicked: control.clicked() 19 | 20 | onEntered: control.opacity = 1 21 | onExited: isActive? control.opacity = 1 : control.opacity = 0.6 22 | } 23 | 24 | Connections{ 25 | target: parent 26 | function onSetActive(ind){ 27 | if(ind === index ) 28 | isActive = true 29 | else 30 | isActive = false 31 | control.opacity = isActive? 1 : 0.6 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Tokens/RightPanel/TokenOperationsDone.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQml 2.12 3 | 4 | import "../../controls" 5 | 6 | DapRightPanelDone 7 | { 8 | 9 | headerText: qsTr("Placed to mempool") 10 | messageText: qsTr("Pending") 11 | 12 | doneButton.onClicked: 13 | { 14 | logicTokens.unselectToken() 15 | navigator.clear() 16 | } 17 | 18 | Component.onCompleted: 19 | { 20 | if(logicTokens.commandResult.success) 21 | { 22 | messageImage = iconOk 23 | headerText = qsTr("Placed to mempool") 24 | messageText = qsTr("Pending") 25 | } 26 | else 27 | { 28 | messageImage = iconBad 29 | headerText = qsTr("Error") 30 | messageText = logicTokens.commandResult.message 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/Tokens/parts/TitleTextView.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.9 2 | import QtQuick.Layouts 1.3 3 | 4 | 5 | 6 | Item { 7 | id: root 8 | 9 | property alias title: title 10 | property alias content: content 11 | property int verticalSpacing: 10 12 | 13 | implicitWidth: parent.width - x * 2 14 | implicitHeight: title.height + verticalSpacing + content.height 15 | 16 | Text { 17 | id: title 18 | font: mainFont.dapFont.regular12 19 | color: currTheme.white 20 | width: parent.width 21 | wrapMode: Text.Wrap 22 | } 23 | 24 | Text { 25 | id: content 26 | y: title.height + verticalSpacing 27 | font: mainFont.dapFont.regular14 28 | color: currTheme.white 29 | width: parent.width 30 | wrapMode: Text.Wrap 31 | } 32 | 33 | 34 | } // 35 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/UnderConstructions.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.0 2 | import QtQuick.Layouts 1.4 3 | import QtGraphicalEffects 1.0 4 | 5 | Rectangle{ 6 | color: currTheme.mainBackground 7 | anchors.fill: parent 8 | 9 | RowLayout{ 10 | anchors.fill: parent 11 | // anchors.leftMargin: 278 12 | 13 | Image { 14 | id: under_cunstruct_img 15 | Layout.preferredWidth: 500 16 | Layout.preferredHeight: 210.8 17 | 18 | Layout.alignment: Qt.AlignTop 19 | 20 | Layout.leftMargin: (parent.width - width) / 2 - 18 21 | Layout.topMargin: (parent.height - height) / 2 - 24 22 | 23 | source: "qrc:/Resources/" + pathTheme + "/Illustratons/comingsoon_illustration.png" 24 | fillMode: Image.PreserveAspectFit 25 | sourceSize.width: 500 26 | sourceSize.height: 211 27 | 28 | ColorOverlay { 29 | id: overlay 30 | anchors.fill: under_cunstruct_img 31 | source: under_cunstruct_img 32 | color: "#FFFF0000" 33 | visible: false 34 | } 35 | } 36 | 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/VPNClient/Images/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/screen/desktop/VPNClient/Images/check.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/VPNClient/Images/page-hov.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/screen/desktop/VPNClient/Images/page-hov.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/VPNClient/Images/page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardGUI/screen/desktop/VPNClient/Images/page.png -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/VPNClient/Parts/RightStackView.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQuick.Controls 2.4 3 | import QtQuick.Layouts 1.3 4 | 5 | Item 6 | { 7 | id: rightStackView 8 | anchors.fill: parent 9 | 10 | StackView { 11 | id: stackView 12 | anchors.fill: parent 13 | clip: true 14 | } 15 | 16 | function clearAll() 17 | { 18 | stackView.clear() 19 | stackView.push(initialItem) 20 | } 21 | 22 | function setItem(item) 23 | { 24 | stackView.replace(item) 25 | } 26 | 27 | function setInitialItem(item) 28 | { 29 | stackView.initialItem = item 30 | stackView.clear(StackView.ReplaceTransition) 31 | stackView.push(item) 32 | } 33 | } 34 | 35 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/VPNService/DapVPNServiceTopPanel.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQuick.Controls 2.0 3 | import "../../" 4 | import "qrc:/widgets" as Widgets 5 | import "../controls" as Controls 6 | 7 | Controls.DapTopPanel { 8 | property alias dapAddOrderButton: addOrderButton 9 | 10 | Widgets.DapButton 11 | { 12 | enabled: false 13 | id: addOrderButton 14 | textButton: qsTr("New VPN order") 15 | anchors.right: parent.right 16 | anchors.rightMargin: 24 17 | anchors.verticalCenter: parent.verticalCenter 18 | implicitHeight: 36 19 | implicitWidth: 164 20 | fontButton: mainFont.dapFont.medium14 21 | horizontalAligmentText: Text.AlignHCenter 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/VPNService/Parts/DapSpinBox.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.7 2 | import QtQuick.Controls 2.2 3 | 4 | SpinBox { 5 | id: control 6 | 7 | padding: 4 8 | font: mainFont.dapFont.medium16 9 | editable: true 10 | inputMethodHints: Qt.ImhFormattedNumbersOnly 11 | 12 | validator: IntValidator { 13 | locale: control.locale.name 14 | top: control.to 15 | bottom: control.from 16 | } 17 | 18 | contentItem: TextInput { 19 | text: control.textFromValue(control.value, control.locale) 20 | 21 | font: control.font 22 | color: currTheme.white 23 | horizontalAlignment: Qt.AlignRight 24 | verticalAlignment: Qt.AlignVCenter 25 | 26 | readOnly: !control.editable 27 | validator: control.validator 28 | inputMethodHints: control.inputMethodHints 29 | selectByMouse: true 30 | } 31 | 32 | up.indicator: null 33 | down.indicator: null 34 | 35 | background: Rectangle { 36 | implicitWidth: 140 37 | color:"transparent" 38 | border.width: pt 39 | border.color: "#B4B1BD" 40 | radius: 4 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/VPNService/Parts/DapTextButton.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.7 2 | import QtQuick.Controls 2.2 3 | 4 | Button { 5 | id: control 6 | 7 | property color textColor: "#FFFFFF" 8 | property color textColorHover: "#FFFFFF" 9 | property color backgroundColor: "#271C4E" 10 | property color backgroundColorHover: "#D51F5D" 11 | property real backgroudRadius: 4 12 | property int borderWidth: 0 13 | property color borderColor 14 | 15 | font: mainFont.dapFont.medium14 16 | 17 | contentItem: Text { 18 | font: control.font 19 | elide: Text.ElideRight 20 | color: control.hovered ? control.textColorHover : control.textColor 21 | horizontalAlignment: Text.AlignHCenter 22 | verticalAlignment: Text.AlignVCenter 23 | text: control.text 24 | } 25 | 26 | background: Rectangle { 27 | border { width: control.borderWidth; color: control.borderColor } 28 | radius: control.backgroudRadius 29 | color: control.hovered ? control.backgroundColorHover : control.backgroundColor 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/VPNService/Parts/DapVPNOrderInfoLine.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.7 2 | 3 | Item { 4 | id: control 5 | 6 | property alias name: textName.text 7 | property alias value: textValue.text 8 | 9 | implicitWidth: textName.implicitWidth + textValue.implicitWidth 10 | implicitHeight: Math.max(textName.implicitHeight, textValue.implicitHeight) 11 | 12 | Text { 13 | id: textName 14 | anchors.left: parent.left 15 | anchors.right: parent.horizontalCenter 16 | anchors.verticalCenter: parent.verticalCenter 17 | height: Math.max(implicitHeight, parent.height) 18 | font: mainFont.dapFont.medium12 19 | elide: Text.ElideRight 20 | color: currTheme.white 21 | text: qsTr("text") 22 | } 23 | 24 | Text { 25 | id: textValue 26 | anchors.left: parent.horizontalCenter 27 | anchors.right: parent.right 28 | anchors.verticalCenter: parent.verticalCenter 29 | height: Math.max(implicitHeight, parent.height) 30 | font: mainFont.dapFont.regular12 31 | elide: Text.ElideRight 32 | horizontalAlignment: Qt.AlignRight 33 | color: currTheme.white 34 | text: qsTr("text") 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/VPNService/RightPanel/DapEarnedFunds.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.9 2 | import QtQuick.Layouts 1.3 3 | import QtQuick.Controls 2.5 4 | import "qrc:/widgets" 5 | 6 | Page 7 | { 8 | 9 | background: Rectangle { 10 | color: "transparent" 11 | } 12 | 13 | ColumnLayout 14 | { 15 | anchors.fill: parent 16 | spacing: 0 17 | 18 | Item 19 | { 20 | Layout.fillWidth: true 21 | height: 42 22 | 23 | Text 24 | { 25 | anchors.fill: parent 26 | anchors.leftMargin: 24 27 | anchors.topMargin: 10 28 | anchors.bottomMargin: 10 29 | font: mainFont.dapFont.bold14 30 | color: currTheme.white 31 | verticalAlignment: Qt.AlignVCenter 32 | text: qsTr("Earned funds") 33 | } 34 | } 35 | Item 36 | { 37 | Layout.fillHeight: true 38 | } 39 | } 40 | } 41 | 42 | 43 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/controls/DapScreenPage.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.12 2 | import QtQuick.Controls 2.12 3 | import QtQuick.Layouts 1.12 4 | import QtGraphicalEffects 1.0 5 | import "qrc:/widgets" 6 | 7 | Page { 8 | id: root 9 | property alias data: root.data 10 | property alias frame: back 11 | 12 | background: DapRectangleLitAndShaded { 13 | id: back 14 | 15 | color: currTheme.secondaryBackground 16 | radius: currTheme.frameRadius 17 | shadowColor: currTheme.shadowColor 18 | lightColor: currTheme.reflectionLight 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/screen/desktop/controls/HeaderButtonForRightPanels.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.9 2 | import QtQuick.Controls 2.12 3 | 4 | Item { 5 | property string normalImage 6 | property string hoverImage 7 | 8 | property alias widthImage: image.sourceSize.width 9 | property alias heightImage: image.sourceSize.height 10 | 11 | signal clicked() 12 | 13 | Image{ 14 | id: image 15 | anchors.centerIn: parent 16 | mipmap: true 17 | source: area.containsMouse? hoverImage: normalImage 18 | } 19 | 20 | MouseArea{ 21 | id: area 22 | anchors.fill: parent 23 | hoverEnabled: true 24 | onClicked: parent.clicked() 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/systemtray.h: -------------------------------------------------------------------------------- 1 | #ifndef SYSTEMTRAY_H 2 | #define SYSTEMTRAY_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | class SystemTray : public QObject 9 | { 10 | Q_OBJECT 11 | public: 12 | explicit SystemTray(QObject *parent = 0); 13 | 14 | signals: 15 | void signalIconActivated(); 16 | void signalShow(); 17 | void signalQuit(); 18 | 19 | private slots: 20 | void iconActivated(QSystemTrayIcon::ActivationReason reason); 21 | 22 | public slots: 23 | void hideIconTray(); 24 | 25 | private: 26 | QSystemTrayIcon *trayIcon; 27 | }; 28 | 29 | #endif // SYSTEMTRAY_H 30 | -------------------------------------------------------------------------------- /CellFrameDashboardGUI/windowframerect.h: -------------------------------------------------------------------------------- 1 | #ifndef WINDOWFRAMERECT_H 2 | #define WINDOWFRAMERECT_H 3 | 4 | #include 5 | #include 6 | 7 | class WindowFrameRect : public QObject 8 | { 9 | Q_OBJECT 10 | public: 11 | explicit WindowFrameRect(QObject *parent = 0) : QObject(parent) { 12 | } 13 | 14 | Q_INVOKABLE QRect getFrameRect(QObject *window){ 15 | QQuickWindow *qw = qobject_cast(window); 16 | if (qw) 17 | return qw->frameGeometry(); 18 | return QRect(); 19 | } 20 | 21 | private: 22 | }; 23 | 24 | #endif // WINDOWFRAMERECT_H 25 | -------------------------------------------------------------------------------- /CellFrameDashboardService/CellFrameDashboardService.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | resources/icons/icon.ico 4 | 5 | 6 | -------------------------------------------------------------------------------- /CellFrameDashboardService/DapToolTipWidget.cpp: -------------------------------------------------------------------------------- 1 | #include "DapToolTipWidget.h" 2 | 3 | /// Standart constructor. 4 | /// @param parent Parent. 5 | DapToolTipWidget::DapToolTipWidget(QWidget *parent) : QWidget(parent) 6 | { 7 | // Turn off the border of the standard window 8 | setWindowFlags(Qt::FramelessWindowHint); 9 | // Set tooltip message size 10 | setFixedSize(140, 45); 11 | m_pLabel = new QLabel(this); 12 | QFont font("Times", 28, QFont::Bold); 13 | m_pLabel->setFont(font); 14 | m_pLabel->setText(QTime::currentTime().toString("hh:mm:ss")); 15 | // We initialize and start the timer for updating information in tooltip 16 | m_pTimer = new QTimer(this); 17 | // Signal-slot connection updating information in tooltip 18 | connect(m_pTimer, SIGNAL(timeout()), this, SLOT(slotTimerAlarm())); 19 | m_pTimer->start(1000); 20 | } 21 | 22 | /// Update displayed time in tooltip. 23 | void DapToolTipWidget::slotTimerAlarm() 24 | { 25 | m_pLabel->setText(QTime::currentTime().toString("hh:mm:ss")); 26 | } 27 | -------------------------------------------------------------------------------- /CellFrameDashboardService/DapToolTipWidget.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This file is part of the CellFrameDashboardService application. 4 | ** 5 | ** The class implements a toolTip popup message widget that appears 6 | ** when you hover over the CellFrameDashboardService icon in the tray. 7 | ** 8 | ****************************************************************************/ 9 | 10 | #ifndef DAPTOOLTIPWIDGET_H 11 | #define DAPTOOLTIPWIDGET_H 12 | 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | class DapToolTipWidget : public QWidget 19 | { 20 | Q_OBJECT 21 | 22 | /// Display update timer. 23 | QTimer * m_pTimer {nullptr}; 24 | /// Central widget. 25 | QLabel * m_pLabel {nullptr}; 26 | 27 | public: 28 | /// Standart constructor. 29 | /// @param parent Parent. 30 | explicit DapToolTipWidget(QWidget *parent = nullptr); 31 | 32 | private slots: 33 | /// Update displayed time in tooltip. 34 | void slotTimerAlarm(); 35 | }; 36 | 37 | #endif // DAPTOOLTIPWIDGET_H 38 | -------------------------------------------------------------------------------- /CellFrameDashboardService/platforms/win32/service/Service.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | class ServiceProcClass: public QObject { 7 | Q_OBJECT 8 | private: 9 | SERVICE_STATUS serviceStatus; 10 | HANDLE hWorkerThr; 11 | // Service manager events 12 | public: 13 | constexpr static LPCWSTR serviceName = L"" DAP_BRAND "Service"; 14 | ServiceProcClass(); 15 | ~ServiceProcClass(); 16 | static ServiceProcClass *me() { 17 | static ServiceProcClass _me; 18 | return &_me; 19 | } 20 | SERVICE_STATUS_HANDLE serviceStatusHandle; 21 | HANDLE serviceEvents[4] = { nullptr }; 22 | void UpdateServiceStatus(DWORD state, DWORD err); 23 | static DWORD WINAPI ServiceWorkerThr(void *param); 24 | signals: 25 | void stopService(); 26 | // TODO: some more flexible algo... 27 | }; 28 | 29 | void ControlHandler(DWORD request); 30 | -------------------------------------------------------------------------------- /CellFrameDashboardService/resources/icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/CellFrameDashboardService/resources/icons/icon.ico -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # cellframe-dashboard 2 | CellFrame Dashboard 3 | 4 | ## Build: 5 | 6 | * The project uses Qt environment to build. To build the project, it's enough to exec the following in the project directory: 7 | ``` 8 | git submodule update --init --recursive --remote 9 | qmake && make && make install 10 | ``` 11 | * Or if you haven't cloned the project yet: 12 | ``` 13 | git clone --recursive 14 | ``` 15 | before building the project. 16 | 17 | ## How to install: 18 | 19 | ### Debian and Ubuntu: 20 | 21 | * You need to obtain the package first. Either get it somewhere or create one from scratch by: 22 | ``` 23 | dpkg-buildpackage -J -uc -us --changes-option=--build=any 24 | ``` 25 | * Install it via dpkg 26 | ``` 27 | sudo dpkg -i cellframe-node.deb 28 | ``` 29 | 30 | ### Prerequsites: 31 | 32 | To successfully build, you must have following prerequisites preinstalled: 33 | 34 | * qt5-qmake 35 | * cdbs 36 | * debhelper 37 | * qtdeclarative5-dev 38 | -------------------------------------------------------------------------------- /debian: -------------------------------------------------------------------------------- 1 | prod_build/linux/debian/essentials/ -------------------------------------------------------------------------------- /os/debian/compat: -------------------------------------------------------------------------------- 1 | 9 2 | -------------------------------------------------------------------------------- /os/debian/control: -------------------------------------------------------------------------------- 1 | Source: cellframe-dashboard 2 | Priority: optional 3 | Maintainer: Demlabs Support 4 | Version: VERSION_MAJOR.VERSION_MINOR-VERSION_PATCH 5 | Homepage: https://cellframe.net 6 | Package: cellframe-dashboard 7 | Architecture: {ARCH} 8 | Depends: psmisc, menu, libc6 (>= 2.18), libexpat1 (>= 2.1~beta3), libfontconfig1 (>= 2.11), libfreetype6 (>= 2.6), libgcc1 (>= 1:3.0), libgl1-mesa-glx | libgl1, libmagic1 (>= 5.12), libsqlite3-0 (>= 3.7.15), libstdc++6 (>= 5.2), libx11-6, libx11-xcb1, libxcb-glx0, libxcb-icccm4 (>= 0.4.1), libxcb-image0 (>= 0.2.1), libxcb-keysyms1 (>= 0.4.0), libxcb-randr0 (>= 1.3), libxcb-render-util0, libxcb-render0, libxcb-shape0, libxcb-shm0 (>= 1.10), libxcb-sync1, libxcb-xfixes0, libxcb-xinerama0, libxcb-xkb1, libxcb1 (>= 1.8), libxext6, libxkbcommon-x11-0 (>= 0.5.0), libxkbcommon0 (>= 0.5.0), zlib1g (>= 1:1.2.0), debconf (>= 1.5), dpkg (>= 1.17), bash (>= 4), debconf-utils, dconf-cli, less, logrotate, irqbalance, qml-module-qtquick-controls, qml-module-qtquick-controls2, qml-module-qtqml-models2 9 | Description: CellFrame Dashboard 10 | CellFrame Dashboard 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /os/debian/postrm: -------------------------------------------------------------------------------- 1 | #! /bin/bash -e 2 | if [ "$1" == "purge" ] && [ -e /usr/share/debconf/confmodule ] ; then 3 | . /usr/share/debconf/confmodule 4 | db_purge 5 | fi 6 | GROUP_RM="cellframe-dashboard" 7 | service cellframe-dashboard stop || true 8 | 9 | -------------------------------------------------------------------------------- /os/debian/preinst: -------------------------------------------------------------------------------- 1 | #! /bin/bash -e 2 | service cellframe-dashboard stop || true 3 | #rm -r /opt/cellframe-node/etc/ || true 4 | -------------------------------------------------------------------------------- /os/debian/prerm: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | case "$1" in 4 | purge|remove|abort-upgrade|failed-upgrade|upgrade) 5 | [ -f /etc/systemd/user/cellframe-dashboard.service ] && service cellframe-dashboard stop 6 | [ -d /opt/cellframe-dashboard ] && rm -rf /opt/cellframe-dashboard/ 7 | [ -f /usr/local/bin/Cellframe-Dashboard ] && rm /usr/local/bin/Cellframe-Dashboard 8 | [ -f /etc/systemd/user/cellframe-dashboard.service ] && rm /etc/init.d/cellframe-dashboard 9 | systemctl daemon-reload 10 | [ -f /usr/share/applications/CellFrameDashboard.desktop ] && rm /usr/share/applications/CellFrameDashboard.desktop 11 | [ -f /usr/share/pixmaps/CellFrameDdashboard.ico ] && rm /usr/share/pixmaps/CellFrameDashboard.ico 12 | ;; 13 | *) 14 | echo "postrm called with unknown argument \`$1'" >&2 15 | exit 1 16 | ;; 17 | esac 18 | 19 | -------------------------------------------------------------------------------- /os/debian/share/CellFrameDashboard.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=CellFrame Dashboard 3 | Exec=/opt/cellframe-dashboard/bin/Cellframe-Dashboard 4 | Icon=/opt/cellframe-dashboard/share/CellframeDashboard.png 5 | Terminal=false 6 | Type=Application 7 | StartupWMClass=Cellframe-Dashboard 8 | Encoding=UTF-8 9 | Categories=Network;Application; 10 | Name[en_US]=CellFrame Dashboard 11 | -------------------------------------------------------------------------------- /os/debian/share/CellframeDashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/os/debian/share/CellframeDashboard.png -------------------------------------------------------------------------------- /os/debian/share/init.d/cellframe-dashboard.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Cellframe Dashboard Service 3 | After=network.target 4 | 5 | [Service] 6 | Type=forking 7 | OOMScoreAdjust=-1000 8 | #PIDFile=/opt/cellframe-dashboard/Cellframe-DashboardService.pid 9 | WorkingDirectory=/opt/cellframe-dashboard/ 10 | ExecStart=/opt/cellframe-dashboard/bin/Cellframe-DashboardService -D 11 | ExecStop=/opt/cellframe-dashboard/bin/Cellframe-DashboardService --stop 12 | Restart=always 13 | 14 | [Install] 15 | WantedBy=multi-user.target 16 | -------------------------------------------------------------------------------- /os/linux/share/CellFrameDashboard.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=CellFrame Dashboard 3 | Exec=/opt/cellframe-dashboard/bin/Cellframe-Dashboard 4 | Icon=/opt/cellframe-dashboard/share/CellframeDashboard.png 5 | Terminal=false 6 | Type=Application 7 | StartupWMClass=Cellframe-Dashboard 8 | Encoding=UTF-8 9 | Categories=Network;Application; 10 | Name[en_US]=CellFrame Dashboard -------------------------------------------------------------------------------- /os/linux/share/CellframeDashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/os/linux/share/CellframeDashboard.png -------------------------------------------------------------------------------- /os/linux/share/init.d/cellframe-dashboard.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Cellframe Dashboard Service 3 | After=network.target 4 | 5 | [Service] 6 | Type=forking 7 | OOMScoreAdjust=-1000 8 | #PIDFile=/opt/cellframe-dashboard/Cellframe-DashboardService.pid 9 | WorkingDirectory=/opt/cellframe-dashboard/ 10 | ExecStart=/opt/cellframe-dashboard/bin/Cellframe-DashboardService -D 11 | ExecStop=/opt/cellframe-dashboard/bin/Cellframe-DashboardService --stop 12 | Restart=always 13 | 14 | [Install] 15 | WantedBy=multi-user.target 16 | -------------------------------------------------------------------------------- /os/macos/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleExecutable 6 | Cellframe-Dashboard 7 | CFBundleGetInfoString 8 | Created by Qt/QMake 9 | CFBundleIconFile 10 | CellframeDashboard.icns 11 | CFBundleIdentifier 12 | com.demlabs.Cellframe-Dashboard 13 | CFBundlePackageType 14 | APPL 15 | CFBundleSignature 16 | ???? 17 | LSMinimumSystemVersion 18 | 10.12 19 | NOTE 20 | This file was generated by Qt/QMake. 21 | NSPrincipalClass 22 | NSApplication 23 | NSSupportsAutomaticGraphicsSwitching 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /os/macos/PKGINSTALL/Cellframe-Dashboard.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | BundleHasStrictIdentifier 7 | 8 | BundleIsRelocatable 9 | 10 | BundleIsVersionChecked 11 | 12 | BundleOverwriteAction 13 | upgrade 14 | RootRelativeBundlePath 15 | Cellframe-Dashboard.app 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /os/macos/PKGINSTALL/PackageInfo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /os/macos/cellframe-uninstaller: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | osascript -e "do shell script \"/Applications/Cellframe-Dashboard.app/Contents/Resources/uninstall\" with administrator privileges" 3 | 4 | APP_NAME=Cellframe-Dashboard 5 | SERVICE=com.demlabs."$APP_NAME"Service 6 | NODE=com.demlabs.cellframe-node 7 | 8 | echo "$HOME/Applications/Cellframe.app" 9 | sudo -u $USER launchctl stop $SERVICE 10 | 11 | sudo -u $USER launchctl stop $NODE 12 | 13 | rm -r $HOME/Applications/Cellframe.app/Contents/Resources/cache 14 | rm -r $HOME/Applications/Cellframe.app/Contents/Resources/etc 15 | rm -r $HOME/Applications/Cellframe.app/Contents/Resources/share 16 | rm -r $HOME/Applications/Cellframe.app/Contents/Resources/var/data 17 | rm -r $HOME/Applications/Cellframe.app/Contents/Resources/var/log 18 | rm -r $HOME/Applications/Cellframe.app/Contents/Resources/var/run 19 | rm -r $HOME/Applications/Cellframe.app/Contents/Resources/var/lib/global_db 20 | rm -f "$0" 21 | 22 | exit 0 23 | -------------------------------------------------------------------------------- /os/macos/cleanup/cleanup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | wd=$(pwd) 4 | cd /Library/LaunchDaemons 5 | for filename in $(ls .); do 6 | if [ -L $filename ] && [ ! -e $filename ]; then 7 | launchctl unload -w $filename 8 | rm $filename 9 | fi 10 | done 11 | 12 | cd $wd 13 | -------------------------------------------------------------------------------- /os/macos/cleanup/com.demlabs.cleanup.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Label 6 | com.demlabs.cleanup 7 | ProgramArguments 8 | 9 | /Library/LaunchDaemons/cleanup/cleanup.sh 10 | 11 | RunAtLoad 12 | 13 | KeepAlive 14 | 15 | UserName 16 | root 17 | GroupName 18 | wheel 19 | 20 | 21 | -------------------------------------------------------------------------------- /os/macos/com.demlabs.Cellframe-DashboardService.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Label 6 | com.demlabs.Cellframe-DashboardService 7 | Program 8 | /Applications/Cellframe-Dashboard.app/Contents/MacOS/Cellframe-DashboardService 9 | RunAtLoad 10 | 11 | KeepAlive 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /os/macos/com.demlabs.cellframe-node.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Label 6 | com.demlabs.cellframe-node 7 | Program 8 | /Applications/Cellframe-Dashboard.app/Contents/MacOS/cellframe-node 9 | RunAtLoad 10 | 11 | KeepAlive 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /os/macos/uninstall_icon.rsrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/os/macos/uninstall_icon.rsrc -------------------------------------------------------------------------------- /os/windows/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | Cellframe network dashboard 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /os/windows/resources.rc: -------------------------------------------------------------------------------- 1 | 1 24 manifest.xml -------------------------------------------------------------------------------- /project.yaml: -------------------------------------------------------------------------------- 1 | 2 | build_dependencies: 3 | deb: 4 | - 'build-essential' 5 | - 'libmagic-dev' 6 | - 'libsqlite3-dev' 7 | - 'libjson-c-dev' 8 | - 'libffi-dev' 9 | - 'file' 10 | - 'osslsigncode' 11 | 12 | 13 | deploy_dependencies: 14 | deb: 15 | - 'ssh' 16 | -------------------------------------------------------------------------------- /utils/Build Node/run_build: -------------------------------------------------------------------------------- 1 | # #!/bin/bash 2 | python3 ./run_build.py 3 | 4 | -------------------------------------------------------------------------------- /utils/Build Node/run_build.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | import os 3 | import multiprocessing 4 | import shutil 5 | 6 | if os.path.exists('../../node_build'): 7 | shutil.rmtree('../../node_build') 8 | 9 | os.chdir('../../') 10 | 11 | subprocess.run(['mkdir', 'node_build'], check=True) 12 | 13 | os.chdir('node_build') 14 | 15 | subprocess.run(['cmake', '../cellframe-node/'], check=True) 16 | 17 | num_cores = str(multiprocessing.cpu_count()) 18 | subprocess.run(['make', '-j', num_cores], check=True) 19 | 20 | subprocess.run(['cpack'], check=True) 21 | 22 | print('Project successfully built and installed!') 23 | input("Press Enter ...") 24 | -------------------------------------------------------------------------------- /utils/GetLogNode/getLog: -------------------------------------------------------------------------------- 1 | # #!/bin/bash 2 | python3 ./getNodeLogs.py 3 | 4 | -------------------------------------------------------------------------------- /utils/GetLogNode/getNodeLogs.py: -------------------------------------------------------------------------------- 1 | import os input_file_path = '/opt/cellframe-node/var/log/cellframe-node.log' output_file_path = 'output_file.txt' if os.path.exists(input_file_path): with open(input_file_path, 'r', encoding='cp1251') as input_file: lines = input_file.readlines()[-40000:] with open(output_file_path, 'w') as output_file: output_file.writelines(lines) print(f"File {output_file_path} OK.") else: print(f"File {input_file_path} not found.") -------------------------------------------------------------------------------- /utils/SearchSym/Search: -------------------------------------------------------------------------------- 1 | # #!/bin/bash 2 | python3 ./SearchSym.py 3 | 4 | -------------------------------------------------------------------------------- /utils/allComands/getAllCommand.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | import re 3 | 4 | path_to_executable = "/opt/cellframe-node/bin/cellframe-node-cli" 5 | 6 | parameters = "help" 7 | 8 | command = [path_to_executable, parameters] 9 | 10 | output = subprocess.check_output(command) 11 | output = output.decode("utf-8") 12 | pattern = r'(?<=\n)[^:\n]+(?=:)' 13 | matches = re.findall(pattern, output) 14 | 15 | result = "" 16 | for command_up in matches: 17 | parameters = ["help", command_up] 18 | command = [path_to_executable, parameters] 19 | resultRequest = subprocess.run([path_to_executable] + parameters, capture_output=True, text=True) 20 | output_lines = resultRequest.stdout.splitlines() 21 | for line in output_lines: 22 | if line.startswith(command_up): 23 | print(line) 24 | result += line + '\n' 25 | 26 | file = open("commands.txt", "w") 27 | file.write(result) 28 | 29 | file.close() 30 | 31 | input("Press Enter ...") -------------------------------------------------------------------------------- /utils/allComands/run: -------------------------------------------------------------------------------- 1 | # #!/bin/bash 2 | python3 ./getAllCommand.py 3 | 4 | -------------------------------------------------------------------------------- /utils/hooks/cyrillicFilter.py: -------------------------------------------------------------------------------- 1 | import os 2 | import re 3 | import sys 4 | from colorama import init, Fore, Style 5 | 6 | def has_cyrillic(content): 7 | return bool(re.search('[а-яА-Я]', content)) 8 | 9 | def filter_cyrillic(files): 10 | cyrillic_files = [] 11 | for filename in files: 12 | with open(filename, 'r') as file: 13 | content = file.readlines() 14 | for line_num, line in enumerate(content): 15 | if has_cyrillic(line): 16 | cyrillic_files.append((filename, line_num+1, line)) 17 | return cyrillic_files 18 | 19 | def startFilter(): 20 | print('Start cyrillic test.') 21 | files = os.popen('git diff --cached --name-only --diff-filter=ACMRTUXB').read().splitlines() 22 | 23 | types = ('.py', '.cpp', '.h', '.pro', '.pri', '.c', '.hpp', '.txt', '.mk') 24 | 25 | py_files = [f for f in files if f.endswith(types)] 26 | 27 | cyrillic_files = filter_cyrillic(py_files) 28 | 29 | if cyrillic_files: 30 | for filename, line_num, line in cyrillic_files: 31 | init() 32 | print( Fore.RED + 'Error cyrillic test:' + Style.RESET_ALL + f' File: {filename} , line {line_num} : {line}') 33 | sys.exit(1) 34 | 35 | print('Cyrillic test. OK') 36 | 37 | -------------------------------------------------------------------------------- /utils/hooks/main.py: -------------------------------------------------------------------------------- 1 | from cyrillicFilter import startFilter 2 | from mergeProblem import startMergeProblemTest 3 | import os 4 | import re 5 | import sys 6 | 7 | 8 | def main(): 9 | print(f'Hook started...') 10 | startFilter() 11 | startMergeProblemTest() 12 | 13 | if __name__ == '__main__': 14 | main() -------------------------------------------------------------------------------- /utils/hooks/mergeProblem.py: -------------------------------------------------------------------------------- 1 | import os 2 | import re 3 | import sys 4 | from colorama import init, Fore, Style 5 | 6 | def searchMarker(files): 7 | problem_files = [] 8 | markers = ['<<<<<<<', '=======', '>>>>>>>'] 9 | for filename in files: 10 | with open(filename, 'r') as file: 11 | content = file.readlines() 12 | for line_num, line in enumerate(content): 13 | for marker in markers: 14 | if marker in line: 15 | problem_files.append((filename, line_num+1, line)) 16 | return problem_files 17 | 18 | def startMergeProblemTest(): 19 | print('Merge problem test.') 20 | files = os.popen('git diff --cached --name-only --diff-filter=ACMRTUXB').read().splitlines() 21 | 22 | types = ('.py', '.cpp', '.h', '.pro', '.pri', '.c', '.hpp', '.txt', '.mk') 23 | 24 | py_files = [f for f in files if f.endswith(types)] 25 | 26 | cyrillic_files = searchMarker(py_files) 27 | 28 | if cyrillic_files: 29 | for filename, line_num, line in cyrillic_files: 30 | init() 31 | print( Fore.RED + 'Unresolved merge conflict:' + Style.RESET_ALL + f' File: {filename} , line {line_num} : {line}') 32 | sys.exit(1) 33 | 34 | print('Merge problem test. OK') 35 | 36 | -------------------------------------------------------------------------------- /version.mk: -------------------------------------------------------------------------------- 1 | VERSION_MAJOR=3 2 | VERSION_MINOR=1 3 | VERSION_PATCH=24 4 | -------------------------------------------------------------------------------- /wiki/Instruction.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/demlabs-cellframe/cellframe-dashboard/6b085ceb5b9b60d9266df124fce9c101ff9c1d60/wiki/Instruction.odt --------------------------------------------------------------------------------