184 lines
6.1 KiB
QML
184 lines
6.1 KiB
QML
import QtQuick 2.13
|
|
import QtQuick.Controls 2.13
|
|
import QtQuick.Layouts 1.13
|
|
import QtGraphicalEffects 1.13
|
|
|
|
import StatusQ.Controls 0.1
|
|
import StatusQ.Components 0.1
|
|
import StatusQ.Core.Utils 0.1
|
|
|
|
import utils 1.0
|
|
import shared 1.0
|
|
import shared.panels 1.0
|
|
import shared.popups 1.0
|
|
import shared.status 1.0
|
|
|
|
import "../controls"
|
|
import "../popups"
|
|
import "../panels"
|
|
import "./wallet"
|
|
|
|
SettingsContentBase {
|
|
id: root
|
|
|
|
property var emojiPopup
|
|
property var rootStore
|
|
property var walletStore
|
|
|
|
readonly property int mainViewIndex: 0;
|
|
readonly property int networksViewIndex: 1;
|
|
readonly property int editNetworksViewIndex: 2;
|
|
readonly property int accountOrderViewIndex: 3;
|
|
readonly property int accountViewIndex: 4;
|
|
|
|
Component.onCompleted: {
|
|
root.titleRowComponentLoader.sourceComponent = addNewAccountButtonComponent
|
|
}
|
|
|
|
function resetStack() {
|
|
if(stackContainer.currentIndex === root.editNetworksViewIndex) {
|
|
stackContainer.currentIndex = root.networksViewIndex
|
|
}
|
|
else {
|
|
stackContainer.currentIndex = mainViewIndex;
|
|
}
|
|
}
|
|
|
|
StackLayout {
|
|
id: stackContainer
|
|
|
|
width: root.contentWidth
|
|
height: stackContainer.currentIndex === root.mainViewIndex ? main.height:
|
|
stackContainer.currentIndex === root.networksViewIndex ? networksView.height:
|
|
stackContainer.currentIndex === root.editNetworksViewIndex ? editNetwork.height:
|
|
stackContainer.currentIndex === root.accountOrderViewIndex ? accountOrderView.height: accountView.height
|
|
currentIndex: mainViewIndex
|
|
|
|
onCurrentIndexChanged: {
|
|
root.rootStore.backButtonName = ""
|
|
root.sectionTitle = qsTr("Wallet")
|
|
root.titleRowComponentLoader.sourceComponent = undefined
|
|
root.titleRowLeftComponentLoader.sourceComponent = undefined
|
|
root.titleRowLeftComponentLoader.visible = false
|
|
root.titleLayout.spacing = 5
|
|
|
|
if (currentIndex == root.mainViewIndex) {
|
|
root.titleRowComponentLoader.sourceComponent = addNewAccountButtonComponent
|
|
}
|
|
|
|
if(currentIndex == root.networksViewIndex) {
|
|
root.rootStore.backButtonName = qsTr("Wallet")
|
|
root.sectionTitle = qsTr("Networks")
|
|
}
|
|
if(currentIndex == root.editNetworksViewIndex) {
|
|
root.rootStore.backButtonName = qsTr("Networks")
|
|
root.sectionTitle = qsTr("Edit %1").arg(!!editNetwork.combinedNetwork.prod && !!editNetwork.combinedNetwork.prod.chainName ? editNetwork.combinedNetwork.prod.chainName: "")
|
|
root.titleRowLeftComponentLoader.visible = true
|
|
root.titleRowLeftComponentLoader.sourceComponent = networkIcon
|
|
root.titleLayout.spacing = 12
|
|
}
|
|
else if(currentIndex == root.accountViewIndex) {
|
|
root.rootStore.backButtonName = qsTr("Wallet")
|
|
root.sectionTitle = ""
|
|
}
|
|
else if(currentIndex == root.accountOrderViewIndex) {
|
|
root.rootStore.backButtonName = qsTr("Wallet")
|
|
root.sectionTitle = qsTr("Edit account order")
|
|
}
|
|
}
|
|
|
|
MainView {
|
|
id: main
|
|
|
|
Layout.fillWidth: true
|
|
Layout.fillHeight: false
|
|
|
|
walletStore: root.walletStore
|
|
emojiPopup: root.emojiPopup
|
|
|
|
onGoToNetworksView: {
|
|
stackContainer.currentIndex = networksViewIndex
|
|
}
|
|
|
|
onGoToAccountView: {
|
|
root.walletStore.selectedAccount = account
|
|
accountView.keyPair = keypair
|
|
stackContainer.currentIndex = accountViewIndex
|
|
}
|
|
|
|
onGoToAccountOrderView: {
|
|
stackContainer.currentIndex = accountOrderViewIndex
|
|
}
|
|
}
|
|
|
|
NetworksView {
|
|
id: networksView
|
|
Layout.fillWidth: true
|
|
Layout.fillHeight: false
|
|
|
|
walletStore: root.walletStore
|
|
|
|
onGoBack: {
|
|
stackContainer.currentIndex = mainViewIndex
|
|
}
|
|
|
|
onEditNetwork: {
|
|
editNetwork.combinedNetwork = network
|
|
stackContainer.currentIndex = editNetworksViewIndex
|
|
}
|
|
}
|
|
|
|
EditNetworkView {
|
|
id: editNetwork
|
|
Layout.fillHeight: true
|
|
Layout.fillWidth: true
|
|
networksModule: root.walletStore.networksModule
|
|
onEvaluateRpcEndPoint: root.walletStore.evaluateRpcEndPoint(url)
|
|
onUpdateNetworkValues: root.walletStore.updateNetworkValues(chainId, newMainRpcInput, newFailoverRpcUrl)
|
|
}
|
|
|
|
AccountOrderView {
|
|
id: accountOrderView
|
|
Layout.fillWidth: true
|
|
Layout.leftMargin: Style.current.padding
|
|
Layout.rightMargin: Style.current.padding
|
|
walletStore: root.walletStore
|
|
onGoBack: {
|
|
stackContainer.currentIndex = mainViewIndex
|
|
}
|
|
}
|
|
|
|
AccountView {
|
|
id: accountView
|
|
account: root.walletStore.selectedAccount
|
|
walletStore: root.walletStore
|
|
emojiPopup: root.emojiPopup
|
|
userProfilePublicKey: walletStore.userProfilePublicKey
|
|
onGoBack: stackContainer.currentIndex = mainViewIndex
|
|
onVisibleChanged: if(!visible) root.walletStore.selectedAccount = null
|
|
}
|
|
|
|
DappPermissionsView {
|
|
walletStore: root.walletStore
|
|
}
|
|
|
|
Component {
|
|
id: addNewAccountButtonComponent
|
|
StatusButton {
|
|
text: qsTr("Add new account")
|
|
onClicked: root.walletStore.runAddAccountPopup()
|
|
}
|
|
}
|
|
|
|
Component {
|
|
id: networkIcon
|
|
StatusRoundedImage {
|
|
width: 28
|
|
height: 28
|
|
image.source: Style.svg(!!editNetwork.combinedNetwork.prod && !!editNetwork.combinedNetwork.prod.iconUrl ? editNetwork.combinedNetwork.prod.iconUrl: "")
|
|
image.fillMode: Image.PreserveAspectCrop
|
|
}
|
|
}
|
|
}
|
|
}
|