import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import Qt.labs.settings 1.0 import StatusQ.Core 0.1 import StatusQ.Models 0.1 import utils 1.0 import Storybook 1.0 import Models 1.0 import AppLayouts.Wallet.panels 1.0 import AppLayouts.Wallet.stores 1.0 SplitView { id: root Logs { id: logs } orientation: Qt.Horizontal readonly property WalletAssetsStore walletAssetStore: WalletAssetsStore { assetsWithFilteredBalances: groupedAccountsAssetsModel } ManageAssetsPanel { id: showcasePanel SplitView.fillWidth: true SplitView.fillHeight: true getCurrencyAmount: function (balance, symbol) { return ({ amount: balance, symbol: symbol, displayDecimals: 2, stripTrailingZeroes: false }) } getCurrentCurrencyAmount: function (balance) { return ({ amount: balance, symbol: "USD", displayDecimals: 2, stripTrailingZeroes: false }) } controller: ManageTokensController { sourceModel: ctrlEmptyModel.checked ? null : walletAssetStore.groupedAccountAssetsModel settingsKey: "WalletAssets" serializeAsCollectibles: false onRequestSaveSettings: (jsonData) => { savingStarted() settingsStore.setValue(settingsKey, jsonData) savingFinished() } onRequestLoadSettings: { loadingStarted() const jsonData = settingsStore.value(settingsKey, null) loadingFinished(jsonData) } onRequestClearSettings: { settingsStore.setValue(settingsKey, null) } } Settings { id: settingsStore category: "ManageTokens-" + showcasePanel.controller.settingsKey } } LogsAndControlsPanel { id: logsAndControlsPanel SplitView.minimumWidth: 150 SplitView.preferredWidth: 250 logsView.logText: logs.logText ColumnLayout { Label { Layout.fillWidth: true text: "Dirty: %1 (rev %2)".arg(showcasePanel.dirty ? "true" : "false").arg(showcasePanel.controller.revision) } Label { Layout.fillWidth: true text: "Has saved settings: %1".arg(showcasePanel.hasSettings ? "true" : "false") } Button { enabled: showcasePanel.dirty text: "Save" onClicked: showcasePanel.saveSettings(false /* update */) } Button { text: "Revert" onClicked: showcasePanel.revert() } Button { enabled: showcasePanel.hasSettings text: "Clear settings" onClicked: showcasePanel.clearSettings() } Switch { id: ctrlEmptyModel text: "Empty model" } } } } // category: Panels // https://www.figma.com/file/FkFClTCYKf83RJWoifWgoX/Wallet-v2?type=design&node-id=18139-95033&mode=design&t=nqFScWLfusXBNQA5-0 // https://www.figma.com/file/FkFClTCYKf83RJWoifWgoX/Wallet-v2?type=design&node-id=17674-273051&mode=design&t=nqFScWLfusXBNQA5-0 // https://www.figma.com/file/FkFClTCYKf83RJWoifWgoX/Wallet-v2?type=design&node-id=17636-249780&mode=design&t=nqFScWLfusXBNQA5-0 // https://www.figma.com/file/FkFClTCYKf83RJWoifWgoX/Wallet-v2?type=design&node-id=17674-276833&mode=design&t=nqFScWLfusXBNQA5-0 // https://www.figma.com/file/FkFClTCYKf83RJWoifWgoX/Wallet-v2?type=design&node-id=17675-283206&mode=design&t=nqFScWLfusXBNQA5-0