diff --git a/src/app/wallet/v2/view.nim b/src/app/wallet/v2/view.nim index a86ae8752f..603307b0e7 100644 --- a/src/app/wallet/v2/view.nim +++ b/src/app/wallet/v2/view.nim @@ -40,7 +40,7 @@ QtObject: result.accountsView = newAccountsView(status) result.collectiblesView = newCollectiblesView(status, appService) result.settingsView = newSettingsView() - result.networksView = newNetworksView() + result.networksView = newNetworksView(status) result.cryptoServiceController = newCryptoServiceController(status, appService) result.savedAddressesView = newSavedAddressesView(status, appService) result.setup diff --git a/src/app/wallet/v2/views/networks.nim b/src/app/wallet/v2/views/networks.nim index ceca38c135..70a8339a73 100644 --- a/src/app/wallet/v2/views/networks.nim +++ b/src/app/wallet/v2/views/networks.nim @@ -1,6 +1,6 @@ import NimQml, chronicles, sequtils, sugar from status/types/network import Network, `$` - +import status/[status, wallet2] import ./network_list logScope: @@ -8,14 +8,16 @@ logScope: QtObject: type NetworksView* = ref object of QObject + status: Status allNetworks: NetworkList enabledNetworks: NetworkList proc setup(self: NetworksView) = self.QObject.setup proc delete(self: NetworksView) = self.QObject.delete - proc newNetworksView*(): NetworksView = + proc newNetworksView*(status: Status): NetworksView = new(result, delete) + result.status = status result.allNetworks = newNetworkList() result.enabledNetworks = newNetworkList() result.setup @@ -34,4 +36,11 @@ QtObject: return newQVariant(self.enabledNetworks) QtProperty[QVariant] enabledNetworks: - read = getEnabledNetworks \ No newline at end of file + read = getEnabledNetworks + + proc toggleNetwork(self: NetworksView, chainId: int) {.slot.} = + for network in self.allNetworks.networks: + if network.chainId == chainId: + self.status.wallet2.toggleNetwork(network) + self.updateNetworks(self.status.wallet2.networks) + break \ No newline at end of file diff --git a/ui/app/AppLayouts/WalletV2/WalletV2Layout.qml b/ui/app/AppLayouts/WalletV2/WalletV2Layout.qml index f66f46e068..8f67fe75f9 100644 --- a/ui/app/AppLayouts/WalletV2/WalletV2Layout.qml +++ b/ui/app/AppLayouts/WalletV2/WalletV2Layout.qml @@ -97,6 +97,9 @@ Item { qrCode: walletView.store.profileModelInst.qrCode(walletView.store.selectedAccount.address) allNetworksModel: walletView.store.walletModelV2Inst.networksView.allNetworks enabledNetworksModel: walletView.store.walletModelV2Inst.networksView.enabledNetworks + onToggleNetwork: { + walletView.store.walletModelV2Inst.networksView.toggleNetwork(chainId) + } onCopyText: { walletView.store.copyText(text); } diff --git a/ui/app/AppLayouts/WalletV2/panels/NetworkSelectPanel.qml b/ui/app/AppLayouts/WalletV2/panels/NetworkSelectPanel.qml index 7bf2f93939..67caeaa43b 100644 --- a/ui/app/AppLayouts/WalletV2/panels/NetworkSelectPanel.qml +++ b/ui/app/AppLayouts/WalletV2/panels/NetworkSelectPanel.qml @@ -9,6 +9,7 @@ Item { height: childrenRect.height property var allNetworks property var enabledNetworks + signal toggleNetwork(int chainId) Rectangle { id: selectRectangle @@ -65,5 +66,8 @@ Item { x: (parent.width - width) y: (root.height - networkFilterPanel.height) model: root.allNetworks + onToggleNetwork: { + root.toggleNetwork(chainId) + } } } diff --git a/ui/app/AppLayouts/WalletV2/panels/WalletHeaderPanel.qml b/ui/app/AppLayouts/WalletV2/panels/WalletHeaderPanel.qml index 4d51a27ace..5eeb317c30 100644 --- a/ui/app/AppLayouts/WalletV2/panels/WalletHeaderPanel.qml +++ b/ui/app/AppLayouts/WalletV2/panels/WalletHeaderPanel.qml @@ -21,6 +21,7 @@ Item { property var enabledNetworksModel property var allNetworksModel signal copyText(string text) + signal toggleNetwork(int chainId) Row { id: accountRow @@ -78,6 +79,9 @@ Item { anchors.right: parent.right allNetworks: walletHeader.allNetworksModel enabledNetworks: walletHeader.enabledNetworksModel + onToggleNetwork: { + walletHeader.toggleNetwork(chainId) + } } Component { diff --git a/ui/app/AppLayouts/WalletV2/popups/NetworkSelectPopup.qml b/ui/app/AppLayouts/WalletV2/popups/NetworkSelectPopup.qml index 20f6ceeaa5..58b5d8a1e9 100644 --- a/ui/app/AppLayouts/WalletV2/popups/NetworkSelectPopup.qml +++ b/ui/app/AppLayouts/WalletV2/popups/NetworkSelectPopup.qml @@ -14,6 +14,7 @@ Popup { height: 432 closePolicy: Popup.CloseOnEscape property var model + signal toggleNetwork(int chainId) background: Rectangle { radius: Style.current.radius @@ -65,7 +66,9 @@ Popup { anchors.verticalCenter: parent.verticalCenter checked: model.enabled onCheckedChanged: { - console.log("TODO: Not yet implemented") + if(checked !== model.enabled){ + popup.toggleNetwork(model.chainId) + } } } } diff --git a/vendor/status-lib b/vendor/status-lib index c07e04e976..fe7e74459e 160000 --- a/vendor/status-lib +++ b/vendor/status-lib @@ -1 +1 @@ -Subproject commit c07e04e976f46edc72077b4095001afd10170a6a +Subproject commit fe7e74459ed3cb7601087db3e16931f06ed36ad0