diff options
| author | luigi1111 <luigi1111w@gmail.com> | 2021-04-06 11:35:23 -0500 |
|---|---|---|
| committer | luigi1111 <luigi1111w@gmail.com> | 2021-04-06 11:35:23 -0500 |
| commit | 183585653f70e6ca66a043c42fdd825f1899c1c4 (patch) | |
| tree | 7ade514c4de7e118b1208c3df6264fa6a16232e7 /pages/settings | |
| parent | ba7eeb12c506d67703cc57752167470567dae74f (diff) | |
| parent | 6bc96270469294d6ddfedf16ff166c49079491be (diff) | |
| download | monzero-gui-183585653f70e6ca66a043c42fdd825f1899c1c4.tar.gz monzero-gui-183585653f70e6ca66a043c42fdd825f1899c1c4.tar.xz monzero-gui-183585653f70e6ca66a043c42fdd825f1899c1c4.zip | |
Merge pull request #3373
6bc9627 SettingsNode: implement multiple remote nodes support (xiphon)
Diffstat (limited to 'pages/settings')
| -rw-r--r-- | pages/settings/SettingsNode.qml | 147 |
1 files changed, 80 insertions, 67 deletions
diff --git a/pages/settings/SettingsNode.qml b/pages/settings/SettingsNode.qml index 3a9ae32f..86a2d77e 100644 --- a/pages/settings/SettingsNode.qml +++ b/pages/settings/SettingsNode.qml @@ -130,7 +130,7 @@ Rectangle{ topPadding: 0 text: qsTr("The blockchain is downloaded to your computer. Provides higher security and requires more local storage.") + translationManager.emptyString width: parent.width - (localNodeIcon.width + localNodeIcon.anchors.leftMargin + anchors.leftMargin) - } + } } MouseArea { @@ -262,80 +262,93 @@ Rectangle{ text: qsTr("To find a remote node, type 'Monero remote node' into your favorite search engine. Please ensure the node is run by a trusted third-party.") + translationManager.emptyString } - MoneroComponents.RemoteNodeEdit { - id: remoteNodeEdit - Layout.minimumWidth: 100 - placeholderFontSize: 15 + MoneroComponents.CheckBox { + border: false + checkedIcon: FontAwesome.minusCircle + uncheckedIcon: FontAwesome.plusCircle + fontAwesomeIcons: true + fontSize: 16 + iconOnTheLeft: true + text: qsTr("Add remote node") + translationManager.emptyString + toggleOnClick: false + onClicked: remoteNodeDialog.add(remoteNodesModel.append) + } - daemonAddrLabelText: qsTr("Address") + translationManager.emptyString - daemonPortLabelText: qsTr("Port") + translationManager.emptyString + ColumnLayout { + spacing: 0 - initialAddress: persistentSettings.remoteNodeAddress - onEditingFinished: { - persistentSettings.remoteNodeAddress = remoteNodeEdit.getAddress(); - console.log("setting remote node to " + persistentSettings.remoteNodeAddress); - if (persistentSettings.is_trusted_daemon) { - persistentSettings.is_trusted_daemon = !persistentSettings.is_trusted_daemon - currentWallet.setTrustedDaemon(persistentSettings.is_trusted_daemon) - setTrustedDaemonCheckBox.checked = !setTrustedDaemonCheckBox.checked - appWindow.showStatusMessage(qsTr("Remote node updated. Trusted daemon has been reset. Mark again, if desired."), 8); - } - } - } + Repeater { + model: remoteNodesModel - GridLayout { - columns: 2 - columnSpacing: 32 + Rectangle { + height: 30 + Layout.fillWidth: true + color: itemMouseArea.containsMouse || index === remoteNodesModel.selected ? MoneroComponents.Style.titleBarButtonHoverColor : "transparent" - MoneroComponents.LineEdit { - id: daemonUsername - Layout.fillWidth: true - labelText: qsTr("Daemon username") + translationManager.emptyString - text: persistentSettings.daemonUsername - placeholderText: qsTr("(optional)") + translationManager.emptyString - placeholderFontSize: 15 - labelFontSize: 14 - fontSize: 15 - } + Rectangle { + color: MoneroComponents.Style.appWindowBorderColor + anchors.right: parent.right + anchors.left: parent.left + anchors.top: parent.top + height: 1 + visible: index > 0 - MoneroComponents.LineEdit { - id: daemonPassword - Layout.fillWidth: true - labelText: qsTr("Daemon password") + translationManager.emptyString - text: persistentSettings.daemonPassword - placeholderText: qsTr("Password") + translationManager.emptyString - password: true - placeholderFontSize: 15 - labelFontSize: 14 - fontSize: 15 - } - } + MoneroEffects.ColorTransition { + targetObj: parent + blackColor: MoneroComponents.Style._b_appWindowBorderColor + whiteColor: MoneroComponents.Style._w_appWindowBorderColor + } + } - MoneroComponents.CheckBox { - id: setTrustedDaemonCheckBox - checked: persistentSettings.is_trusted_daemon - onClicked: { - persistentSettings.is_trusted_daemon = !persistentSettings.is_trusted_daemon - currentWallet.setTrustedDaemon(persistentSettings.is_trusted_daemon) - } - text: qsTr("Mark as Trusted Daemon") + translationManager.emptyString - } + Rectangle { + anchors.fill: parent + anchors.rightMargin: 80 + color: "transparent" - MoneroComponents.StandardButton { - id: btnConnectRemote - enabled: remoteNodeEdit.isValid() - small: true - text: qsTr("Connect") + translationManager.emptyString - onClicked: { - // Update daemon login - persistentSettings.remoteNodeAddress = remoteNodeEdit.getAddress(); - persistentSettings.daemonUsername = daemonUsername.text; - persistentSettings.daemonPassword = daemonPassword.text; - persistentSettings.useRemoteNode = true + MoneroComponents.TextPlain { + color: index === remoteNodesModel.selected ? MoneroComponents.Style.defaultFontColor : MoneroComponents.Style.dimmedFontColor + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left + anchors.leftMargin: 6 + font.pixelSize: 16 + text: address + themeTransition: false + } - currentWallet.setDaemonLogin(persistentSettings.daemonUsername, persistentSettings.daemonPassword); + MouseArea { + id: itemMouseArea + cursorShape: Qt.PointingHandCursor + anchors.fill: parent + hoverEnabled: true + onClicked: remoteNodesModel.applyRemoteNode(index) + } + } + + RowLayout { + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + anchors.rightMargin: 6 + height: 30 + spacing: 10 + + MoneroComponents.InlineButton { + buttonColor: "transparent" + fontFamily: FontAwesome.fontFamily + text: FontAwesome.edit + onClicked: remoteNodeDialog.edit(remoteNodesModel.get(index), function (remoteNode) { + remoteNodesModel.set(index, remoteNode) + }) + } - appWindow.connectRemoteNode() + MoneroComponents.InlineButton { + buttonColor: "transparent" + fontFamily: FontAwesome.fontFamily + text: FontAwesome.times + visible: remoteNodesModel.count > 1 + onClicked: remoteNodesModel.removeSelectNextIfNeeded(index) + } + } + } } } } @@ -431,7 +444,7 @@ Rectangle{ } } } - } + } } } |
