From f329a710295deed3c15f2acff9a519c0a70e98e1 Mon Sep 17 00:00:00 2001 From: dsc Date: Mon, 14 Jan 2019 01:02:44 +0100 Subject: [PATCH] Wizard redesign --- LeftPanel.qml | 23 +- components/InlineButton.qml | 14 +- components/InputMulti.qml | 3 + components/LanguageSidebar.qml | 170 ++++++ components/LineEdit.qml | 6 +- components/LineEditMulti.qml | 16 +- components/NetworkStatusItem.qml | 7 +- components/RemoteNodeEdit.qml | 10 +- components/Style.qml | 1 + components/TitleBar.qml | 103 +++- components/WarningBox.qml | 27 +- images/create-wallet.png | Bin 0 -> 1120 bytes images/create-wallet@2x.png | Bin 0 -> 2084 bytes images/langFlagGrey.png | Bin 0 -> 15321 bytes images/local-node-full.png | Bin 0 -> 1075 bytes images/local-node-full@2x.png | Bin 0 -> 2142 bytes images/local-node.png | Bin 0 -> 848 bytes images/local-node@2x.png | Bin 0 -> 1724 bytes images/open-wallet-from-file.png | Bin 0 -> 742 bytes images/open-wallet-from-file@2x.png | Bin 0 -> 1470 bytes images/remote-node.png | Bin 0 -> 1460 bytes images/remote-node@2x.png | Bin 0 -> 3395 bytes images/restore-wallet-from-hardware.png | Bin 0 -> 1468 bytes images/restore-wallet-from-hardware@2x.png | Bin 0 -> 2642 bytes images/restore-wallet.png | Bin 0 -> 1008 bytes images/restore-wallet@2x.png | Bin 0 -> 1932 bytes images/world-flags-globe.png | Bin 0 -> 754350 bytes js/TxUtils.js | 1 + js/Utils.js | 20 + js/Wizard.js | 179 +++++++ main.qml | 163 ++++-- monero-wallet-gui.pro | 5 +- pages/Receive.qml | 1 + pages/Transfer.qml | 11 +- pages/settings/Navbar.qml | 4 + pages/settings/SettingsInfo.qml | 40 ++ pages/settings/SettingsLayout.qml | 11 + pages/settings/SettingsWallet.qml | 2 + qml.qrc | 57 ++- src/daemon/DaemonManager.cpp | 4 +- wizard/WizardAskPassword.qml | 259 ++++++++++ wizard/WizardConfigure.qml | 175 ------- wizard/WizardController.qml | 484 ++++++++++++++++++ wizard/WizardCreateDevice1.qml | 187 +++++++ wizard/WizardCreateWallet.qml | 112 ---- wizard/WizardCreateWallet1.qml | 147 ++++++ wizard/WizardCreateWallet2.qml | 86 ++++ wizard/WizardCreateWallet3.qml | 78 +++ wizard/WizardCreateWallet4.qml | 85 +++ wizard/WizardCreateWalletFromDevice.qml | 124 ----- wizard/WizardDaemonSettings.qml | 322 ++++++------ wizard/WizardDonation.qml | 196 ------- wizard/WizardFinish.qml | 152 ------ wizard/WizardHeader.qml | 96 ++++ wizard/WizardHome.qml | 250 +++++++++ wizard/WizardLanguage.qml | 253 +++++++++ wizard/WizardMain.qml | 435 ---------------- wizard/WizardManageWalletUI.qml | 415 --------------- wizard/WizardMemoTextInput.qml | 96 ---- wizard/WizardMenuItem.qml | 120 +++++ wizard/WizardModeBootstrap.qml | 206 ++++++++ wizard/WizardModeRemoteNodeWarning.qml | 206 ++++++++ wizard/WizardModeSelection.qml | 153 ++++++ wizard/WizardNav.qml | 116 +++++ ...wordInput.qml => WizardNavProgressDot.qml} | 65 +-- wizard/WizardOpenWallet1.qml | 236 +++++++++ wizard/WizardOptions.qml | 394 -------------- wizard/WizardPassword.qml | 143 ------ wizard/WizardPasswordUI.qml | 102 ---- wizard/WizardRecoveryWallet.qml | 135 ----- wizard/WizardRestoreWallet1.qml | 284 ++++++++++ wizard/WizardRestoreWallet2.qml | 85 +++ wizard/WizardRestoreWallet3.qml | 86 ++++ wizard/WizardRestoreWallet4.qml | 84 +++ wizard/WizardSummary.qml | 91 ++++ ...ewOnlyWallet.qml => WizardSummaryItem.qml} | 88 ++-- wizard/WizardWalletInput.qml | 111 ++++ wizard/WizardWelcome.qml | 195 ------- wizard/utils.js | 24 - 79 files changed, 4663 insertions(+), 3091 deletions(-) create mode 100644 components/LanguageSidebar.qml create mode 100644 images/create-wallet.png create mode 100644 images/create-wallet@2x.png create mode 100644 images/langFlagGrey.png create mode 100644 images/local-node-full.png create mode 100644 images/local-node-full@2x.png create mode 100644 images/local-node.png create mode 100644 images/local-node@2x.png create mode 100644 images/open-wallet-from-file.png create mode 100644 images/open-wallet-from-file@2x.png create mode 100644 images/remote-node.png create mode 100644 images/remote-node@2x.png create mode 100644 images/restore-wallet-from-hardware.png create mode 100644 images/restore-wallet-from-hardware@2x.png create mode 100644 images/restore-wallet.png create mode 100644 images/restore-wallet@2x.png create mode 100644 images/world-flags-globe.png create mode 100644 js/Wizard.js create mode 100644 wizard/WizardAskPassword.qml delete mode 100644 wizard/WizardConfigure.qml create mode 100644 wizard/WizardController.qml create mode 100644 wizard/WizardCreateDevice1.qml delete mode 100644 wizard/WizardCreateWallet.qml create mode 100644 wizard/WizardCreateWallet1.qml create mode 100644 wizard/WizardCreateWallet2.qml create mode 100644 wizard/WizardCreateWallet3.qml create mode 100644 wizard/WizardCreateWallet4.qml delete mode 100644 wizard/WizardCreateWalletFromDevice.qml delete mode 100644 wizard/WizardDonation.qml delete mode 100644 wizard/WizardFinish.qml create mode 100644 wizard/WizardHeader.qml create mode 100644 wizard/WizardHome.qml create mode 100644 wizard/WizardLanguage.qml delete mode 100644 wizard/WizardMain.qml delete mode 100644 wizard/WizardManageWalletUI.qml delete mode 100644 wizard/WizardMemoTextInput.qml create mode 100644 wizard/WizardMenuItem.qml create mode 100644 wizard/WizardModeBootstrap.qml create mode 100644 wizard/WizardModeRemoteNodeWarning.qml create mode 100644 wizard/WizardModeSelection.qml create mode 100644 wizard/WizardNav.qml rename wizard/{WizardPasswordInput.qml => WizardNavProgressDot.qml} (60%) create mode 100644 wizard/WizardOpenWallet1.qml delete mode 100644 wizard/WizardOptions.qml delete mode 100644 wizard/WizardPassword.qml delete mode 100644 wizard/WizardPasswordUI.qml delete mode 100644 wizard/WizardRecoveryWallet.qml create mode 100644 wizard/WizardRestoreWallet1.qml create mode 100644 wizard/WizardRestoreWallet2.qml create mode 100644 wizard/WizardRestoreWallet3.qml create mode 100644 wizard/WizardRestoreWallet4.qml create mode 100644 wizard/WizardSummary.qml rename wizard/{WizardCreateViewOnlyWallet.qml => WizardSummaryItem.qml} (51%) create mode 100644 wizard/WizardWalletInput.qml delete mode 100644 wizard/WizardWelcome.qml delete mode 100644 wizard/utils.js diff --git a/LeftPanel.qml b/LeftPanel.qml index fce19dec..ec4c0cd8 100644 --- a/LeftPanel.qml +++ b/LeftPanel.qml @@ -435,6 +435,7 @@ Rectangle { MoneroComponents.MenuButton { id: merchantButton + visible: appWindow.walletMode >= 2 anchors.left: parent.left anchors.right: parent.right text: qsTr("Merchant") + translationManager.emptyString @@ -449,7 +450,7 @@ Rectangle { } Rectangle { - visible: merchantButton.present + visible: merchantButton.present && appWindow.walletMode >= 2 anchors.left: parent.left anchors.right: parent.right anchors.leftMargin: 16 @@ -484,6 +485,7 @@ Rectangle { // ------------- Advanced tab --------------- MoneroComponents.MenuButton { id: advancedButton + visible: appWindow.walletMode >= 2 anchors.left: parent.left anchors.right: parent.right text: qsTr("Advanced") + translationManager.emptyString @@ -494,8 +496,9 @@ Rectangle { parent.previousButton = advancedButton } } + Rectangle { - visible: advancedButton.present + visible: advancedButton.present && appWindow.walletMode >= 2 anchors.left: parent.left anchors.right: parent.right anchors.leftMargin: 16 @@ -506,7 +509,7 @@ Rectangle { // ------------- Mining tab --------------- MoneroComponents.MenuButton { id: miningButton - visible: !isAndroid && !isIOS + visible: !isAndroid && !isIOS && appWindow.walletMode >= 2 anchors.left: parent.left anchors.right: parent.right text: qsTr("Mining") + translationManager.emptyString @@ -521,7 +524,7 @@ Rectangle { } Rectangle { - visible: miningButton.present + visible: miningButton.present && appWindow.walletMode >= 2 anchors.left: parent.left anchors.right: parent.right anchors.leftMargin: 16 @@ -531,6 +534,7 @@ Rectangle { // ------------- TxKey tab --------------- MoneroComponents.MenuButton { id: txkeyButton + visible: appWindow.walletMode >= 2 anchors.left: parent.left anchors.right: parent.right text: qsTr("Prove/check") + translationManager.emptyString @@ -544,7 +548,7 @@ Rectangle { } } Rectangle { - visible: txkeyButton.present + visible: txkeyButton.present && appWindow.walletMode >= 2 anchors.left: parent.left anchors.right: parent.right anchors.leftMargin: 16 @@ -554,6 +558,7 @@ Rectangle { // ------------- Shared RingDB tab --------------- MoneroComponents.MenuButton { id: sharedringdbButton + visible: appWindow.walletMode >= 2 anchors.left: parent.left anchors.right: parent.right text: qsTr("Shared RingDB") + translationManager.emptyString @@ -567,7 +572,7 @@ Rectangle { } } Rectangle { - visible: sharedringdbButton.present + visible: sharedringdbButton.present && appWindow.walletMode >= 2 anchors.left: parent.left anchors.right: parent.right anchors.leftMargin: 16 @@ -579,6 +584,7 @@ Rectangle { // ------------- Sign/verify tab --------------- MoneroComponents.MenuButton { id: signButton + visible: appWindow.walletMode >= 2 anchors.left: parent.left anchors.right: parent.right text: qsTr("Sign/verify") + translationManager.emptyString @@ -592,7 +598,7 @@ Rectangle { } } Rectangle { - visible: signButton.present + visible: signButton.present && appWindow.walletMode >= 2 anchors.left: parent.left anchors.right: parent.right anchors.leftMargin: 16 @@ -624,6 +630,7 @@ Rectangle { // ------------- Sign/verify tab --------------- MoneroComponents.MenuButton { id: keysButton + visible: appWindow.walletMode >= 2 anchors.left: parent.left anchors.right: parent.right text: qsTr("Seed & Keys") + translationManager.emptyString @@ -637,7 +644,7 @@ Rectangle { } } Rectangle { - visible: settingsButton.present + visible: settingsButton.present && appWindow.walletMode >= 2 anchors.left: parent.left anchors.right: parent.right anchors.leftMargin: 16 diff --git a/components/InlineButton.qml b/components/InlineButton.qml index 7bd1f7d2..e894e14d 100644 --- a/components/InlineButton.qml +++ b/components/InlineButton.qml @@ -33,14 +33,20 @@ import "../components" as MoneroComponents Item { id: inlineButton - height: rect.height * scaleRatio + height: parent.height + anchors.top: parent.top + anchors.bottom: parent.bottom + + property bool small: false property string shadowPressedColor: "#B32D00" property string shadowReleasedColor: "#FF4304" property string pressedColor: "#FF4304" property string releasedColor: "#FF6C3C" property string icon: "" property string textColor: "#FFFFFF" - property int fontSize: 12 * scaleRatio + property int fontSize: small ? 14 * scaleRatio : 16 * scaleRatio + property int rectHeight: small ? 24 * scaleRatio : 28 * scaleRatio + property int rectHMargin: small ? 16 * scaleRatio : 22 * scaleRatio property alias text: inlineText.text property alias buttonColor: rect.color signal clicked() @@ -59,14 +65,14 @@ Item { width: inlineText.text ? (inlineText.width + 22) * scaleRatio : inlineButton.icon ? (inlineImage.width + 16) * scaleRatio : rect.height radius: 4 - anchors.top: parent.top + anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right Text { id: inlineText font.family: MoneroComponents.Style.fontBold.name font.bold: true - font.pixelSize: 16 * scaleRatio + font.pixelSize: inlineButton.fontSize color: "black" anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter diff --git a/components/InputMulti.qml b/components/InputMulti.qml index 8712a69c..e497e18b 100644 --- a/components/InputMulti.qml +++ b/components/InputMulti.qml @@ -51,6 +51,9 @@ TextArea { selectionColor: MoneroComponents.Style.dimmedFontColor selectedTextColor: MoneroComponents.Style.defaultFontColor + property int minimumHeight: 100 * scaleRatio + height: contentHeight > minimumHeight ? contentHeight : minimumHeight + onTextChanged: { if(addressValidation){ // js replacement for `RegExpValidator { regExp: /[0-9A-Fa-f]{95}/g }` diff --git a/components/LanguageSidebar.qml b/components/LanguageSidebar.qml new file mode 100644 index 00000000..7d45d68b --- /dev/null +++ b/components/LanguageSidebar.qml @@ -0,0 +1,170 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import "../components" as MoneroComponents + +import QtQuick 2.7 +import QtQuick.XmlListModel 2.0 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + + +Drawer { + id: sideBar + + // @TODO: Qt 5.10 introduces `opened` built-in for Drawer + property bool isOpened: false + + onClosed: { + isOpened = false; + } + + onOpened: { + isOpened = true; + } + + width: 240 * scaleRatio + height: parent.height - (persistentSettings.customDecorations ? 50 : 0) + y: titleBar.height + + background: Rectangle { + color: "#0d0d0d" + width: parent.width + } + + Rectangle { + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + color: "red" + + ListView { + clip: true + Layout.fillHeight: true + Layout.fillWidth: true + boundsBehavior: Flickable.StopAtBounds + width: sideBar.width + height: sideBar.height + + model: langModel + + delegate: Rectangle { + id: item + color: "transparent" + width: sideBar.width + height: 32 * scaleRatio + + Text { + anchors.left: parent.left + anchors.leftMargin: 16 * scaleRatio + font.bold: true + font.pixelSize: 14 * scaleRatio + color: MoneroComponents.Style.defaultFontColor + text: display_name + anchors.verticalCenter: parent.verticalCenter + } + + Rectangle { + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.right: parent.right + color: MoneroComponents.Style.dividerColor + opacity: MoneroComponents.Style.dividerOpacity + height: 1 + } + + // button gradient while checked + Image { + anchors.fill: parent + source: "../images/menuButtonGradient.png" + opacity: 0.65 + visible: true + + MouseArea { + anchors.fill: parent + cursorShape: Qt.PointingHandCursor + onClicked: { + var locale_spl = locale.split("_"); + + // reload active translations + console.log(locale_spl[0]); + translationManager.setLanguage(locale_spl[0]); + + // set wizard language settings + wizard.language_locale = locale; + wizard.language_wallet = wallet_language; + wizard.language_language = display_name + " (" + locale_spl[1] + ") "; + sideBar.close() + } + hoverEnabled: true + onEntered: { + // item.color = "#26FFFFFF" + parent.opacity = 1 + } + onExited: { + // item.color = "transparent" + parent.opacity = 0.65 + } + } + } + } + + ScrollIndicator.vertical: ScrollIndicator { + // @TODO: QT 5.9 introduces `policy: ScrollBar.AlwaysOn` + active: true + contentItem.opacity: 0.7 + onActiveChanged: { + if (!active) { + active = true; + } + } + } + } + } + + //Flags model + XmlListModel { + id: langModel + source: "/lang/languages.xml" + query: "/languages/language" + + XmlRole { name: "display_name"; query: "@display_name/string()" } + XmlRole { name: "locale"; query: "@locale/string()" } + XmlRole { name: "wallet_language"; query: "@wallet_language/string()" } + XmlRole { name: "flag"; query: "@flag/string()" } + // TODO: XmlListModel is read only, we should store current language somewhere else + // and set current language accordingly + XmlRole { name: "isCurrent"; query: "@enabled/string()" } + + onStatusChanged: { + if(status === XmlListModel.Ready){ + console.log("languages available: ",count); + } + } + } +} diff --git a/components/LineEdit.qml b/components/LineEdit.qml index b9e137bb..883066bf 100644 --- a/components/LineEdit.qml +++ b/components/LineEdit.qml @@ -54,7 +54,9 @@ Item { property bool borderDisabled: false property string borderColor: { - if(input.activeFocus){ + if(error && input.text !== ""){ + return MoneroComponents.Style.inputBorderColorInvalid; + } else if(input.activeFocus){ return MoneroComponents.Style.inputBorderColorActive; } else { return MoneroComponents.Style.inputBorderColorInActive; @@ -211,8 +213,6 @@ Item { visible: item.inlineButtonText ? true : false anchors.right: parent.right anchors.rightMargin: 8 * scaleRatio - anchors.top: parent.top - anchors.topMargin: 6 * scaleRatio } } } diff --git a/components/LineEditMulti.qml b/components/LineEditMulti.qml index 73033c7e..e27e3008 100644 --- a/components/LineEditMulti.qml +++ b/components/LineEditMulti.qml @@ -42,6 +42,12 @@ ColumnLayout { property alias labelButtonText: labelButton.text property alias placeholderText: placeholderLabel.text + property int inputPaddingLeft: 10 * scaleRatio + property int inputPaddingRight: 10 * scaleRatio + property int inputPaddingTop: 10 * scaleRatio + property int inputPaddingBottom: 10 * scaleRatio + property int inputRadius: 4 + property bool placeholderCenter: false property string placeholderFontFamily: MoneroComponents.Style.fontRegular.name property bool placeholderFontBold: false @@ -153,8 +159,12 @@ ColumnLayout { readOnly: false addressValidation: false Layout.fillWidth: true - topPadding: 10 * scaleRatio - bottomPadding: 10 * scaleRatio + + leftPadding: item.inputPaddingLeft + rightPadding: item.inputPaddingRight + topPadding: item.inputPaddingTop + bottomPadding: item.inputPaddingBottom + wrapMode: item.wrapMode fontSize: item.fontSize fontBold: item.fontBold @@ -182,7 +192,7 @@ ColumnLayout { color: "transparent" border.width: 1 border.color: item.borderColor - radius: 4 + radius: item.inputRadius anchors.fill: parent visible: !item.borderDisabled } diff --git a/components/NetworkStatusItem.qml b/components/NetworkStatusItem.qml index 965948bd..a1994398 100644 --- a/components/NetworkStatusItem.qml +++ b/components/NetworkStatusItem.qml @@ -47,8 +47,13 @@ Rectangle { } if (status == Wallet.ConnectionStatus_WrongVersion) return qsTr("Wrong version") - if (status == Wallet.ConnectionStatus_Disconnected) + if (status == Wallet.ConnectionStatus_Disconnected){ + if(appWindow.walletMode <= 1){ + return qsTr("Searching node") + translationManager.emptyString; + } return qsTr("Disconnected") + } + return qsTr("Invalid connection status") } diff --git a/components/RemoteNodeEdit.qml b/components/RemoteNodeEdit.qml index 52b3b46e..46e9fe3c 100644 --- a/components/RemoteNodeEdit.qml +++ b/components/RemoteNodeEdit.qml @@ -31,6 +31,7 @@ import QtQuick.Controls.Styles 1.2 import QtQuick 2.2 import QtQuick.Layouts 1.1 +import "../js/Utils.js" as Utils import "../components" as MoneroComponents GridLayout { @@ -65,7 +66,14 @@ GridLayout { } function getAddress() { - return daemonAddr.text.trim() + ":" + daemonPort.text.trim() + var addr = daemonAddr.text.trim(); + var port = daemonPort.text.trim(); + + // validation + if(addr === "" || addr.length < 2) return ""; + if(!Utils.isNumeric(port)) return ""; + + return addr + ":" + port; } LineEdit { diff --git a/components/Style.qml b/components/Style.qml index b5926dab..52b49287 100644 --- a/components/Style.qml +++ b/components/Style.qml @@ -16,6 +16,7 @@ QtObject { property string defaultFontColor: "white" property string dimmedFontColor: "#BBBBBB" + property string lightGreyFontColor: "#DFDFDF" property string errorColor: "#FA6800" property string inputBoxBackground: "black" property string inputBoxBackgroundError: "#FFDDDD" diff --git a/components/TitleBar.qml b/components/TitleBar.qml index 6c9bfb1e..65398d71 100644 --- a/components/TitleBar.qml +++ b/components/TitleBar.qml @@ -126,37 +126,88 @@ Rectangle { z: parent.z + 1 } - // collapse left panel - Rectangle { - id: goToBasicVersionButton - property bool containsMouse: titleBar.mouseX >= x && titleBar.mouseX <= x + width - property bool checked: false - anchors.top: parent.top + RowLayout { anchors.left: parent.left - color: "transparent" - height: titleBar.height - width: height - visible: !titleBar.orange && titleBar.basicButtonVisible + anchors.top: parent.top + width: 40 + height: parent.height + spacing: 0 z: parent.z + 2 - Image { - width: 14 - height: 14 - anchors.centerIn: parent - source: "../images/expand.png" + Rectangle { + Layout.preferredHeight: parent.height + Layout.preferredWidth: Layout.preferredHeight + + id: goToBasicVersionButton + property bool containsMouse: titleBar.mouseX >= x && titleBar.mouseX <= x + width + property bool checked: false + color: "transparent" + height: titleBar.height + width: height + visible: !titleBar.orange && titleBar.basicButtonVisible + + Image { + width: 14 + height: 14 + anchors.centerIn: parent + source: "../images/expand.png" + } + + MouseArea { + id: basicMouseArea + hoverEnabled: true + anchors.fill: parent + cursorShape: Qt.PointingHandCursor + onEntered: { goToBasicVersionButton.color = titleBar.orange ? titleBar.buttonHoverColorOrange : titleBar.buttonHoverColor } + onExited: goToBasicVersionButton.color = "transparent"; + onClicked: { + releaseFocus() + parent.checked = !parent.checked + titleBar.goToBasicVersion(leftPanel.visible) + } + } } - MouseArea { - id: basicMouseArea - hoverEnabled: true - anchors.fill: parent - cursorShape: Qt.PointingHandCursor - onEntered: { goToBasicVersionButton.color = titleBar.orange ? titleBar.buttonHoverColorOrange : titleBar.buttonHoverColor } - onExited: goToBasicVersionButton.color = "transparent"; - onClicked: { - releaseFocus() - parent.checked = !parent.checked - titleBar.goToBasicVersion(leftPanel.visible) + // language selection + Rectangle { + Layout.preferredHeight: parent.height + Layout.preferredWidth: Layout.preferredHeight + visible: !titleBar.orange && persistentSettings.customDecorations + + id: languageSelection + property bool containsMouse: titleBar.mouseX >= x && titleBar.mouseX <= x + width + property bool checked: false + color: "transparent" + height: titleBar.height + width: height + z: parent.z + 2 + + Image { + width: 14 + height: 14 + anchors.centerIn: parent + source: "../images/langFlagGrey.png" + } + + MouseArea { + hoverEnabled: true + anchors.fill: parent + cursorShape: Qt.PointingHandCursor + onEntered: parent.color = "#262626"; + onExited: parent.color = "transparent"; + onClicked: { + releaseFocus(); + + // Show welcome screen if on home + if(wizard.wizardState === "wizardHome" || wizard.wizardState === "wizardModeSelection"){ + wizard.skipModeSelection = true; + wizard.wizardState = 'wizardLanguage'; + return; + } + + languageSidebar.isOpened ? languageSidebar.close() : languageSidebar.open(); + console.log('change language'); + } } } } diff --git a/components/WarningBox.qml b/components/WarningBox.qml index db0673da..bc85975c 100644 --- a/components/WarningBox.qml +++ b/components/WarningBox.qml @@ -28,12 +28,12 @@ Rectangle { Image { Layout.alignment: Qt.AlignVCenter - Layout.preferredHeight: 33 - Layout.preferredWidth: 33 - Layout.rightMargin: 14 - Layout.leftMargin: 14 - Layout.topMargin: 12 - Layout.bottomMargin: 12 + Layout.preferredHeight: 33 * scaleRatio + Layout.preferredWidth: 33 * scaleRatio + Layout.rightMargin: 12 * scaleRatio + Layout.leftMargin: 18 * scaleRatio + Layout.topMargin: 12 * scaleRatio + Layout.bottomMargin: 12 * scaleRatio source: "../images/warning.png" } @@ -44,22 +44,19 @@ Rectangle { font.family: MoneroComponents.Style.fontRegular.name font.pixelSize: root.fontSize horizontalAlignment: TextInput.AlignLeft - selectionColor: MoneroComponents.Style.dimmedFontColor selectByMouse: true textFormat: Text.RichText wrapMode: Text.WordWrap textMargin: 0 - leftPadding: 0 - topPadding: 6 + leftPadding: 4 * scaleRatio + rightPadding: 18 * scaleRatio + topPadding: 10 * scaleRatio + bottomPadding: 10 * scaleRatio readOnly: true onLinkActivated: root.linkActivated(); - // @TODO: Legacy. Remove after Qt 5.8. - // https://stackoverflow.com/questions/41990013 - MouseArea { - anchors.fill: parent - enabled: false - } + selectionColor: MoneroComponents.Style.dimmedFontColor + selectedTextColor: MoneroComponents.Style.defaultFontColor } } } diff --git a/images/create-wallet.png b/images/create-wallet.png new file mode 100644 index 0000000000000000000000000000000000000000..52fde3abf53236874578522d023ac6cc4f2b73fb GIT binary patch literal 1120 zcmV-m1fTnfP)Px(8c9S!RA>e5nmuR~K@`XTbC;MPet|?$(NaOI6fOJ!D+{%Wh*;PK1QiP{L{Tt; zA{HtLMnO^vdW~4bO2My65c~*&AT|~nv{Av+kaWV(i>MD2EE4>FjE+a0Xlq@KzOYPRn{$vrut%NvoR}Cq8}7>ciOz&uU7M+2NQkhLnryRd+-(m(MH^JJTK`kSYXz5Sru&7WT(95RTHlZ+iPTq#2p$7yWE+eGC{dJr?Lko@y<5)8miA=}-G{a^)RdN{86o z+xn8Gl{?kkH9<>*@u|B@ore>)#lUekyOP!`Oe+`NXA@1VA^4EG$tL_oU%XlOE9T(;?gE{_B)jM19S2cOzI{-+Z;&i zT{`Jp#Uo?rIWgAguHhI^>Kq|$9LGKfGV>KKtlK%ACMVBQCNFJLmobj?%z^89wt{rq zt`C$>$q$(Gl%P_#^>bW8nIAC2v6Kl*TbwTAQ|S2vbFval+hkkn9PdcF0q$Rj!j>VR ze?e?o#lhibD2fcrKM*_}1s=n9Y7B>C z=`{J-)-He23&Yzz3hUL4r~vH|F_z3%I2eCGFYD+9kz6gQ>%=;>Me=iQV2x;Yt!55f zy}k>f-d0+nbgI%Ob;dB+*q2ad4jknr6OYpwpp&2D63YC6b)pi=rkxPZ)GZ%i6I82B z6oI}mXLjTRECJ$lLd+7BD`>=j^7VR03bu|E=NvLfOAEj_YE<+qR2mnOm|+k%4pJU z!q#8aRr@qy!Jj@Yz zMUh(_QCr7*YI|C8kQgE;|10^PVCJDqhO%}2%KX}PAF(6xEXCwq<|;aE6_FkEsSE3inl&n6N!}0_wUEOxV%g+K4K@7n z=3<_6%0q%fgbB}CXH_g70aZ@w{QbM z=29NBzb#acbUT}Zs|D%se`lS4WJ>ciC}NbgqB!x!NgAOVuN7Z(_{0=jah$La_{Hf3 z_~RK_=hq#i5J2K@^Ym38bW9?Iv+eM3zhWt2VP$4P%TlS9#8$$SKCXlfZ|AOu73>-p z*jSh@5oE>Gh|K}L3x~3xu(nQD*)WcNpewgv8IP!eOrkrW^?p3>U zeZ8Zm4QKOcw>DMy8^q~QrWH~z&y5)uU@_c%ts7&Xn~6*wWgmoa2n29ocPDU&7Xr5admei|YKIRHz2+MVJpt^f>Tmv86PYuJ9V~ExIxhK6YnXE} zWTYNNe_urn@bqN4amhL)$FWxjKf)gD_sx)U5q|ogL4fLXXINXM+VA zxXj+g(PuW<5Ew;-o&57M$>70WLTG*-re%of({E;W@qDfU@k zJHUoe4hWN(OTFpDksNPy6mmzg-?x-0XAVSBW3@hX=+B4T1!1$X0d6IM&Jx=!{mhB(2mB0gvht?BJ!(eQZoVQPAD zVNOqhs$KlIRgx8i$(#P=SIvAs)MF1J*Xu629f`fIo4UTIOU!X)jc3<=Dojvt z&8LL5iYPp6tTes@%-Q*z;!`npGlEM-WO$X_gFA;LMT#a(dz-7@irvl(Ir({~moAuR z1xg&lxa2^>pEvG(xCQP0^4)7MyP@6|4L{8&U*=!?0k_eadNo?}v6b+`q*DKhT1^P7 zz*#WSc(JsHIoJ{U6TI3r!g+J+euaFa1}%MJAF2&+NKM+C6WeEkT6-=Q1j`Cc(`F?Z zNDp54L5cs`yT~tAym6zi{#KzMDpf{_P6l>bu1Oq_{!tKGdU3|{v`!V2B{-YuyDA>G zwT%PbwDi-%8mdAf0t$jk@%ztdXG{cHshT9Gf(h|-6PZbZ))7@iNHXaIH;yM&;t zK(#iaRoK(=!RY)0rzsY=1#Msi3iCT%9VNRaO5B61f@w$ahob?Sq*JA1rxveiF?Xq2 z83%u&=h%*`--7qMjQZYv=z&Y(#gO-oz)|0N-6ovZ@|KFQAde1#FM+%nKS@6!Ezz5p zb9SLSqbj~o(sdxyN9XuARgJ?vq z0(;nsn!_PgxzTEQ_}qtsq?)I3q6EU}z<75F)u==B>`K|3K|}LT_s=5zK2D5ny>xj4 qNgx%7qtyd|zQQe}|5vok7mU&Zztn~(1?{T04{*oeTq=*AyYdf(HQ_k` literal 0 HcmV?d00001 diff --git a/images/langFlagGrey.png b/images/langFlagGrey.png new file mode 100644 index 0000000000000000000000000000000000000000..4e0cca944ba809b0531c2c795bd2778b9f59cb1a GIT binary patch literal 15321 zcmeI3Yitx%6vwB4Qd&@6p~%B-me4?Cb{_lcj@u=rTWFE3wUl&GqRh_R-HzSeS$3w~ zZDSBM1jHDLHc^3oF%qI6uK3P!u(xzRueOKOcdA<;4%e|C9Fy*TRo+vAUHSMU_r5 z{)(tA+on^L>xR18_-Pw5K^L5=HHGSH=7i> z%G_f2vA$RhXjSUE;$V4KL$lP?Cb?wuLQjc1DZl^`po^wtBplU*WR*D;SAgG*Va9Aq zP0`z`%+*Fhli$~9s!`*>WVbkIiQ_nv(`Di8l~&%qz{Inhonc)J$I>h(aICTp=u!9ttq!?p33(E{6^7-(xNMuN* zrq_1BJISnU$b?#RXACe+KvUb}5~%F}QGL!(Hz7;8II;G4IK@Yn7!U>#DAC}}b3@)j ztX0)jtyLXn-8uKLtJjraescya!SD<#14(5Vnc+#xQl*gIAvdf)p(YMQU5z)ZYS@#m zvc~M)n`&xORb`sjqC{miq0M(Qs3gDN`Dnl^>c9i*(FH4!=D23wD%dIoEB6>IOqMMO zlAejg@WI-bMO_?8lmTX5p%ZqSz z9LqasUbX>Rl!KMDQxqLemn@1_t}?aAf$~A2y{go16cP-bZhTplVE9~l2tm8UDpuMZ zG-nU;5F~KXq7_(a$>DOzHmA%<)<8Bb7Tn8@eAa`=SZ}I zD6ag|p;EJk52C3-Jt4+HbqH3-NIEkeb)XCl?`Dj%I;{K$8=;9E|85&b)>Z$DZOB)# z)G9_pK=v@%0?rPMZ0FMZIk2;`-8#4v-LfPE)p$hIJxW9j0VWm=xtaW6KBqf>2Gyux zHSSYo;IX=yp@s`o#*dQ#PYGDDVyZhiH#2Aqo$oigJ=~s}@8nr{!ABT)Wu%2}RJsx` zEp(&OymCcU(LH=78!}v=GJZjY6pZEYVGnp5cDvQ?X3$|&(WoRr*zZ-~Ij4T@Fu~9=Yx0&E(8eP#NsN+ zzrqQk@V(6hd_j|T?k|HccbcTSCLcw0&84VyuTa#V{qXY|MYXdOb$vBO3GYx;nfm5) zrx#OHQK;Tq-JJa9#@G9v|EhZ8nOhe>pFOX>q}DrX!u?vD5m?$B%#f{0kv}N5}Fn zZ98IPwrZWP5kwFdOU-ef!br?uG01 zz5c%~KQEpCaRqh7_N-WS^{?V`b0F~hHm$6$huimE(fZjZ+gF{~x~;Fo!S1>><(J-y zXm974?{~h|cKKLu>EwpM?z@}sJ+Qx}?{dW~^TLm-dRmrT zI``0{JG#64n>L<5ysL(zq0^~cti zZSQ{jc=espciPzLVaav%lTA+?erfKkJ-us3|C%hHbYyJLx#rqa6V;su|9F4>fz5N) wg1?muaL_p^)F&xAKO-L;jT-BU!(xfWd1dGOUQjF)fgYa6_~7p;EzAL=s7qyPW_ literal 0 HcmV?d00001 diff --git a/images/local-node-full.png b/images/local-node-full.png new file mode 100644 index 0000000000000000000000000000000000000000..3a894f41f30355953d4897ec0aa1d68d8245daef GIT binary patch literal 1075 zcmV-31kC%1P)P001!v1^@s6FBSqg00001b5ch_0Itp) z=>Px&?MXyIR9FesSWQn9K@hDTMqOh>E@%)m)>;|bb1GRHCu)lV?N$>5s;jKJ_O;661wq27gM;{V!{-ZGL@GFyas*3 z1jq-c922YM%?U6hPH+ZfA_zJFu^4)nNlrLU9j2nW36A95&|9>f5)n7h2To0=-2Xr3 zw|5ZjT!9Yvpsi(aJc2IxTqAInp!}NmN*BR(5-QpWkK7&tJ(f-I{p~SlKAo|*X9tRRSG0T z&44Zq=q|fkF*Y(-{t8G_g1CTOLOii&J%y* zAlgmK^F9X-iy0dAfXr|kK2^mpLhS21kwsU8F=+mBm7tT&k~5bWSMSIPbyq|Qw1^{8 z!c-BL6LzxxL+r{IF;N&Ik*(uHAD0$V+e8rabuY9dvo(|4Rmnoid{}NeFA5T?a$hQF{du#2=8J_Acl{Ns^Ssb#gS7*?7}ISm&f^H{Ycv3K9Twq)og_ovPA9H0?~!&_L|K(kEpd+ZyW;$? z$ojI_)o)@7t`*D2rI%!u9M_8c#xE~%7c;Qck1+Q`i*TjhW1;JlCq6#HPBcYJneJ=&9iRlw_ zr1c+=#72FjYLR7D?ib*=d=c9a`{^})8k=H2!}2Qj$+>b>E$+Ihe62_f=E%QS965<8 zj=1Ht{7QS0OiXS_N8uCtV}?CH!Z`JZiksfqkU&ZNF=zQc#>PZTaa@z}DsS~%RXy6f tC%IORbQ- literal 0 HcmV?d00001 diff --git a/images/local-node-full@2x.png b/images/local-node-full@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d461fcaa77a076dc8f520d84065a396faddb89fd GIT binary patch literal 2142 zcmV-k2%-0hP)Px-7)eAyRCodHTTPD?MHsHy4|G?vf+h;6(MaR~5>9eZ!oh?X4PR%C7ZZ&fycrYz zfp<=R#KahG9s~(UIG7OBsL@0S93-qB5D*Qb^0~WA`8+-K&c0J!)zdT6-MgFYo2{;@ z_w#wWt9!b8W~~`OoO2do`+ex!)>=0}nuQGkiE*^UXd)bs4~q&p)}fvAZQZc>3gb~^ z672|DDAY|B2KO)`exFLZuZMfiJd)ES6ezM1rsHTYMO>&m?tLQWQmT8DmmVv1dRU4G z0Iorb6KKz+Q)RXj-nYQ59#c;u0LJxt5^a-*z!UqZAG70FPImg7^f9zGCWS-*C<6vG zPkBUh=wCzo-p|=_OdV|$`jU(g&y;m<3W=cj$7riPh+F7)<5GLT&pVyh?S_Ir6vi;N zG3iA_mdrIE+77@+Qpmh*JM8qONNjsn^LDI9{#~%|L^}eYzxVJp@c9}`>KXXGjP^w@ z|0?Z;L;&nEihbBmK~K1^n11r7e0wdeRNSJ|FB4g8hotc%f{Vdwv^UTmExR-5>tp1j zAQxJAvgf?3Q5-^=XVIb@=_fY zZ#xbneJK*#o~i9Z5P2Q-d0D4SpdAF@SF@Sgc-=woLknXV8*nefnfC9dA_WQ;*<8tn@_z@(uk$L)KwE zjQhw6GQ_gqhb+xkOnvZOc3s{B%X^^WJ;2vH-=W<=<4c6a(D-?E3hhm_p0WZSyvJD# zz>6?^0*rDW7A5u35+ET2KhO;H2O@7*9@EApFunkcttEhS8RGIDSnxey-P>mB?wong zIkN|s1Ad`Xxj23T{D;QtO;v)+)NITAb!FCk_5MZkj-AXpFb*#lZYljv@sHaZgCL_3B=y<1O#N6l_O$Djd|z^V<#URY_(1G8Ro&d>$u$g z`5S`$?UW`eW8aq|VxQb%?1mTnL^JPhZ_bYkM*>cqFmIhYX56`NMKgb*YhR2@5iwKA zuO;RS3^UT8B#-D;`r0y=o_=avj))|$x>rE5)Ztv}QLk+>mLBHjiKya&GwVaW%-QQP zon@}Z%@WZ72!c{Zr+s8BeLG7-MG zIdr@qmm*?jZy9&~q@?M)cl@eGic8NdRgICV91#{BMhLhn(1|?F5s@7sK%}RBn6Zy< zhKL3`3}_u297kR-(3yrI&d2 z3;L)V14K~$=;^Ec%N-FGsX|oYT)LPo0Gq`mbj=Wnfh4Ma^r`1}zek!O;)`{4F%l_V zNFwyZym=xa2(lYgr{c;Hxx+WmLy9We$rRJksP(L^=b@eMu$Lm@rtub|g%`Mk-u=$9 zx)%W@z3AD8x?8;aRsT;A*hxUd&b(FW%YMn*)jRn>q*fKroH&o^GNa!Fc1=LsN*xh# z9;y$(WVuS5#9_@G3BMznArg}4lRyrf4?G zaEw%rgv3ZM4E(%4B4hU&i#uk!cB6542kkDNG42e0rZ{(7AmmQ+9C-0mOGs4V1)?@0 zcGC`!;Qzz`FZP;!e6wkdjvDvVXXOcSZzqmGmRN0KT$Opi;mEkLYc}M9?ONzY$Gh~= zqd@RPrb)y|F_YKVb40R3pi%gO{Qadzo+D5Mlz>AC(${lD?#>u@<=lK}DSG7>V_P%A zrERAz-21c?5tDrF4B56GB1r9iKG;Qu#N4Sv^QBV+=n(;$B<3^Le~U6c(JqCTd>x7H zz8H83NZF|OwtCJH0l;1pP=z}#MIbv)!61^Sej>yWDJ*+3fY{l?IlU-iM-#T@hzJn& zv7->vg)s#_^%LPa!oA2P76TH~2?4Q5FM8d3TYW@U+-L0OJ;px#bVj6o)%x6+8TB1Q zFMugK_53A}vL{xYraai#Zr$Q<-02A=kmo~GL0 zqVNeZ+g*4j; z*;9H?Yy?-x>s^WJoTR`|FDoU>?5LcIna+9Y24P&Ybp zY;1hY?8Q&Y|G{TfZ9gf`euW(_;uJ^%^H(AcbE4v`9r?pfOno`Je&@S6zon}9AN>YR UE}3FOGynhq07*qoM6N<$g0CG1Y5)KL literal 0 HcmV?d00001 diff --git a/images/local-node.png b/images/local-node.png new file mode 100644 index 0000000000000000000000000000000000000000..18a3c57677797f54485f607559bac5e4b12a6975 GIT binary patch literal 848 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 YFR*5cEJBm2;Q#;t07*qoM6N<$f~h@WHUIzs literal 0 HcmV?d00001 diff --git a/images/open-wallet-from-file@2x.png b/images/open-wallet-from-file@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0edcb2aa806d4ad6251314e57b2ecf166e512390 GIT binary patch literal 1470 zcmb`H`#aMM9LMMM)!b)9VdBumUC1`ENL#Z+E(vFHsI*u|qQ;`qSeeV_7P*yjnB=xq z4VHU_=UCSDql(;Pv-k{}l5`Go&w|>+Zt9mzxiC9*6R24URnxq;vu7u_|j4 zb=?xYX<8O~qo{cCUYJ)4AZOCcZ>j+Oz8=VDa00i5fhr`%K8syv@K0PvY4oNhHVmY=jlFa8pEj zus+OjX4xFm-*sXLfb362pl8K2te@b<=8~$5lI?X<55<^Q4g{*8{6zZ0KAcx$Tf2Yj z!FXIFe77Ul24}VqV%FR%*UBuTXuDa&YOC0=p8=mC~dvrDTjX z{7{k(kTI8z4>ucbwTk^BOXe(hDbl62abvFRgFE^gRF6XqoUMd^{XVaM0;xA}r5BhR*MCx<8D4)T+A`%_;Vid#vga{VW zyYaQ;vvtuX1ulucZT*$%O+etJO`9$0^h%;Y`=Rn z-(WcNgOV$rF*g%XfnCU-nv>e-eP}FCEQP{m--DdD7>m}wrHM?zT9&l$8qc0+$-lUU zL5$p%#fh{PZ}|;g(s_$j$%RxSSMcgmpoLVPk)_lwQcGpOx4n$?D}}mDR}_fG5&n+P z6xRi{HYY0`m@<=&{*$k_lqycb;(TK0bB{c{xWPU=JFwzMCD)9he{sN)fl<3_e*0jL z%1l?S{0a}nERXZT@4&a^_h-fvxFo-cn9t)K`W~Iu#BdIIt31qh&l~@WN_;>iRLu!9 zI*w)GRfzpndzrG4ZKAr$uz0aXem zj7%_6ntI*)^l;ysMTe3hy_~k`Tz050om4W6fy{h L@kZCXhf)3k+r*+p literal 0 HcmV?d00001 diff --git a/images/remote-node.png b/images/remote-node.png new file mode 100644 index 0000000000000000000000000000000000000000..24df8264008dfd1ada5d9c8d507aec0b7fd46855 GIT binary patch literal 1460 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 literal 0 HcmV?d00001 diff --git a/images/restore-wallet.png b/images/restore-wallet.png new file mode 100644 index 0000000000000000000000000000000000000000..955d523f8fc6cdf8960e13be2b7ebfd77292cf2d GIT binary patch literal 1008 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8jKx9jP7LeL$-HD>U|!|v;uw;_ z`ZnUMpNONtx;VuJk0v>E*mo)(>`oWbFZw3fBc6XO{exr;bMr^W3FZQieQjo}sR~NI zkzy-wg6Y(KCnmq&wR?lJ&!5xTEo`~LGxShdY3#ZnOIM8=AO+x*eBe- z#;96p?KWfF75TQ!gb$E6F&YryX!~o6^#u7>~(Qw7KwYRCh1p5O^(UYwOMMf zc<*c0C;RM4YxcTtzIbSg%-<*MNxf0l$L@Cib$rWz+VYahX^W4aH#Hruc6-^(>lqf` z;q%b8hV{GXiMH<_H1#~JkLf+W$FuzVYpxTuV&=Be@51+A6}XwZt$618>>W?@uhcc) zx*qsjDr@uOH*YK_JvDpEQOs(+^XuRHd%e=$hWWdgRG& zefZ7z{w;1zt8b^n_t+%HWz@KSoMWf^sz^PYvuN$FS@L32e|z5BJL&S{+BrL}FBO}n zE;Ic(tM<Z4iXZH^sS ze4yktkBHr8nTNBdP5H6xsPfI+Or1`{ufKcmZe^RZd9%uEvF`nuyb;GP;mRi9ywk|N b_(1$8Gri1{!U=}JEX?5P>gTe~DWM4fi`UzN literal 0 HcmV?d00001 diff --git a/images/restore-wallet@2x.png b/images/restore-wallet@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d72dc8fe908fc25286cdb591f0451a621146570d GIT binary patch literal 1932 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

`JgY<8JlxF4zNIMOz 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�~`aox}DwxZuE=lK19&V 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௽#3%D6zXkz)k)tzxx7i%o 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�$kJ*Rj_ONh;sTuTd)#t((2$YU7n3_>J$S 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
  • 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

    6%FU}r<8e} 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 !qp$Zz+x z-craz0|KW~QbB$iq;=IEQ3JP92f-OUI>b})U`_<&w(nBwU?#$$IS9IYAqkxB$teU5 zGAvji571vQxlErb8K_m`T-6cG$t3OyJxrG;%&vJaw4F5aW3y`)g;2I;bx^2fBWsn;J2mTABK!5RBcc`1 zvnZpT#^H~V)RLjj#e2;NE3c4Yn0S6s_K~Fi_N`IxQ*6%wrsp2B`>!XwRODZFqO6!Y zS3d$e-+>=k%Cl6*Yp9i284OZuX=r5Gjcq1s@bTm&UEkrq^ezbU*BKXU!?1f^5`p0u z*1kpc{GUpGQ-hv@Ek~`vsWRiGrpCa$7obCIvVk%`jqb>b2>^hyV4*cl_4OtF^x?IJ zpK0~mxqQc0Y&AIX`W9e~u zQ<$Cr8<2hAyh-tX*zCiO5j(ru(Tgo-<}8jB>xMbbVsC?*=oAja549DJ{SGbIDrYD5 z6x21<&gx^WY;(WTB4ZbvwQ84oO0Awt*xAt>e>Ql&Sb%(h;Zrv|>w0gRus)9cx^Rs9L%bY^PxWFHqc0Qv1oqbA#wJ#;IUJ22?_b+JBFC11DScd)A`8+Xg zG)we~Ub1W=kgx}=?}~eVzZ)RuZGmQp+{JRA;#2W)(#hMN&;6wxQYu=5e{?`8(qMPw zdUpCf4_JDI&tJO2>twM0e0+3mDF|vru@J1-N(%`{QQkY;gcC$ zvEqQSjH|uPn;P|%6rDH2xt@tC_LJXmHUyF1#CjGI!Xuvff&qE>i3fH!$K*9;`TQ?9 zC}c9oVv0^|N)^2G$u4sC<-kxwg(Z$3B*Web(bhs2@W|X8TRF`*eScV!kmLf@U&66< z=d+mlx37uX3-)m>@~8k%GVk0Zw)hA*PuJTU`qX+ZrpUHhP94=eu4Q5QH>B1Qb<>=u z)#&jaN1Pw##2c>Ivbi%C@PZAVTtF9I(Petai-WvZ?#64>Tph|@+iL>0eiCGJJ5ZK6 zYZ{-_fS*sPr<{iMj~Bcd~VOOtB8mUq^ zJr=a1K5tzKL+#GqC~jug{weFjjo85#VfzvTaugfbdxBJJjYr6#h<4{(6fFF=Af4^b z*w6c__1diruv0%gZR28W!YQbOV?9111x=!+=Xpd#{_Fa+3(fzbKt9ZvET6C%b+K5jBNu~!F_y*x) zGajMe!^q4Lb8Qa29jzUCld^3gDdOGJk**fT=^aqg;(-Ps;edP2*mu^{sr#kZ&L^w8 zE>x;B2%~`7lkiPBg&7y(bgZ%hR+DT##|TnkE()c@VeCl{QA>(CGm#s)*xVO)TM5nU zUb{BcIZ3u*KU&kdRI-1j?8}Kxfb#@uN{^%?H(%yEkuwhLv2v+6tA)l?ic1R0p54du zl%TNKF3Fh4okVRMJnr|u#p|v^34_!2-z)zZ;dk=+Irr`GQ`U0Qmif$&Rr|?vvq8Fn zlbn_FAzSlxV2%v_XbbgT(UX*sgriGQM}fD85PQ z@Ju^aAHq%r$}V>wA~Q8LsZ0LB{`{-ycC4q=4De0#;-ysrd zOm^smFOp92lb3GNd+=}(uuv~!B7y0T^HOFJcKtit!cugb^36SqZ;UJS|JW3MwdruR zj9p4*?EmmhkC4)F{Az?N9%y5PZ&ktXz0i{C{_s|992@ glfeJqByj({{*Nh?Xpf%xKToD0qbgnT(d_I00#z{_GXMYp literal 0 HcmV?d00001 diff --git a/js/TxUtils.js b/js/TxUtils.js index c78436d7..e53424c6 100644 --- a/js/TxUtils.js +++ b/js/TxUtils.js @@ -12,6 +12,7 @@ function destinationsToAddress(destinations){ } function addressTruncate(address, range){ + if(typeof(address) === "undefined") return; if(typeof(range) === "undefined") range = 8; return address.substring(0, range) + "..." + address.substring(address.length-range); } diff --git a/js/Utils.js b/js/Utils.js index 8bf7660c..4f522a35 100644 --- a/js/Utils.js +++ b/js/Utils.js @@ -87,3 +87,23 @@ function ago(epoch) { } } } + +function netTypeToString(){ + // 0: mainnet, 1: testnet, 2: stagenet + var nettype = appWindow.persistentSettings.nettype; + return nettype == 1 ? qsTr("Testnet") : nettype == 2 ? qsTr("Stagenet") : qsTr("Mainnet"); +} + +function randomChoice(arr){ + return arr[Math.floor(Math.random() * arr.length)]; +} + +function filterNodes(nodes, port) { + if(typeof data === 'number') + port = port.toString(); + return nodes.filter(function(_){return _.indexOf(port) !== -1}); +} + +function epoch(){ + return Math.floor((new Date).getTime()/1000); +} diff --git a/js/Wizard.js b/js/Wizard.js new file mode 100644 index 00000000..ccef1ba6 --- /dev/null +++ b/js/Wizard.js @@ -0,0 +1,179 @@ +.pragma library + +function updateFromQrCode(address, payment_id, amount, tx_description, recipient_name, extra_parameters) { + // Switch to recover from keys + recoverFromSeedMode = false + spendkey.text = "" + viewKeyLine.text = "" + restoreHeightItem.text = "" + + if(typeof extra_parameters.secret_view_key != "undefined") { + viewKeyLine.text = extra_parameters.secret_view_key + } + if(typeof extra_parameters.secret_spend_key != "undefined") { + spendkey.text = extra_parameters.secret_spend_key + } + if(typeof extra_parameters.restore_height != "undefined") { + restoreHeightItem.text = extra_parameters.restore_height + } + addressLine.text = address + + cameraUi.qrcode_decoded.disconnect(updateFromQrCode) + + // Check if keys are correct + checkNextButton(); +} + +function restart(){ + wizard.currentPage = 0; + wizard.settings = ({}) + wizard.currentPath = "create_wallet" + wizard.pages = paths[currentPath] + wizardRestarted(); + + //hide all pages except first + for (var i = 1; i < wizard.pages.length; i++){ + wizard.pages[i].opacity = 0; + } + //Show first pages + wizard.pages[0].opacity = 1; + +} + +function switchPage(next) { + // Android focus workaround + releaseFocus(); + + // save settings for current page; + if (next && typeof pages[currentPage].onPageClosed !== 'undefined') { + if (pages[currentPage].onPageClosed(settings) !== true) { + print ("Can't go to the next page"); + return; + }; + + } + console.log("switchpage: currentPage: ", currentPage); + + // Update prev/next button positions for mobile/desktop + prevButton.anchors.verticalCenter = (!isMobile) ? wizard.verticalCenter : undefined + prevButton.anchors.bottom = (isMobile) ? wizard.bottom : undefined + nextButton.anchors.verticalCenter = (!isMobile) ? wizard.verticalCenter : undefined + nextButton.anchors.bottom = (isMobile) ? wizard.bottom : undefined + + if (currentPage > 0 || currentPage < pages.length - 1) { + pages[currentPage].opacity = 0 + var step_value = next ? 1 : -1 + currentPage += step_value + pages[currentPage].opacity = 1; + + var nextButtonVisible = currentPage > 1 && currentPage < pages.length - 1 + nextButton.visible = nextButtonVisible + + if (typeof pages[currentPage].onPageOpened !== 'undefined') { + pages[currentPage].onPageOpened(settings,next) + } + } +} + +function openRecoveryWalletPage() { + wizardRestarted(); + print ("show recovery wallet page"); + currentPath = "recovery_wallet" + pages = paths[currentPath] + // Create temporary wallet + createWalletPage.createWallet(settings) + wizard.nextButton.visible = true + // goto next page + switchPage(true); +} + +function openCreateViewOnlyWalletPage(){ + pages[currentPage].opacity = 0 + currentPath = "create_view_only_wallet" + pages = paths[currentPath] + currentPage = pages.indexOf(createViewOnlyWalletPage) + createViewOnlyWalletPage.opacity = 1 + nextButton.visible = true + rootItem.state = "wizard"; +} + +function openCreateWalletFromDevicePage() { + wizardRestarted(); + print ("show create wallet from device page"); + currentPath = "create_wallet_from_device" + pages = paths[currentPath] + wizard.nextButton.visible = true + // goto next page + switchPage(true); +} + +function createWalletPath(isIOS, folder_path,account_name){ + // Remove trailing slash - (default on windows and mac) + if (folder_path.substring(folder_path.length -1) === "/"){ + folder_path = folder_path.substring(0,folder_path.length -1) + } + + // Store releative path on ios. + if(isIOS) + folder_path = ""; + + return folder_path + "/" + account_name + "/" + account_name +} + +function walletPathExists(directory, filename, isIOS, walletManager) { + if(!filename || filename === "") return false; + if(!directory || directory === "") return false; + + // make sure directory endswith path seperator + // @TODO: use .endswith() after Qt 5.8 + var trailing_path_sep = directory[directory.length-1]; + if(trailing_path_sep !== "/" && trailing_path_sep !== "\\") + directory += "/" + + if(isIOS) + var path = moneroAccountsDir + filename; + else + var path = directory + filename + "/" + filename; + + if (walletManager.walletExists(path)) + return true; + return false; +} + +function isAscii(str){ + for (var i = 0; i < str.length; i++) { + if (str.charCodeAt(i) > 127) + return false; + } + return true; +} + +function tr(text) { + return qsTr(text) + translationManager.emptyString +} + +function lineBreaksToSpaces(text) { + return text.trim().replace(/(\r\n|\n|\r)/gm, " "); +} + +function usefulName(path) { + // arbitrary "short enough" limit + if (path.length < 32) + return path + return path.replace(/.*[\/\\]/, '').replace(/\.keys$/, '') +} + +function checkSeed(seed) { + console.log("Checking seed") + var wordsArray = lineBreaksToSpaces(seed).split(" "); + return wordsArray.length === 25 || wordsArray.length === 24 +} + +function restoreWalletCheckViewSpendAddress(walletmanager, nettype, viewkey, spendkey, addressline){ + var addressOK = (viewkey.length > 0 || spendkey.length > 0) ? walletmanager.addressValid(addressline, nettype) : false + var viewKeyOK = (viewkey.length > 0) ? walletmanager.keyValid(viewkey, addressline, true, nettype) : true + // Spendkey is optional + var spendKeyOK = (spendkey.length > 0) ? walletmanager.keyValid(spendkey, addressline, false, nettype) : true + + return addressOK && viewKeyOK && spendKeyOK +} diff --git a/main.qml b/main.qml index 3c6b21cf..85cf38ef 100644 --- a/main.qml +++ b/main.qml @@ -37,8 +37,8 @@ import moneroComponents.Wallet 1.0 import moneroComponents.PendingTransaction 1.0 import moneroComponents.NetworkType 1.0 - import "components" +import "components" as MoneroComponents import "wizard" import "js/Utils.js" as Utils import "js/Windows.js" as Windows @@ -73,6 +73,7 @@ ApplicationWindow { property int blocksToSync: 1 property var isMobile: (appWindow.width > 700 && !isAndroid) ? false : true property bool isMining: false + property int walletMode: persistentSettings.walletMode property var cameraUi property bool remoteNodeConnected: false property bool androidCloseTapped: false; @@ -81,7 +82,21 @@ ApplicationWindow { readonly property string localDaemonAddress : "localhost:" + getDefaultDaemonRpcPort(persistentSettings.nettype) property string currentDaemonAddress; property bool startLocalNodeCancelled: false - property int estimatedBlockchainSize: 50 // GB + property int disconnectedEpoch: 0 + property int estimatedBlockchainSize: 75 // GB + property alias viewState: rootItem.state + + property string remoteNodeService: { + // support user-defined remote node aggregators + if(persistentSettings.remoteNodeService){ + var service = persistentSettings.remoteNodeService; + if(service.charAt(service.length-1) !== "/") + service += "/"; + return service; + } + + return "https://autonode.xmr.pm/"; // monero-gui workgroup + } // true if wallet ever synchronized property bool walletInitialized : false @@ -186,10 +201,12 @@ ApplicationWindow { restoreHeight = 0; persistentSettings.is_recovering = false walletPassword = "" + fileDialog.folder = "file://" + moneroAccountsDir fileDialog.open(); } function initialize() { + appWindow.viewState = "normal"; console.log("initializing..") // Use stored log level @@ -213,19 +230,17 @@ ApplicationWindow { closeWallet(); currentWallet = undefined } else if (!walletInitialized) { - // set page to transfer if not changing daemon middlePanel.state = "Transfer"; leftPanel.selectItem(middlePanel.state) - } - // Local daemon settings walletManager.setDaemonAddress(localDaemonAddress) - // enable user inactivity timer + // enable timers userInActivityTimer.running = true; + simpleModeConnectionTimer.running = true; // wallet already opened with wizard, we just need to initialize it if (typeof wizard.m_wallet !== 'undefined') { @@ -389,8 +404,8 @@ ApplicationWindow { // Update fee multiplier dropdown on transfer page middlePanel.transferView.updatePriorityDropdown(); - // If wallet isnt connected and no daemon is running - Ask - if(!isMobile && walletManager.isDaemonLocal(appWindow.persistentSettings.daemon_address) && !walletInitialized && status === Wallet.ConnectionStatus_Disconnected && !daemonManager.running(persistentSettings.nettype)){ + // If wallet isnt connected, advanced wallet mode and no daemon is running - Ask + if(!isMobile && appWindow.walletMode >= 2 && walletManager.isDaemonLocal(appWindow.persistentSettings.daemon_address) && !walletInitialized && status === Wallet.ConnectionStatus_Disconnected && !daemonManager.running(persistentSettings.nettype)){ daemonManagerDialog.open(); } // initialize transaction history once wallet is initialized first time; @@ -401,7 +416,7 @@ ApplicationWindow { // check if daemon was already mining and add mining logo if true middlePanel.miningView.update(); } - } + } function onWalletOpened(wallet) { walletName = usefulName(wallet.path) @@ -414,6 +429,7 @@ ApplicationWindow { passwordDialog.onRejectedCallback = function() { walletPassword = ""; //appWindow.enableUI(false) + wizard.wizardState = "wizardHome"; rootItem.state = "wizard"; } // opening with password but password doesn't match @@ -426,6 +442,9 @@ ApplicationWindow { // wallet opened successfully, subscribing for wallet updates connectWallet(wallet) + + // Force switch normal view + rootItem.state = "normal"; } @@ -527,6 +546,9 @@ ApplicationWindow { // Pause refresh while starting daemon currentWallet.pauseRefresh(); + // Pause simplemode connection timer + simpleModeConnectionTimer.stop(); + appWindow.showProcessingSplash(qsTr("Waiting for daemon to start...")) daemonManager.start(flags, persistentSettings.nettype, persistentSettings.blockchainDataDir, persistentSettings.bootstrapNodeAddress); persistentSettings.daemonFlags = flags @@ -544,6 +566,8 @@ ApplicationWindow { currentWallet.connected(true); // resume refresh currentWallet.startRefresh(); + // resume simplemode connection timer + simpleModeConnectionTimer.start(); } function onDaemonStopped(){ console.log("daemon stopped"); @@ -938,11 +962,13 @@ ApplicationWindow { closeWallet(); currentWallet = undefined; wizard.restart(); + wizard.wizardState = "wizardHome"; rootItem.state = "wizard" // reset balance leftPanel.balanceText = leftPanel.unlockedBalanceText = walletManager.displayAmount(0); - // disable inactivity timer + // disable timers userInActivityTimer.running = false; + simpleModeConnectionTimer.running = false; } function hideMenu() { @@ -1004,6 +1030,7 @@ ApplicationWindow { initialize(persistentSettings); } passwordDialog.onRejectedCallback = function() { + wizard.wizardState = "wizardHome"; rootItem.state = "wizard" } passwordDialog.open(usefulName(walletPath())) @@ -1048,12 +1075,15 @@ ApplicationWindow { property bool useRemoteNode: false property string remoteNodeAddress: "" property string bootstrapNodeAddress: "" + property string remoteNodeRegion: "" property bool segregatePreForkOutputs: true property bool keyReuseMitigation2: true property int segregationHeight: 0 property int kdfRounds: 1 property bool hideBalance: false property bool lockOnUserInActivity: true + property int walletMode: 2 + property string remoteNodeService: "" property int lockOnUserInActivityInterval: 10 // minutes property bool showPid: false } @@ -1116,11 +1146,11 @@ ApplicationWindow { //Open Wallet from file FileDialog { id: fileDialog - title: "Please choose a file" - folder: "file://" +moneroAccountsDir + title: qsTr("Please choose a file") + folder: "file://" + moneroAccountsDir nameFilters: [ "Wallet files (*.keys)"] sidebarVisible: false - + visible: false onAccepted: { persistentSettings.wallet_path = walletManager.urlToLocalPath(fileDialog.fileUrl) @@ -1135,7 +1165,8 @@ ApplicationWindow { initialize(); } passwordDialog.onRejectedCallback = function() { - console.log("Canceled") + console.log("Canceled"); + wizard.wizardState = "wizardHome"; rootItem.state = "wizard"; } passwordDialog.open(usefulName(walletPath())); @@ -1150,27 +1181,31 @@ ApplicationWindow { // Choose blockchain folder FileDialog { id: blockchainFileDialog + property string directory: "" + signal changed(); + title: "Please choose a folder" selectFolder: true folder: "file://" + persistentSettings.blockchainDataDir + onRejected: console.log("data dir selection canceled") onAccepted: { var dataDir = walletManager.urlToLocalPath(blockchainFileDialog.fileUrl) var validator = daemonManager.validateDataDir(dataDir); - if(!validator.valid) { - + if(validator.valid) { + persistentSettings.blockchainDataDir = dataDir; + } else { confirmationDialog.title = qsTr("Warning") + translationManager.emptyString; confirmationDialog.text = ""; if(validator.readOnly) confirmationDialog.text += qsTr("Error: Filesystem is read only") + "\n\n" - if(validator.storageAvailable < 20) + if(validator.storageAvailable < estimatedBlockchainSize) confirmationDialog.text += qsTr("Warning: There's only %1 GB available on the device. Blockchain requires ~%2 GB of data.").arg(validator.storageAvailable).arg(estimatedBlockchainSize) + "\n\n" else confirmationDialog.text += qsTr("Note: There's %1 GB available on the device. Blockchain requires ~%2 GB of data.").arg(validator.storageAvailable).arg(estimatedBlockchainSize) + "\n\n" if(!validator.lmdbExists) confirmationDialog.text += qsTr("Note: lmdb folder not found. A new folder will be created.") + "\n\n" - confirmationDialog.icon = StandardIcon.Question confirmationDialog.cancelText = qsTr("Cancel") @@ -1180,25 +1215,15 @@ ApplicationWindow { } // Cancel - confirmationDialog.onRejectedCallback = function() { - }; - + confirmationDialog.onRejectedCallback = function() { }; confirmationDialog.open() - } else { - persistentSettings.blockchainDataDir = dataDir } + blockchainFileDialog.directory = blockchainFileDialog.fileUrl; delete validator; - - - } - onRejected: { - console.log("data dir selection canceled") } - } - PasswordDialog { id: passwordDialog visible: false @@ -1287,19 +1312,16 @@ ApplicationWindow { PropertyChanges { target: leftPanel; visible: false } PropertyChanges { target: rightPanel; visible: false } PropertyChanges { target: middlePanel; visible: false } - PropertyChanges { target: titleBar; basicButtonVisible: false } PropertyChanges { target: wizard; visible: true } - PropertyChanges { target: appWindow; width: (screenWidth < 930 || isAndroid || isIOS)? screenWidth : 930; } + PropertyChanges { target: appWindow; width: (screenWidth < 969 || isAndroid || isIOS)? screenWidth : 969 } //rightPanelExpanded ? 1269 : 1269 - 300; PropertyChanges { target: appWindow; height: maxWindowHeight; } PropertyChanges { target: resizeArea; visible: true } - PropertyChanges { target: titleBar; showMaximizeButton: true } // PropertyChanges { target: frameArea; blocked: true } - PropertyChanges { target: titleBar; visible: true } - PropertyChanges { target: titleBar; y: 0 } - PropertyChanges { target: titleBar; showMoneroLogo: false } - PropertyChanges { target: titleBar; titleBarGradientImageOpacity: 0.2 } - PropertyChanges { target: titleBar; small: true } PropertyChanges { target: mobileHeader; visible: false } + PropertyChanges { target: titleBar; basicButtonVisible: false } + PropertyChanges { target: titleBar; showMaximizeButton: true } + PropertyChanges { target: titleBar; visible: true } + PropertyChanges { target: titleBar; title: qsTr("Monero") + translationManager.emptyString } }, State { name: "normal" PropertyChanges { target: leftPanel; visible: (isMobile)? false : true } @@ -1573,17 +1595,13 @@ ApplicationWindow { // } } - WizardMain { + WizardController { id: wizard anchors.fill: parent onUseMoneroClicked: { - rootItem.state = "normal" // TODO: listen for this state change in appWindow; + rootItem.state = "normal"; appWindow.initialize(); } - onOpenWalletFromFileClicked: { - rootItem.state = "normal" // TODO: listen for this state change in appWindow; - appWindow.openWalletFromFile(); - } } property int minWidth: 326 @@ -1730,6 +1748,50 @@ ApplicationWindow { onTriggered: checkInUserActivity() } + function checkSimpleModeConnection(){ + // auto-connection mechanism for simple mode + if(persistentSettings.nettype != NetworkType.MAINNET) return; + if(appWindow.walletMode >= 2) return; + + var disconnected = leftPanel.networkStatus.connected === Wallet.ConnectionStatus_Disconnected; + var disconnectedEpoch = appWindow.disconnectedEpoch; + if(disconnectedEpoch === 0){ + appWindow.disconnectedEpoch = Utils.epoch(); + } + + // disconnected longer than 5 seconds? + if(disconnected && disconnectedEpoch > 0 && (Utils.epoch() - disconnectedEpoch) >= 5){ + // for bootstrap mode, first wait until daemon is killed + if(appWindow.walletMode === 1 && appWindow.daemonRunning) { + appWindow.stopDaemon(); + return; + } + + // fetch new node list + wizard.fetchRemoteNodes(function() { + // fetched node, connect + if(appWindow.walletMode === 0){ + appWindow.connectRemoteNode(); + } else if(appWindow.walletMode === 1){ + appWindow.startDaemon(persistentSettings.daemonFlags); + } + + // reset state + appWindow.disconnectedEpoch = 0; + return; + }, function(){ + appWindow.showStatusMessage(qsTr("Failed to fetch remote nodes from third-party server."), simpleModeConnectionTimer.interval / 1000); + }); + } + } + + Timer { + // Simple mode connection check timer + id: simpleModeConnectionTimer + interval: 2000; running: false; repeat: true + onTriggered: appWindow.checkSimpleModeConnection() + } + Rectangle { id: statusMessage z: 99 @@ -1873,6 +1935,7 @@ ApplicationWindow { } function checkInUserActivity() { + if(rootItem.state !== "normal") return; if(!persistentSettings.lockOnUserInActivity) return; // prompt password after X seconds of inactivity @@ -1903,6 +1966,14 @@ ApplicationWindow { } } + function changeWalletMode(mode){ + appWindow.walletMode = mode; + persistentSettings.walletMode = mode; + persistentSettings.useRemoteNode = mode === 0 ? true : false; + + console.log("walletMode changed: " + (mode === 0 ? "simple": mode === 1 ? "simple (bootstrap)" : "Advanced")); + } + // Daemon console DaemonConsole { id: daemonConsolePopup @@ -1922,4 +1993,8 @@ ApplicationWindow { color: "black" opacity: 0.8 } + + MoneroComponents.LanguageSidebar { + id: languageSidebar + } } diff --git a/monero-wallet-gui.pro b/monero-wallet-gui.pro index 73404c99..5a4cc37d 100644 --- a/monero-wallet-gui.pro +++ b/monero-wallet-gui.pro @@ -462,10 +462,7 @@ OTHER_FILES += \ DISTFILES += \ notes.txt \ - monero/src/wallet/CMakeLists.txt \ - components/MobileHeader.qml \ - pages/merchant/Merchant.qml \ - pages/merchant/MerchantCheckbox.qml + monero/src/wallet/CMakeLists.txt # windows application icon diff --git a/pages/Receive.qml b/pages/Receive.qml index 926a8273..f9f54cd3 100644 --- a/pages/Receive.qml +++ b/pages/Receive.qml @@ -325,6 +325,7 @@ Rectangle { } function clearFields() { + // @TODO: add fields } function onPageClosed() { diff --git a/pages/Transfer.qml b/pages/Transfer.qml index d73db6ad..9c2f1787 100644 --- a/pages/Transfer.qml +++ b/pages/Transfer.qml @@ -443,6 +443,7 @@ Rectangle { enabled: !viewOnly || pageRoot.enabled RowLayout { + visible: appWindow.walletMode >= 2 CheckBox2 { id: showAdvancedCheckbox checked: persistentSettings.transferShowAdvanced @@ -454,7 +455,7 @@ Rectangle { } GridLayout { - visible: persistentSettings.transferShowAdvanced + visible: persistentSettings.transferShowAdvanced && appWindow.walletMode >= 2 columns: (isMobile) ? 2 : 6 StandardButton { @@ -676,9 +677,11 @@ Rectangle { //TODO: enable send page when we're connected and daemon is synced function updateStatus() { + var messageNotConnected = qsTr("Wallet is not connected to daemon."); + if(appWindow.walletMode >= 2) messageNotConnected += root.startLinkText; pageRoot.enabled = true; if(typeof currentWallet === "undefined") { - root.warningContent = qsTr("Wallet is not connected to daemon.") + root.startLinkText + root.warningContent = messageNotConnected; return; } @@ -690,7 +693,7 @@ Rectangle { switch (currentWallet.connected()) { case Wallet.ConnectionStatus_Disconnected: - root.warningContent = qsTr("Wallet is not connected to daemon.") + root.startLinkText + root.warningContent = messageNotConnected; break case Wallet.ConnectionStatus_WrongVersion: root.warningContent = qsTr("Connected daemon is not compatible with GUI. \n" + @@ -698,7 +701,7 @@ Rectangle { break default: if(!appWindow.daemonSynced){ - root.warningContent = qsTr("Waiting on daemon synchronization to finish") + root.warningContent = qsTr("Waiting on daemon synchronization to finish.") } else { // everything OK, enable transfer page // Light wallet is always ready diff --git a/pages/settings/Navbar.qml b/pages/settings/Navbar.qml index bf24fb0b..6d58582c 100644 --- a/pages/settings/Navbar.qml +++ b/pages/settings/Navbar.qml @@ -182,6 +182,7 @@ Rectangle { ColumnLayout { // NODE id: navNode + visible: appWindow.walletMode >= 2 Layout.preferredWidth: navNodeText.width + grid.textMargin Layout.preferredHeight: 32 Layout.minimumWidth: 72 * scaleRatio @@ -225,6 +226,7 @@ Rectangle { } } Rectangle{ + visible: appWindow.walletMode >= 2 Layout.preferredWidth: 1 Layout.preferredHeight: 32 color: grid.borderColor @@ -232,6 +234,7 @@ Rectangle { ColumnLayout { // LOG id: navLog + visible: appWindow.walletMode >= 2 Layout.preferredWidth: navLogText.width + grid.textMargin Layout.preferredHeight: 32 Layout.minimumWidth: 72 * scaleRatio @@ -275,6 +278,7 @@ Rectangle { } } Rectangle{ + visible: appWindow.walletMode >= 2 Layout.preferredWidth: 1 Layout.preferredHeight: 32 color: grid.borderColor diff --git a/pages/settings/SettingsInfo.qml b/pages/settings/SettingsInfo.qml index 8d1a98e5..e8f1b08a 100644 --- a/pages/settings/SettingsInfo.qml +++ b/pages/settings/SettingsInfo.qml @@ -39,6 +39,15 @@ Rectangle { color: "transparent" height: 1400 * scaleRatio Layout.fillWidth: true + property string walletModeString: { + if(appWindow.walletMode === 0){ + return qsTr("Simple mode") + translationManager.emptyString; + } else if(appWindow.walletMode === 1){ + return qsTr("Simple mode") + " (bootstrap)" + translationManager.emptyString; + } else if(appWindow.walletMode === 2){ + return qsTr("Advanced mode") + translationManager.emptyString; + } + } ColumnLayout { id: infoLayout @@ -239,6 +248,36 @@ Rectangle { font.pixelSize: 14 * scaleRatio text: walletLogPath } + + Rectangle { + height: 1 + Layout.topMargin: 2 * scaleRatio + Layout.bottomMargin: 2 * scaleRatio + Layout.fillWidth: true + color: MoneroComponents.Style.dividerColor + opacity: MoneroComponents.Style.dividerOpacity + } + + Rectangle { + height: 1 + Layout.topMargin: 2 * scaleRatio + Layout.bottomMargin: 2 * scaleRatio + Layout.fillWidth: true + color: MoneroComponents.Style.dividerColor + opacity: MoneroComponents.Style.dividerOpacity + } + + MoneroComponents.TextBlock { + Layout.fillWidth: true + font.pixelSize: 14 * scaleRatio + text: qsTr("Wallet mode: ") + translationManager.emptyString + } + + MoneroComponents.TextBlock { + Layout.fillWidth: true + font.pixelSize: 14 * scaleRatio + text: walletModeString + } } // Copy info to clipboard @@ -261,6 +300,7 @@ Rectangle { data += currentWallet.walletCreationHeight; data += "\nWallet log path: " + walletLogPath; + data += "\nWallet mode: " + walletModeString; console.log("Copied to clipboard"); clipboard.setText(data); diff --git a/pages/settings/SettingsLayout.qml b/pages/settings/SettingsLayout.qml index 83f63845..91ada533 100644 --- a/pages/settings/SettingsLayout.qml +++ b/pages/settings/SettingsLayout.qml @@ -164,6 +164,17 @@ Rectangle { } } + MoneroComponents.StandardButton { + visible: !persistentSettings.customDecorations + Layout.topMargin: 10 * scaleRatio + small: true + text: "Change language" + + onClicked: { + languageSidebar.isOpened ? languageSidebar.close() : languageSidebar.open(); + } + } + MoneroComponents.TextBlock { visible: isMobile font.pixelSize: 14 diff --git a/pages/settings/SettingsWallet.qml b/pages/settings/SettingsWallet.qml index 9e6ac723..0293c931 100644 --- a/pages/settings/SettingsWallet.qml +++ b/pages/settings/SettingsWallet.qml @@ -258,6 +258,7 @@ Rectangle { } GridLayout { + visible: appWindow.walletMode >= 2 Layout.fillWidth: true Layout.preferredHeight: settingsWallet.itemHeight columnSpacing: 0 @@ -326,6 +327,7 @@ Rectangle { } Rectangle { // divider + visible: appWindow.walletMode >= 2 Layout.preferredHeight: 1 * scaleRatio Layout.fillWidth: true Layout.topMargin: 8 * scaleRatio diff --git a/qml.qrc b/qml.qrc index 0cd67ea9..98521f20 100644 --- a/qml.qrc +++ b/qml.qrc @@ -62,23 +62,13 @@ images/resize@2x.png images/resizeHovered.png images/resizeHovered@2x.png - wizard/WizardWelcome.qml - wizard/WizardMain.qml images/nextPage.png images/nextPage@2x.png - wizard/WizardOptions.qml images/createWallet.png images/createWalletFromDevice.png images/openAccount.png images/recoverWallet.png - wizard/WizardCreateWallet.qml - wizard/WizardCreateWalletFromDevice.qml images/copyToClipboard.png - wizard/WizardPassword.qml - wizard/WizardConfigure.qml - wizard/WizardDonation.qml - wizard/WizardFinish.qml - wizard/WizardPasswordInput.qml lang/languages.xml lang/flags/bd.png lang/flags/bg.png @@ -123,10 +113,6 @@ lang/flags/gb.png lang/flags/us.png lang/flags/pirate.png - wizard/WizardManageWalletUI.qml - wizard/WizardRecoveryWallet.qml - wizard/WizardMemoTextInput.qml - wizard/utils.js pages/Receive.qml pages/TxKey.qml pages/SharedRingDB.qml @@ -140,14 +126,11 @@ pages/Sign.qml components/DaemonManagerDialog.qml version.js - wizard/WizardPasswordUI.qml - wizard/WizardCreateViewOnlyWallet.qml components/DaemonConsole.qml components/QRCodeScanner.qml components/Notifier.qml components/MobileHeader.qml components/TextBlock.qml - wizard/WizardDaemonSettings.qml components/RemoteNodeEdit.qml pages/Keys.qml images/appicon.ico @@ -247,5 +230,45 @@ fonts/FontAwesome/FontAwesome.qml fonts/FontAwesome/Object.qml fonts/FontAwesome/qmldir + wizard/WizardAskPassword.qml + wizard/WizardController.qml + wizard/WizardCreateWallet1.qml + wizard/WizardCreateWallet2.qml + wizard/WizardCreateWallet3.qml + wizard/WizardCreateWallet4.qml + wizard/WizardCreateDevice1.qml + wizard/WizardDaemonSettings.qml + wizard/WizardHeader.qml + wizard/WizardHome.qml + wizard/WizardLanguage.qml + wizard/WizardNav.qml + wizard/WizardWalletInput.qml + wizard/WizardRestoreWallet1.qml + wizard/WizardRestoreWallet2.qml + wizard/WizardRestoreWallet3.qml + wizard/WizardRestoreWallet4.qml + wizard/WizardSummary.qml + wizard/WizardSummaryItem.qml + wizard/WizardModeSelection.qml + wizard/WizardModeRemoteNodeWarning.qml + wizard/WizardModeBootstrap.qml + wizard/WizardMenuItem.qml + js/Wizard.js + components/LanguageSidebar.qml + images/world-flags-globe.png + images/langFlagGrey.png + images/restore-wallet-from-hardware@2x.png + images/restore-wallet-from-hardware.png + images/open-wallet-from-file@2x.png + images/open-wallet-from-file.png + images/restore-wallet@2x.png + images/restore-wallet.png + images/create-wallet@2x.png + images/create-wallet.png + images/remote-node.png + images/local-node.png + images/local-node-full.png + wizard/WizardNavProgressDot.qml + wizard/WizardOpenWallet1.qml diff --git a/src/daemon/DaemonManager.cpp b/src/daemon/DaemonManager.cpp index 09507a4a..a70f551b 100644 --- a/src/daemon/DaemonManager.cpp +++ b/src/daemon/DaemonManager.cpp @@ -275,9 +275,9 @@ QVariantMap DaemonManager::validateDataDir(const QString &dataDir) const valid = false; } - // Make sure there is 20GB storage available + // Make sure there is 75GB storage available storageAvailable = storage.bytesAvailable()/1000/1000/1000; - if (storageAvailable < 20) { + if (storageAvailable < 75) { valid = false; } } else { diff --git a/wizard/WizardAskPassword.qml b/wizard/WizardAskPassword.qml new file mode 100644 index 00000000..fb75bcf2 --- /dev/null +++ b/wizard/WizardAskPassword.qml @@ -0,0 +1,259 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + +import "../js/Wizard.js" as Wizard +import "../components" as MoneroComponents + +ColumnLayout { + id: root + Layout.fillWidth: true + property alias password: passwordInput.text + property int passwordFill: 0 + property string passwordStrengthText: qsTr("Strength: ") + translationManager.emptyString + + function calcStrengthAndVerify(){ + calcPasswordStrength(); + return passwordInput.text === passwordInputConfirm.text; + } + + function calcPasswordStrength(inp) { + if(isAndroid) return; + if(passwordInput.text.length <= 1){ + root.passwordFill = 0; + progressText.text = passwordStrengthText + qsTr("Low") + translationManager.emptyString; + } + + // scorePassword returns value from 0 to... lots + var strength = walletManager.getPasswordStrength(passwordInput.text); + // consider anything below 10 bits as dire + strength -= 10 + if (strength < 0) + strength = 0; + // use a slight parabola to discourage short passwords + strength = strength ^ 1.2 / 3 + strength += 20; + if (strength > 100) + strength = 100; + + root.passwordFill = strength; + + var strengthString; + if(strength <= 33){ + strengthString = qsTr("Low"); + } else if(strength <= 66){ + strengthString = qsTr("Medium"); + } else { + strengthString = qsTr("High"); + } + + progressText.text = passwordStrengthText + strengthString + translationManager.emptyString; + } + + spacing: 20 * scaleRatio + + WizardHeader{ + title: qsTr("Give your wallet a password") + translationManager.emptyString + subtitle: qsTr("This password cannot be recovered. If you forget it then the wallet will have to be restored from its 25 word mnemonic seed.") + translationManager.emptyString + } + + MoneroComponents.WarningBox { + text: qsTr("Enter a strong password (Using letters, numbers, and/or symbols).") + translationManager.emptyString + } + + ColumnLayout { + spacing: 0 + visible: !isAndroid + Layout.fillWidth: true + + TextInput { + id: progressText + anchors.top: parent.top + anchors.topMargin: 6 + font.family: MoneroComponents.Style.fontMedium.name + font.pixelSize: 14 * scaleRatio + font.bold: false + color: MoneroComponents.Style.defaultFontColor + text: root.passwordStrengthText + '-' + height: 18 * scaleRatio + passwordCharacter: "*" + } + + TextInput { + id: progressTextValue + font.family: MoneroComponents.Style.fontMedium.name + font.pixelSize: 13 * scaleRatio + font.bold: true + color: MoneroComponents.Style.defaultFontColor + height:18 * scaleRatio + passwordCharacter: "*" + } + + Rectangle { + id: bar + Layout.fillWidth: true + Layout.preferredHeight: 8 + + radius: 8 * scaleRatio + color: "#333333" // progressbar bg + + Rectangle { + id: fillRect + anchors.top: parent.top + anchors.bottom: parent.bottom + anchors.left: parent.left + height: bar.height + property int maxWidth: bar.width * scaleRatio + width: (maxWidth * root.passwordFill) / 100 + radius: 8 + color: "#FA6800" + } + + Rectangle { + color:"#333" + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.leftMargin: 8 * scaleRatio + } + } + + } + + ColumnLayout { + spacing: 4 * scaleRatio + Layout.fillWidth: true + + Label { + text: qsTr("Password") + Layout.fillWidth: true + + font.pixelSize: 14 * scaleRatio + font.family: MoneroComponents.Style.fontLight.name + + color: MoneroComponents.Style.defaultFontColor + } + + TextField { + id: passwordInput + + Layout.topMargin: 6 * scaleRatio + Layout.fillWidth: true + + bottomPadding: 10 * scaleRatio + leftPadding: 10 * scaleRatio + topPadding: 10 * scaleRatio + + horizontalAlignment: TextInput.AlignLeft + verticalAlignment: TextInput.AlignVCenter + echoMode: TextInput.Password + KeyNavigation.tab: passwordInputConfirm + + font.family: MoneroComponents.Style.fontLight.name + font.pixelSize: 15 * scaleRatio + color: MoneroComponents.Style.defaultFontColor + selectionColor: MoneroComponents.Style.dimmedFontColor + selectedTextColor: MoneroComponents.Style.defaultFontColor + + text: walletOptionsPassword + + background: Rectangle { + radius: 4 + border.color: Qt.rgba(255, 255, 255, 0.35) + border.width: 1 + color: "transparent" + + Image { + width: 12 * scaleRatio + height: 16 * scaleRatio + source: "../images/lockIcon.png" + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + anchors.rightMargin: 20 + } + } + } + } + + ColumnLayout { + spacing: 4 + Layout.fillWidth: true + + Label { + text: qsTr("Password (confirm)") + translationManager.emptyString + Layout.fillWidth: true + + font.pixelSize: 14 * scaleRatio + font.family: MoneroComponents.Style.fontLight.name + + color: MoneroComponents.Style.defaultFontColor + } + + TextField { + id : passwordInputConfirm + + Layout.topMargin: 6 * scaleRatio + Layout.fillWidth: true + + bottomPadding: 10 * scaleRatio + leftPadding: 10 * scaleRatio + topPadding: 10 * scaleRatio + + horizontalAlignment: TextInput.AlignLeft + verticalAlignment: TextInput.AlignVCenter + echoMode: TextInput.Password + KeyNavigation.tab: passwordInputConfirm + + font.family: MoneroComponents.Style.fontLight.name + font.pixelSize: 15 * scaleRatio + color: MoneroComponents.Style.defaultFontColor + selectionColor: MoneroComponents.Style.dimmedFontColor + selectedTextColor: MoneroComponents.Style.defaultFontColor + + text: walletOptionsPassword + + background: Rectangle { + radius: 4 + border.color: Qt.rgba(255, 255, 255, 0.35) + border.width: 1 + color: "transparent" + + Image { + width: 12 + height: 16 + source: "../images/lockIcon.png" + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + anchors.rightMargin: 20 + } + } + } + } +} diff --git a/wizard/WizardConfigure.qml b/wizard/WizardConfigure.qml deleted file mode 100644 index c7184f95..00000000 --- a/wizard/WizardConfigure.qml +++ /dev/null @@ -1,175 +0,0 @@ -// Copyright (c) 2014-2018, The Monero Project -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, are -// permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this list of -// conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright notice, this list -// of conditions and the following disclaimer in the documentation and/or other -// materials provided with the distribution. -// -// 3. Neither the name of the copyright holder nor the names of its contributors may be -// used to endorse or promote products derived from this software without specific -// prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import QtQuick 2.2 -import "../components" - -Item { - opacity: 0 - visible: false - Behavior on opacity { - NumberAnimation { duration: 100; easing.type: Easing.InQuad } - } - - onOpacityChanged: visible = opacity !== 0 - - Row { - id: dotsRow - anchors.top: parent.top - anchors.right: parent.right - anchors.topMargin: 85 - spacing: 6 - - ListModel { - id: dotsModel - ListElement { dotColor: "#36B05B" } - ListElement { dotColor: "#36B05B" } - ListElement { dotColor: "#FFE00A" } - ListElement { dotColor: "#DBDBDB" } - } - - Repeater { - model: dotsModel - delegate: Rectangle { - width: 12; height: 12 - radius: 6 - color: dotColor - } - } - } - - Text { - id: headerText - anchors.left: parent.left - anchors.top: parent.top - anchors.topMargin: 74 - anchors.leftMargin: 16 - width: parent.width - dotsRow.width - 16 - - font.family: "Arial" - font.pixelSize: 28 - wrapMode: Text.Wrap - //renderType: Text.NativeRendering - color: "#3F3F3F" - text: qsTr("We’re almost there - let’s just configure some Monero preferences") + translationManager.emptyString - } - - Column { - anchors.left: parent.left - anchors.right: parent.right - anchors.top: headerText.bottom - anchors.topMargin: 34 - anchors.leftMargin: 16 - anchors.rightMargin: 16 - spacing: 24 - - Column { - anchors.left: parent.left - anchors.right: parent.right - spacing: 12 - - CheckBox { - text: qsTr("Kickstart the Monero blockchain?") + translationManager.emptyString - anchors.left: parent.left - anchors.right: parent.right - background: "#F0EEEE" - fontColor: "#4A4646" - fontSize: 18 - checked: true - } - - Text { - anchors.left: parent.left - anchors.right: parent.right - font.family: "Arial" - font.pixelSize: 15 - color: "#4A4646" - wrapMode: Text.Wrap - text: qsTr("It is very important to write it down as this is the only backup you will need for your wallet.") - + translationManager.emptyString - } - } - - Column { - anchors.left: parent.left - anchors.right: parent.right - spacing: 12 - - CheckBox { - text: qsTr("Enable disk conservation mode?") + translationManager.emptyString - anchors.left: parent.left - anchors.right: parent.right - background: "#F0EEEE" - fontColor: "#4A4646" - fontSize: 18 - checked: true - } - - Text { - anchors.left: parent.left - anchors.right: parent.right - font.family: "Arial" - font.pixelSize: 15 - color: "#4A4646" - wrapMode: Text.Wrap - text: qsTr("Disk conservation mode uses substantially less disk-space, but the same amount of bandwidth as " + - "a regular Monero instance. However, storing the full blockchain is beneficial to the security " + - "of the Monero network. If you are on a device with limited disk space, then this option is appropriate for you.") - + translationManager.emptyString - } - } - - Column { - anchors.left: parent.left - anchors.right: parent.right - spacing: 12 - - CheckBox { - text: qsTr("Allow background mining?") + translationManager.emptyString - anchors.left: parent.left - anchors.right: parent.right - background: "#F0EEEE" - fontColor: "#4A4646" - fontSize: 18 - checked: true - } - - Text { - anchors.left: parent.left - anchors.right: parent.right - font.family: "Arial" - font.pixelSize: 15 - color: "#4A4646" - wrapMode: Text.Wrap - text: qsTr("Mining secures the Monero network, and also pays a small reward for the work done. This option " + - "will let Monero mine when your computer is on mains power and is idle. It will stop mining when you continue working.") - + translationManager.emptyString - } - } - } -} diff --git a/wizard/WizardController.qml b/wizard/WizardController.qml new file mode 100644 index 00000000..75e30389 --- /dev/null +++ b/wizard/WizardController.qml @@ -0,0 +1,484 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 +import QtQuick.Layouts 1.2 +import QtQuick.Dialogs 1.2 + +import moneroComponents.Wallet 1.0 +import "../js/Wizard.js" as Wizard +import "../js/Windows.js" as Windows +import "../js/Utils.js" as Utils +import "../components" as MoneroComponents +import "../pages" + +Rectangle { + id: wizardController + anchors.fill: parent + + signal useMoneroClicked() + + function restart() { + wizardStateView.state = "wizardHome" + wizardController.walletOptionsName = defaultAccountName; + wizardController.walletOptionsLocation = ''; + wizardController.walletOptionsPassword = ''; + wizardController.walletOptionsSeed = ''; + wizardController.walletOptionsBackup = ''; + wizardController.walletRestoreMode = 'seed'; + wizardController.walletOptionsRestoreHeight = 0; + wizardController.walletOptionsIsRecovering = false; + wizardController.walletOptionsIsRecoveringFromDevice = false; + wizardController.walletOptionsDeviceName = ''; + wizardController.tmpWalletFilename = ''; + wizardController.walletRestoreMode = 'seed' + wizardController.walletOptionsSubaddressLookahead = ""; + wizardController.remoteNodes = {}; + wizardController.walletOptionsIsRecoveringFromDevice = false; + } + + property var m_wallet; + property alias wizardState: wizardStateView.state + property alias wizardStatePrevious: wizardStateView.previousView + property int wizardSubViewWidth: 780 * scaleRatio + property int wizardSubViewTopMargin: persistentSettings.customDecorations ? 90 * scaleRatio : 32 * scaleRatio + property bool skipModeSelection: false + + // wallet variables + property string walletOptionsName: '' + property string walletOptionsLocation: '' + property string walletOptionsPassword: '' + property string walletOptionsSeed: '' + property string walletOptionsBackup: '' + property int walletOptionsRestoreHeight: 0 + property string walletOptionsBootstrapAddress: persistentSettings.bootstrapNodeAddress + property bool walletOptionsRestoringFromDevice: false + property bool walletOptionsIsRecovering: false + property bool walletOptionsIsRecoveringFromDevice: false + property string walletOptionsSubaddressLookahead: '' + property string walletOptionsDeviceName: '' + property string tmpWalletFilename: '' + property var remoteNodes: '' + + // language settings, updated via sidebar + property string language_locale: 'en_US' + property string language_wallet: 'English' + property string language_language: 'English (US)' + + // recovery made (restore wallet) + property string walletRestoreMode: 'seed' // seed, keys, qr + + property int layoutScale: { + if(isMobile){ + return 0; + } else if(appWindow.width < 800){ + return 1; + } else { + return 2; + } + } + + Image { + opacity: 1.0 + anchors.fill: parent + source: "../images/middlePanelBg.jpg" + } + + Rectangle { + id: wizardStateView + property Item currentView + property Item previousView + property WizardLanguage wizardLanguageView: WizardLanguage { } + property WizardHome wizardHomeView: WizardHome { } + property WizardCreateWallet1 wizardCreateWallet1View: WizardCreateWallet1 { } + property WizardCreateWallet2 wizardCreateWallet2View: WizardCreateWallet2 { } + property WizardCreateWallet3 wizardCreateWallet3View: WizardCreateWallet3 { } + property WizardCreateWallet4 wizardCreateWallet4View: WizardCreateWallet4 { } + property WizardRestoreWallet1 wizardRestoreWallet1View: WizardRestoreWallet1 { } + property WizardRestoreWallet2 wizardRestoreWallet2View: WizardRestoreWallet2 { } + property WizardRestoreWallet3 wizardRestoreWallet3View: WizardRestoreWallet3 { } + property WizardRestoreWallet4 wizardRestoreWallet4View: WizardRestoreWallet4 { } + property WizardCreateDevice1 wizardCreateDevice1View: WizardCreateDevice1 { } + property WizardOpenWallet1 wizardOpenWallet1View: WizardOpenWallet1 { } + property WizardModeSelection wizardModeSelectionView: WizardModeSelection { } + property WizardModeRemoteNodeWarning wizardModeRemoteNodeWarningView: WizardModeRemoteNodeWarning { } + property WizardModeBootstrap wizardModeBootstrapView: WizardModeBootstrap {} + anchors.fill: parent + + signal previousClicked; + + color: "transparent" + state: '' + + onPreviousClicked: { + if (previousView && previousView.viewName != null){ + state = previousView.viewName; + } else { + state = "wizardHome"; + } + } + + onCurrentViewChanged: { + if (previousView) { + if (typeof previousView.onPageClosed === "function") { + previousView.onPageClosed(); + } + + // Combined with NumberAnimation to fade out views + previousView.opacity = 0; + } + + if (currentView) { + stackView.replace(currentView) + // Calls when view is opened + if (typeof currentView.onPageCompleted === "function") { + currentView.onPageCompleted(previousView); + } + + // Combined with NumberAnimation to fade in views + currentView.opacity = 1; + } + + previousView = currentView; + } + + states: [ + State { + name: "wizardLanguage" + PropertyChanges { target: wizardStateView; currentView: wizardStateView.wizardLanguageView } + }, State { + name: "wizardHome" + PropertyChanges { target: wizardStateView; currentView: wizardStateView.wizardHomeView } + }, State { + name: "wizardCreateWallet1" + PropertyChanges { target: wizardStateView; currentView: wizardStateView.wizardCreateWallet1View } + }, State { + name: "wizardCreateWallet2" + PropertyChanges { target: wizardStateView; currentView: wizardStateView.wizardCreateWallet2View } + }, State { + name: "wizardCreateWallet3" + PropertyChanges { target: wizardStateView; currentView: wizardStateView.wizardCreateWallet3View } + }, State { + name: "wizardCreateWallet4" + PropertyChanges { target: wizardStateView; currentView: wizardStateView.wizardCreateWallet4View } + }, State { + name: "wizardRestoreWallet1" + PropertyChanges { target: wizardStateView; currentView: wizardStateView.wizardRestoreWallet1View } + }, State { + name: "wizardRestoreWallet2" + PropertyChanges { target: wizardStateView; currentView: wizardStateView.wizardRestoreWallet2View } + }, State { + name: "wizardRestoreWallet3" + PropertyChanges { target: wizardStateView; currentView: wizardStateView.wizardRestoreWallet3View } + }, State { + name: "wizardRestoreWallet4" + PropertyChanges { target: wizardStateView; currentView: wizardStateView.wizardRestoreWallet4View } + }, State { + name: "wizardCreateDevice1" + PropertyChanges { target: wizardStateView; currentView: wizardStateView.wizardCreateDevice1View } + }, State { + name: "wizardOpenWallet1" + PropertyChanges { target: wizardStateView; currentView: wizardStateView.wizardOpenWallet1View } + }, State { + name: "wizardModeSelection" + PropertyChanges { target: wizardStateView; currentView: wizardStateView.wizardModeSelectionView } + }, State { + name: "wizardModeRemoteNodeWarning" + PropertyChanges { target: wizardStateView; currentView: wizardStateView.wizardModeRemoteNodeWarningView } + }, State { + name: "wizardModeBootstrap" + PropertyChanges { target: wizardStateView; currentView: wizardStateView.wizardModeBootstrapView } + } + ] + + StackView { + id: stackView + initialItem: wizardStateView.wizardLanguageView + anchors.fill: parent + clip: false + + delegate: StackViewDelegate { + pushTransition: StackViewTransition { + PropertyAnimation { + target: enterItem + property: "x" + from: target.width + to: 0 + duration: 300 + easing.type: Easing.OutCubic + } + PropertyAnimation { + target: exitItem + property: "x" + from: 0 + to: 0 - target.width + duration: 300 + easing.type: Easing.OutCubic + } + } + } + } + } + + //Open Wallet from file + FileDialog { + id: fileDialog + title: qsTr("Please choose a file") + translationManager.emptyString + folder: "file://" + moneroAccountsDir + nameFilters: [ "Wallet files (*.keys)"] + sidebarVisible: false + + onAccepted: { + wizardController.openWalletFile(fileDialog.fileUrl); + } + onRejected: { + console.log("Canceled") + appWindow.viewState = "wizard"; + } + } + + function createWallet() { + // Creates wallet in a temp. location + + // Always delete the wallet object before creating new - we could be stepping back from recovering wallet + if (typeof wizardController.m_wallet !== 'undefined') { + walletManager.closeWallet() + console.log("deleting wallet") + } + + var tmp_wallet_filename = oshelper.temporaryFilename(); + console.log("Creating temporary wallet", tmp_wallet_filename) + var nettype = appWindow.persistentSettings.nettype; + var kdfRounds = appWindow.persistentSettings.kdfRounds; + var wallet = walletManager.createWallet(tmp_wallet_filename, "", wizardController.language_wallet, nettype, kdfRounds) + + wizardController.walletOptionsSeed = wallet.seed + + // saving wallet in "global" object + // @TODO: wallet should have a property pointing to the file where it stored or loaded from + wizardController.m_wallet = wallet; + wizardController.tmpWalletFilename = tmp_wallet_filename + } + + function writeWallet() { + // Save wallet files in user specified location + var new_wallet_filename = Wizard.createWalletPath( + isIOS, + wizardController.walletOptionsLocation, + wizardController.walletOptionsName); + + if(isIOS) { + console.log("saving in ios: " + moneroAccountsDir + new_wallet_filename) + wizardController.m_wallet.store(moneroAccountsDir + new_wallet_filename); + } else { + console.log("saving in wizard: " + new_wallet_filename) + wizardController.m_wallet.store(new_wallet_filename); + } + + // make sure temporary wallet files are deleted + console.log("Removing temporary wallet: " + wizardController.tmpWalletFilename) + oshelper.removeTemporaryWallet(wizardController.tmpWalletFilename) + + // protecting wallet with password + m_wallet.setPassword(walletOptionsPassword); + + // Store password in session to be able to use password protected functions (e.g show seed) + appWindow.walletPassword = walletOptionsPassword + + // save to persistent settings + persistentSettings.language = wizardController.language_language + persistentSettings.locale = wizardController.language_locale + + persistentSettings.account_name = wizardController.walletOptionsName + persistentSettings.wallet_path = new_wallet_filename + persistentSettings.restore_height = (isNaN(walletOptionsRestoreHeight))? 0 : walletOptionsRestoreHeight + + persistentSettings.allow_background_mining = false + persistentSettings.is_recovering = (wizardController.walletOptionsIsRecovering === undefined) ? false : wizardController.walletOptionsIsRecovering + persistentSettings.is_recovering_from_device = (wizardController.walletOptionsIsRecoveringFromDevice === undefined) ? false : wizardController.walletOptionsIsRecoveringFromDevice + } + + function createWalletFromDevice() { + // TODO: create wallet in temporary filename and a) move it to the path specified by user after the final + // page submitted or b) delete it when program closed before reaching final page + + // Always delete the wallet object before creating new - we could be stepping back from recovering wallet + if (typeof wizardController.m_wallet !== 'undefined') { + walletManager.closeWallet() + console.log("deleting wallet") + } + + var tmp_wallet_filename = oshelper.temporaryFilename(); + console.log("Creating temporary wallet", tmp_wallet_filename) + var nettype = persistentSettings.nettype; + var restoreHeight = wizardController.walletOptionsRestoreHeight; + var subaddressLookahead = wizardController.walletOptionsSubaddressLookahead; + var deviceName = wizardController.walletOptionsDeviceName; + + var wallet = walletManager.createWalletFromDevice(tmp_wallet_filename, "", nettype, deviceName, restoreHeight, subaddressLookahead); + + var success = wallet.status === Wallet.Status_Ok; + if (success) { + wizardController.m_wallet = wallet; + wizardController.walletOptionsIsRecoveringFromDevice = true; + wizardController.tmpWalletFilename = tmp_wallet_filename; + wizardController.walletOptionsRestoreHeight = wizardController.m_wallet.walletCreationHeight; + } else { + console.log(wallet.errorString) + appWindow.showStatusMessage(qsTr(wallet.errorString), 5); + walletManager.closeWallet(); + } + return success; + } + + function openWallet(){ + if (typeof wizardController.m_wallet !== 'undefined' && wizardController.m_wallet != null) { + walletManager.closeWallet() + } + + fileDialog.open(); + } + + function openWalletFile(fn) { + persistentSettings.restore_height = 0; + persistentSettings.is_recovering = false; + + appWindow.restoreHeight = 0; + appWindow.walletPassword = ""; + + if(typeof fn == 'object') + persistentSettings.wallet_path = walletManager.urlToLocalPath(fn); + else + persistentSettings.wallet_path = fn; + + if(isIOS) + persistentSettings.wallet_path = persistentSettings.wallet_path.replace(moneroAccountsDir, ""); + + console.log(moneroAccountsDir); + console.log(fn); + console.log(persistentSettings.wallet_path); + + passwordDialog.onAcceptedCallback = function() { + walletPassword = passwordDialog.password; + appWindow.initialize(); + } + passwordDialog.onRejectedCallback = function() { + console.log("Canceled"); + appWindow.viewState = "wizard"; + } + + passwordDialog.open(appWindow.usefulName(appWindow.walletPath())); + } + + function fetchRemoteNodes(cb, cb_err){ + // Fetch remote nodes, parse JSON, store in result `wizardController.remoteNodes`, call setAutNode(), call callback + var url = appWindow.remoteNodeService + 'api/nodes.json'; + console.log("HTTP request: " + url); + + var xhr = new XMLHttpRequest(); + xhr.timeout = 3500; + + // Unfortunately we cannot spoof User-Agent since it is hardcoded in Qt + //xhr.setRequestHeader("User-Agent", "-"); + + xhr.onreadystatechange = function() { + var msg; + if (xhr.readyState != 4) { + return; + } else if(xhr.status != 200){ + msg = "Error fetching remote nodes; status code was not 200"; + console.log(msg); + if(typeof cb_err === 'function') + return cb_err(msg); + } else { + var body = xhr.responseText; + if(typeof body === 'undefined' || body === ''){ + msg = "Error fetching remote nodes; response body was empty"; + console.log(msg); + if(typeof cb_err === 'function') + return cb_err(msg); + } + + var data = JSON.parse(body); + wizardController.remoteNodes = data; + console.log("node list updated"); + setAutoNode(); + return cb(); + } + } + + xhr.open('GET', url, true); + xhr.send(null); + } + + function setAutoNode(){ + var node; + var nodes; + var nodeObject = wizardController.remoteNodes; + var region = persistentSettings.remoteNodeRegion; + + if(typeof region !== 'undefined' && region !== ""){ + if(nodeObject.hasOwnProperty(region) && nodeObject[region].length > 0){ + nodes = nodeObject[region]; + } else { + console.log("No suitable nodes found for region " + region + ". Defaulting to random node."); + } + } + + if(typeof nodes === 'undefined'){ + nodes = []; + Object.keys(nodeObject).forEach(function(obj, i){ + nodes = nodes.concat(nodeObject[obj]); + }); + } + + // 18089 has precedence + var filteredNodes = Utils.filterNodes(nodes, "18089"); + if(filteredNodes.length > 0){ + node = Utils.randomChoice(filteredNodes); + console.log('Choosing remote node \''+ node +'\' from a list of ' + filteredNodes.length); + } else if(nodes.length > 0){ + node = Utils.randomChoice(nodes); + console.log('Choosing remote node \''+ node +'\' from a list of ' + nodes.length); + } else { + console.log("No suitable nodes found.") + return '' + } + + if(appWindow.walletMode === 0) + persistentSettings.remoteNodeAddress = node; + else if(appWindow.walletMode === 1) + persistentSettings.bootstrapNodeAddress = node; + } + + Component.onCompleted: { + // + } +} diff --git a/wizard/WizardCreateDevice1.qml b/wizard/WizardCreateDevice1.qml new file mode 100644 index 00000000..a9b15303 --- /dev/null +++ b/wizard/WizardCreateDevice1.qml @@ -0,0 +1,187 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Dialogs 1.2 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + +import moneroComponents.Wallet 1.0 +import "../js/Wizard.js" as Wizard +import "../components" +import "../components" as MoneroComponents + +Rectangle { + id: wizardCreateDevice1 + + color: "transparent" + property string viewName: "wizardCreateDevice1" + + property var deviceName: deviceNameModel.get(deviceNameDropdown.currentIndex).column2 + + ListModel { + id: deviceNameModel + ListElement { column1: qsTr("Ledger") ; column2: "Ledger"; } +// ListElement { column1: qsTr("Trezor") ; column2: "Trezor"; } + } + + function update(){ + // update device dropdown + deviceNameDropdown.update(); + } + + ColumnLayout { + Layout.alignment: Qt.AlignHCenter; + width: parent.width - 100 + Layout.fillWidth: true + anchors.horizontalCenter: parent.horizontalCenter; + + spacing: 0 + + ColumnLayout { + Layout.fillWidth: true + Layout.topMargin: wizardController.wizardSubViewTopMargin + Layout.maximumWidth: wizardController.wizardSubViewWidth + Layout.alignment: Qt.AlignHCenter + spacing: 20 * scaleRatio + + WizardHeader { + title: qsTr("Create a new wallet") + translationManager.emptyString + subtitle: qsTr("Using a hardware device.") + translationManager.emptyString + } + + WizardWalletInput{ + id: walletInput + } + + GridLayout { + Layout.topMargin: 10 * scaleRatio + Layout.fillWidth: true + + columnSpacing: 20 * scaleRatio + columns: 2 + + MoneroComponents.LineEdit { + id: restoreHeight + Layout.fillWidth: true + + labelText: qsTr("Restore height (optional)") + translationManager.emptyString + labelFontSize: 14 * scaleRatio + placeholderFontSize: 16 * scaleRatio + placeholderText: "0" + validator: RegExpValidator { regExp: /(\d+)?$/ } + } + + MoneroComponents.LineEdit { + id: lookahead + Layout.fillWidth: true + + labelText: qsTr("Subaddress lookahead (optional)") + translationManager.emptyString + labelFontSize: 14 * scaleRatio + placeholderText: ":" + placeholderFontSize: 16 * scaleRatio + validator: RegExpValidator { regExp: /(\d+):(\d+)?$/ } + } + } + + ColumnLayout { + spacing: 0 + + Layout.topMargin: 10 * scaleRatio + Layout.fillWidth: true + + ColumnLayout{ + MoneroComponents.StandardDropdown { + id: deviceNameDropdown + dataModel: deviceNameModel + Layout.fillWidth: true + Layout.topMargin: 6 * scaleRatio + releasedColor: "#363636" + pressedColor: "#202020" + } + } + } + + TextArea { + id: errorMsg + text: qsTr("Error writing wallet from hardware device. Check application logs.") + translationManager.emptyString; + visible: errorMsg.text !== "" + Layout.fillWidth: true + font.family: MoneroComponents.Style.fontRegular.name + color: MoneroComponents.Style.errorColor + font.pixelSize: 16 * scaleRatio + + selectionColor: MoneroComponents.Style.dimmedFontColor + selectedTextColor: MoneroComponents.Style.defaultFontColor + + selectByMouse: true + wrapMode: Text.WordWrap + textMargin: 0 + leftPadding: 0 + topPadding: 0 + bottomPadding: 0 + readOnly: true + } + + WizardNav { + progressSteps: 4 + progress: 1 + btnNext.enabled: walletInput.verify(); + btnPrev.text: qsTr("Back to menu") + translationManager.emptyString + btnNext.text: qsTr("Create wallet") + translationManager.emptyString + onPrevClicked: { + wizardStateView.state = "wizardHome"; + } + onNextClicked: { + wizardController.walletOptionsName = walletInput.walletName.text; + wizardController.walletOptionsLocation = walletInput.walletLocation.text; + wizardController.walletOptionsDeviceName = wizardCreateDevice1.deviceName; + + if(restoreHeight.text) + wizardController.walletOptionsRestoreHeight = parseInt(restoreHeight.text); + if(lookahead.text) + wizardController.walletOptionsSubaddressLookahead = lookahead.text; + + var written = wizardController.createWalletFromDevice(); + if(written){ + wizardController.walletOptionsIsRecoveringFromDevice = true; + wizardStateView.state = "wizardCreateWallet2"; + } else { + errorMsg.text = qsTr("Error writing wallet from hardware device. Check application logs.") + translationManager.emptyString; + } + } + } + } + } + + Component.onCompleted: { + errorMsg.text = ""; + wizardCreateDevice1.update(); + console.log() + } +} diff --git a/wizard/WizardCreateWallet.qml b/wizard/WizardCreateWallet.qml deleted file mode 100644 index 8ab4d143..00000000 --- a/wizard/WizardCreateWallet.qml +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright (c) 2014-2018, The Monero Project -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, are -// permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this list of -// conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright notice, this list -// of conditions and the following disclaimer in the documentation and/or other -// materials provided with the distribution. -// -// 3. Neither the name of the copyright holder nor the names of its contributors may be -// used to endorse or promote products derived from this software without specific -// prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import QtQuick 2.2 -import moneroComponents.WalletManager 1.0 -import moneroComponents.Wallet 1.0 -import QtQuick.Layouts 1.1 -import QtQuick.Dialogs 1.2 -import 'utils.js' as Utils - -ColumnLayout { - opacity: 0 - visible: false - - Behavior on opacity { - NumberAnimation { duration: 100; easing.type: Easing.InQuad } - } - - - onOpacityChanged: visible = opacity !== 0 - - function onWizardRestarted() { - // reset account name field - uiItem.accountNameText = defaultAccountName - } - - //! function called each time we display this page - - function onPageOpened(settingsOblect) { - checkNextButton() - } - - function onPageClosed(settingsObject) { - settingsObject['account_name'] = uiItem.accountNameText - settingsObject['words'] = uiItem.wordsTexttext - settingsObject['wallet_path'] = uiItem.walletPath - console.log("path " +uiItem.walletPath); - var walletFullPath = wizard.createWalletPath(uiItem.walletPath,uiItem.accountNameText); - return wizard.walletPathValid(walletFullPath); - } - - function checkNextButton() { - var wordsArray = Utils.lineBreaksToSpaces(uiItem.wordsTextItem.memoText).split(" "); - wizard.nextButton.enabled = wordsArray.length === 25; - } - - //! function called each time we hide this page - // - - - function createWallet(settingsObject) { - // TODO: create wallet in temporary filename and a) move it to the path specified by user after the final - // page submitted or b) delete it when program closed before reaching final page - - // Always delete the wallet object before creating new - we could be stepping back from recovering wallet - if (typeof m_wallet !== 'undefined') { - walletManager.closeWallet() - console.log("deleting wallet") - } - - var tmp_wallet_filename = oshelper.temporaryFilename(); - console.log("Creating temporary wallet", tmp_wallet_filename) - var nettype = appWindow.persistentSettings.nettype; - var kdfRounds = appWindow.persistentSettings.kdfRounds; - var wallet = walletManager.createWallet(tmp_wallet_filename, "", settingsObject.wallet_language, - nettype, kdfRounds) - uiItem.wordsTextItem.memoText = wallet.seed - // saving wallet in "global" settings object - // TODO: wallet should have a property pointing to the file where it stored or loaded from - m_wallet = wallet; - settingsObject['tmp_wallet_filename'] = tmp_wallet_filename - } - - WizardManageWalletUI { - id: uiItem - titleText: qsTr("Create a new wallet") + translationManager.emptyString - wordsTextItem.clipboardButtonVisible: true - wordsTextItem.tipTextVisible: true - wordsTextItem.memoTextReadOnly: true - restoreHeightVisible:false - recoverMode: false - } - - Component.onCompleted: { - parent.wizardRestarted.connect(onWizardRestarted) - } -} diff --git a/wizard/WizardCreateWallet1.qml b/wizard/WizardCreateWallet1.qml new file mode 100644 index 00000000..5d484408 --- /dev/null +++ b/wizard/WizardCreateWallet1.qml @@ -0,0 +1,147 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Dialogs 1.2 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + +import "../js/Wizard.js" as Wizard +import "../components" as MoneroComponents + +Rectangle { + id: wizardCreateWallet1 + + color: "transparent" + property string viewName: "wizardCreateWallet1" + property alias seed: seed + + ColumnLayout { + Layout.alignment: Qt.AlignHCenter; + width: parent.width - 100 + Layout.fillWidth: true + anchors.horizontalCenter: parent.horizontalCenter; + + spacing: 0 + + ColumnLayout { + Layout.fillWidth: true + Layout.topMargin: wizardController.wizardSubViewTopMargin + Layout.maximumWidth: wizardController.wizardSubViewWidth + Layout.alignment: Qt.AlignHCenter + spacing: 20 * scaleRatio + + WizardHeader { + title: qsTr("Create a new wallet") + translationManager.emptyString + subtitle: qsTr("Creates a new wallet on this computer.") + translationManager.emptyString + } + + WizardWalletInput{ + id: walletInput + } + + ColumnLayout { + spacing: 0 + + Layout.topMargin: 10 * scaleRatio + Layout.fillWidth: true + + MoneroComponents.LineEditMulti { + id: seed + + spacing: 0 + inputPaddingLeft: 16 * scaleRatio + inputPaddingRight: 16 * scaleRatio + inputPaddingTop: 20 * scaleRatio + inputPaddingBottom: 20 * scaleRatio + inputRadius: 0 + + fontSize: 18 * scaleRatio + fontBold: true + wrapMode: Text.WordWrap + backgroundColor: "red" + addressValidation: false + labelText: qsTr("Mnemonic seed") + translationManager.emptyString + labelFontSize: 14 * scaleRatio + copyButton: false + readOnly: true + + placeholderText: qsTr("-") + translationManager.emptyString + text: wizardController.walletOptionsSeed + } + + MoneroComponents.WarningBox { + Rectangle { + anchors.left: parent.left + anchors.top: parent.top + anchors.bottom: parent.bottom + width: 1 + color: MoneroComponents.Style.inputBorderColorInActive + } + + Rectangle { + anchors.right: parent.right + anchors.left: parent.left + anchors.bottom: parent.bottom + height: 1 + color: MoneroComponents.Style.inputBorderColorInActive + } + + Rectangle { + anchors.right: parent.right + anchors.top: parent.top + anchors.bottom: parent.bottom + width: 1 + color: MoneroComponents.Style.inputBorderColorInActive + } + + radius: 0 + border.color: MoneroComponents.Style.inputBorderColorInActive + border.width: 0 + + text: qsTr("This seed is very important to write down and keep secret. It is all you need to backup and restore your wallet.") + translationManager.emptyString + } + } + + WizardNav { + progressSteps: 4 + progress: 1 + btnNext.enabled: walletInput.verify(); + btnPrev.text: qsTr("Back to menu") + translationManager.emptyString + onPrevClicked: { + wizardStateView.state = "wizardHome"; + } + onNextClicked: { + wizardController.walletOptionsName = walletInput.walletName.text; + wizardController.walletOptionsLocation = walletInput.walletLocation.text; + wizardStateView.state = "wizardCreateWallet2"; + } + } + } + } +} diff --git a/wizard/WizardCreateWallet2.qml b/wizard/WizardCreateWallet2.qml new file mode 100644 index 00000000..3e304f90 --- /dev/null +++ b/wizard/WizardCreateWallet2.qml @@ -0,0 +1,86 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + +import "../components" as MoneroComponents + +Rectangle { + id: wizardCreateWallet2 + + color: "transparent" + property string viewName: "wizardCreateWallet2" + + ColumnLayout { + Layout.alignment: Qt.AlignHCenter; + width: parent.width - 100 + Layout.fillWidth: true + anchors.horizontalCenter: parent.horizontalCenter; + + spacing: 0 + + ColumnLayout { + Layout.fillWidth: true + Layout.topMargin: wizardController.wizardSubViewTopMargin + Layout.maximumWidth: wizardController.wizardSubViewWidth + Layout.alignment: Qt.AlignHCenter + spacing: 0 * scaleRatio + + WizardAskPassword { + id: passwordFields + } + + WizardNav { + progressSteps: 4 + progress: 2 + btnNext.enabled: passwordFields.calcStrengthAndVerify(); + onPrevClicked: { + if(wizardController.walletOptionsIsRecoveringFromDevice){ + wizardStateView.state = "wizardCreateDevice1"; + } else { + wizardStateView.state = "wizardCreateWallet1"; + } + } + onNextClicked: { + if(appWindow.walletMode === 0 || appWindow.walletMode === 1){ + wizardController.fetchRemoteNodes(function(){ + wizardStateView.state = "wizardCreateWallet4"; + }, function(){ + appWindow.showStatusMessage(qsTr("Failed to fetch remote nodes from third-party server."), 5); + wizardStateView.state = "wizardCreateWallet4"; + }); + } else { + wizardStateView.state = "wizardCreateWallet3"; + } + } + } + } + } +} diff --git a/wizard/WizardCreateWallet3.qml b/wizard/WizardCreateWallet3.qml new file mode 100644 index 00000000..0c3a8e99 --- /dev/null +++ b/wizard/WizardCreateWallet3.qml @@ -0,0 +1,78 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + +import "../components" as MoneroComponents + +Rectangle { + id: wizardCreateWallet3 + + color: "transparent" + property string viewName: "wizardCreateWallet3" + + ColumnLayout { + Layout.alignment: Qt.AlignHCenter; + width: parent.width - 100 + Layout.fillWidth: true + anchors.horizontalCenter: parent.horizontalCenter; + + spacing: 0 + + ColumnLayout { + Layout.fillWidth: true + Layout.topMargin: wizardController.wizardSubViewTopMargin + Layout.maximumWidth: wizardController.wizardSubViewWidth + Layout.alignment: Qt.AlignHCenter + spacing: 20 * scaleRatio + + WizardHeader { + title: qsTr("Daemon settings") + translationManager.emptyString + subtitle: qsTr("To be able to communicate with the Monero network your wallet needs to be connected to a Monero node. For best privacy it's recommended to run your own node.") + translationManager.emptyString + } + + WizardDaemonSettings { + id: daemonSettings + } + + WizardNav { + progressSteps: 4 + progress: 3 + onPrevClicked: { + wizardStateView.state = "wizardCreateWallet2"; + } + onNextClicked: { + daemonSettings.save(); + wizardStateView.state = "wizardCreateWallet4"; + } + } + } + } +} diff --git a/wizard/WizardCreateWallet4.qml b/wizard/WizardCreateWallet4.qml new file mode 100644 index 00000000..7c057936 --- /dev/null +++ b/wizard/WizardCreateWallet4.qml @@ -0,0 +1,85 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + +import "../js/Wizard.js" as Wizard +import "../components" as MoneroComponents + +Rectangle { + id: wizardCreateWallet4 + + color: "transparent" + property string viewName: "wizardCreateWallet4" + + ColumnLayout { + Layout.alignment: Qt.AlignHCenter; + width: parent.width - 100 + Layout.fillWidth: true + anchors.horizontalCenter: parent.horizontalCenter; + + spacing: 0 + + ColumnLayout { + Layout.fillWidth: true + Layout.topMargin: wizardController.wizardSubViewTopMargin + Layout.maximumWidth: wizardController.wizardSubViewWidth + Layout.alignment: Qt.AlignHCenter + spacing: 20 * scaleRatio + + WizardHeader { + title: qsTr("You're all set up!") + translationManager.emptyString + subtitle: qsTr("New wallet details:") + translationManager.emptyString + } + + WizardSummary {} + + WizardNav { + Layout.topMargin: 24 * scaleRatio + btnNextText: qsTr("Open wallet") + progressSteps: 4 + progress: 4 + + onPrevClicked: { + if (appWindow.walletMode <= 1){ + wizardStateView.state = "wizardCreateWallet1"; + } else { + wizardStateView.state = "wizardCreateWallet3"; + } + } + onNextClicked: { + wizardController.writeWallet(); + wizardController.useMoneroClicked(); + wizardController.walletOptionsIsRecoveringFromDevice = false; + } + } + } + } +} diff --git a/wizard/WizardCreateWalletFromDevice.qml b/wizard/WizardCreateWalletFromDevice.qml deleted file mode 100644 index 118ef125..00000000 --- a/wizard/WizardCreateWalletFromDevice.qml +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright (c) 2014-2018, The Monero Project -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, are -// permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this list of -// conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright notice, this list -// of conditions and the following disclaimer in the documentation and/or other -// materials provided with the distribution. -// -// 3. Neither the name of the copyright holder nor the names of its contributors may be -// used to endorse or promote products derived from this software without specific -// prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import QtQuick 2.2 -import moneroComponents.WalletManager 1.0 -import moneroComponents.Wallet 1.0 -import QtQuick.Layouts 1.1 -import QtQuick.Dialogs 1.2 -import 'utils.js' as Utils - -ColumnLayout { - opacity: 0 - visible: false - - Behavior on opacity { - NumberAnimation { duration: 100; easing.type: Easing.InQuad } - } - - - onOpacityChanged: visible = opacity !== 0 - - function onWizardRestarted() { - // reset account name field - uiItem.accountNameText = defaultAccountName - } - - //! function called each time we display this page - - function onPageOpened(settingsOblect) { - uiItem.checkNextButton() - uiItem.deviceNameDropdown.update() - } - - function onPageClosed(settingsObject) { - settingsObject['account_name'] = uiItem.accountNameText - settingsObject['wallet_path'] = uiItem.walletPath - var restoreHeight = parseInt(uiItem.restoreHeight); - settingsObject['restore_height'] = isNaN(restoreHeight)? 0 : restoreHeight; - settingsObject['subaddress_lookahead'] = uiItem.subaddressLookahead; - settingsObject['deviceName'] = uiItem.deviceName; - var walletFullPath = wizard.createWalletPath(uiItem.walletPath,uiItem.accountNameText); - if (!wizard.walletPathValid(walletFullPath)) { - return false; - } - return createWalletFromDevice(settingsObject) - } - - //! function called each time we hide this page - // - - - function createWalletFromDevice(settingsObject) { - // TODO: create wallet in temporary filename and a) move it to the path specified by user after the final - // page submitted or b) delete it when program closed before reaching final page - - // Always delete the wallet object before creating new - we could be stepping back from recovering wallet - if (typeof m_wallet !== 'undefined') { - walletManager.closeWallet() - console.log("deleting wallet") - } - - var tmp_wallet_filename = oshelper.temporaryFilename(); - console.log("Creating temporary wallet", tmp_wallet_filename) - var nettype = appWindow.persistentSettings.nettype; - var restoreHeight = settingsObject.restore_height; - var subaddressLookahead = settingsObject.subaddress_lookahead; - var deviceName = settingsObject.deviceName; - - var wallet = walletManager.createWalletFromDevice(tmp_wallet_filename, "", nettype, deviceName, restoreHeight, subaddressLookahead); - - var success = wallet.status === Wallet.Status_Ok; - if (success) { - m_wallet = wallet; - settingsObject['restore_height'] = m_wallet.walletCreationHeight; - settingsObject['is_recovering_from_device'] = true; - settingsObject['tmp_wallet_filename'] = tmp_wallet_filename - } else { - console.log(wallet.errorString) - walletErrorDialog.text = wallet.errorString; - walletErrorDialog.open(); - walletManager.closeWallet(); - } - return success; - } - - WizardManageWalletUI { - id: uiItem - titleText: qsTr("Create a new wallet from hardware device") + translationManager.emptyString - wordsTextItem.clipboardButtonVisible: false - wordsTextItem.tipTextVisible: false - restoreHeightVisible:true - recoverMode: false - recoverFromDevice: true - } - - Component.onCompleted: { - parent.wizardRestarted.connect(onWizardRestarted) - } -} diff --git a/wizard/WizardDaemonSettings.qml b/wizard/WizardDaemonSettings.qml index a5162e7b..68826666 100644 --- a/wizard/WizardDaemonSettings.qml +++ b/wizard/WizardDaemonSettings.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018, The Monero Project +// Copyright (c) 2014-2019, The Monero Project // // All rights reserved. // @@ -26,171 +26,142 @@ // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -import moneroComponents.WalletManager 1.0 -import QtQuick 2.2 -import QtQuick.Layouts 1.1 -import "../components" -import "utils.js" as Utils +import QtQuick 2.7 +import QtQuick.Dialogs 1.2 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 -ColumnLayout { - Layout.leftMargin: wizardLeftMargin - Layout.rightMargin: wizardRightMargin - - id: passwordPage - opacity: 0 - visible: false - property alias titleText: titleText.text - Behavior on opacity { - NumberAnimation { duration: 100; easing.type: Easing.InQuad } - } - - onOpacityChanged: visible = opacity !== 0 - - - function onPageOpened(settingsObject) { - } - function onWizardRestarted(){ - } +import "../js/Wizard.js" as Wizard +import "../components" as MoneroComponents - function onPageClosed(settingsObject) { - appWindow.persistentSettings.useRemoteNode = remoteNode.checked - appWindow.persistentSettings.remoteNodeAddress = remoteNodeEdit.getAddress(); - appWindow.persistentSettings.bootstrapNodeAddress = bootstrapNodeEdit.daemonAddrText ? bootstrapNodeEdit.getAddress() : ""; - return true +ColumnLayout { + Layout.fillWidth: true + Layout.maximumWidth: wizardController.wizardSubViewWidth + Layout.alignment: Qt.AlignHCenter + spacing: 10 * scaleRatio + + function save(){ + persistentSettings.useRemoteNode = remoteNode.checked + persistentSettings.remoteNodeAddress = remoteNodeEdit.getAddress(); + persistentSettings.bootstrapNodeAddress = bootstrapNodeEdit.daemonAddrText ? bootstrapNodeEdit.getAddress() : ""; } - RowLayout { - id: dotsRow - Layout.alignment: Qt.AlignRight - - ListModel { - id: dotsModel - ListElement { dotColor: "#36B05B" } - ListElement { dotColor: "#36B05B" } - ListElement { dotColor: "#FFE00A" } - ListElement { dotColor: "#DBDBDB" } - } - - Repeater { - model: dotsModel - delegate: Rectangle { - // Password page is last page when creating view only wallet - // TODO: make this dynamic for all pages in wizard - visible: (wizard.currentPath != "create_view_only_wallet" || index < 2) - width: 12; height: 12 - radius: 6 - color: dotColor - } + MoneroComponents.RadioButton { + id: localNode + text: qsTr("Start a node automatically in background (recommended)") + translationManager.emptyString + fontSize: 16 * scaleRatio + checked: !appWindow.persistentSettings.useRemoteNode && !isAndroid && !isIOS + visible: !isAndroid && !isIOS + onClicked: { + checked = true; + remoteNode.checked = false; } } ColumnLayout { - id: headerColumn + visible: localNode.checked + id: blockchainFolderRow + spacing: 20 * scaleRatio - Text { - Layout.fillWidth: true - id: titleText - font.family: "Arial" - font.pixelSize: 28 * scaleRatio - wrapMode: Text.Wrap - horizontalAlignment: Text.AlignHCenter - //renderType: Text.NativeRendering - color: "#3F3F3F" - text: "Daemon settings" + Layout.topMargin: 8 * scaleRatio + Layout.fillWidth: true - } - - Text { + MoneroComponents.LineEdit { + id: blockchainFolder Layout.fillWidth: true - Layout.topMargin: 30 * scaleRatio - Layout.bottomMargin: 30 * scaleRatio - font.family: "Arial" - font.pixelSize: 18 * scaleRatio - wrapMode: Text.Wrap - //renderType: Text.NativeRendering - color: "#4A4646" - textFormat: Text.RichText -// horizontalAlignment: Text.AlignHCenter - text: qsTr("To be able to communicate with the Monero network your wallet needs to be connected to a Monero node. For best privacy it's recommended to run your own node. \ -

    \ - If you don't have the option to run your own node, there's an option to connect to a remote node.") - + translationManager.emptyString - } - } - ColumnLayout { - - RowLayout { - RadioButton { - id: localNode - text: qsTr("Start a node automatically in background (recommended)") + translationManager.emptyString - checkedColor: Qt.rgba(0, 0, 0, 0.75) - borderColor: Qt.rgba(0, 0, 0, 0.45) - fontColor: "#4A4646" - fontSize: 16 * scaleRatio - checked: !appWindow.persistentSettings.useRemoteNode && !isAndroid && !isIOS - visible: !isAndroid && !isIOS - onClicked: { - checked = true; - remoteNode.checked = false; - } + readOnly: true + labelText: qsTr("Blockchain location (optional)") + translationManager.emptyString + labelFontSize: 14 * scaleRatio + placeholderText: qsTr("Default") + translationManager.emptyString + placeholderFontSize: 15 * scaleRatio + text: persistentSettings.blockchainDataDir + inlineButton.small: true + inlineButtonText: qsTr("Browse") + translationManager.emptyString + inlineButton.onClicked: { + if(persistentSettings.blockchainDataDir != ""); + blockchainFileDialog.folder = "file://" + persistentSettings.blockchainDataDir; + blockchainFileDialog.open(); + blockchainFolder.focus = true; } } - ColumnLayout { - visible: localNode.checked - id: blockchainFolderRow - Label { - Layout.fillWidth: true - Layout.topMargin: 20 * scaleRatio - fontSize: 14 * scaleRatio - fontColor: "black" - text: qsTr("Blockchain location") + translationManager.emptyString - } - LineEdit { - id: blockchainFolder - Layout.preferredWidth: 200 * scaleRatio + ColumnLayout{ + Layout.topMargin: 6 * scaleRatio + spacing: 0 + + TextArea { + text: qsTr("Bootstrap node") + translationManager.emptyString + Layout.topMargin: 10 * scaleRatio Layout.fillWidth: true - text: persistentSettings.blockchainDataDir - placeholderFontBold: true - placeholderFontFamily: "Arial" - placeholderColor: Style.legacy_placeholderFontColor - placeholderOpacity: 1.0 - placeholderText: qsTr("(optional)") + translationManager.emptyString - - borderColor: Qt.rgba(0, 0, 0, 0.15) - backgroundColor: "white" - fontColor: "black" - fontBold: false - - MouseArea { - anchors.fill: parent - onClicked: { - mouse.accepted = false - if(persistentSettings.blockchainDataDir != "") - blockchainFileDialog.folder = "file://" + persistentSettings.blockchainDataDir - blockchainFileDialog.open() - blockchainFolder.focus = true + font.family: MoneroComponents.Style.fontRegular.name + color: MoneroComponents.Style.defaultFontColor + font.pixelSize: { + if(wizardController.layoutScale === 2 ){ + return 22 * scaleRatio; + } else { + return 16 * scaleRatio; } } + selectionColor: MoneroComponents.Style.dimmedFontColor + selectedTextColor: MoneroComponents.Style.defaultFontColor + + selectByMouse: true + wrapMode: Text.WordWrap + textMargin: 0 + leftPadding: 0 + topPadding: 0 + bottomPadding: 0 + readOnly: true } - Label { + + TextArea { + text: qsTr("Additionally, you may specify a bootstrap node to use Monero immediately.") + translationManager.emptyString + Layout.topMargin: 4 * scaleRatio Layout.fillWidth: true - Layout.topMargin: 20 * scaleRatio - fontSize: 14 * scaleRatio - color: 'black' - text: qsTr("Bootstrap node (leave blank if not wanted)") + translationManager.emptyString + + font.family: MoneroComponents.Style.fontRegular.name + color: MoneroComponents.Style.dimmedFontColor + + font.pixelSize: { + if(wizardController.layoutScale === 2 ){ + return 16 * scaleRatio; + } else { + return 14 * scaleRatio; + } + } + + selectionColor: MoneroComponents.Style.dimmedFontColor + selectedTextColor: MoneroComponents.Style.defaultFontColor + + selectByMouse: true + wrapMode: Text.WordWrap + textMargin: 0 + leftPadding: 0 + topPadding: 0 + bottomPadding: 0 + readOnly: true } - RemoteNodeEdit { - Layout.minimumWidth: 300 * scaleRatio - opacity: localNode.checked + } + + ColumnLayout { + spacing: 8 + Layout.fillWidth: true + Layout.bottomMargin: 12 * scaleRatio + + MoneroComponents.RemoteNodeEdit { id: bootstrapNodeEdit + Layout.minimumWidth: 300 * scaleRatio + + //labelText: qsTr("Bootstrap node (leave blank if not wanted)") + translationManager.emptyString - placeholderFontBold: true - placeholderFontFamily: "Arial" - placeholderColor: Style.legacy_placeholderFontColor - placeholderOpacity: 1.0 + lineEditBackgroundColor: "transparent" + lineEditFontColor: MoneroComponents.Style.defaultFontColor + lineEditFontBold: false + lineEditBorderColor: Qt.rgba(255, 255, 255, 0.35) + labelFontSize: 14 * scaleRatio + placeholderFontSize: 15 * scaleRatio daemonAddrText: persistentSettings.bootstrapNodeAddress.split(":")[0].trim() daemonPortText: { @@ -203,48 +174,41 @@ ColumnLayout { } } } + } - RowLayout { - RadioButton { - id: remoteNode - text: qsTr("Connect to a remote node") + translationManager.emptyString - checkedColor: Qt.rgba(0, 0, 0, 0.75) - borderColor: Qt.rgba(0, 0, 0, 0.45) - Layout.topMargin: 20 * scaleRatio - fontColor: "#4A4646" - fontSize: 16 * scaleRatio - checked: appWindow.persistentSettings.useRemoteNode - onClicked: { - checked = true - localNode.checked = false - } - } - } - RowLayout { - RemoteNodeEdit { - Layout.minimumWidth: 300 * scaleRatio - opacity: remoteNode.checked - id: remoteNodeEdit - property var rna: persistentSettings.remoteNodeAddress - daemonAddrText: rna.search(":") != -1 ? rna.split(":")[0].trim() : "" - daemonPortText: rna.search(":") != -1 ? (rna.split(":")[1].trim() == "") ? appWindow.getDefaultDaemonRpcPort(persistentSettings.nettype) : persistentSettings.remoteNodeAddress.split(":")[1] : "" - - placeholderFontBold: true - placeholderFontFamily: "Arial" - placeholderColor: Style.legacy_placeholderFontColor - placeholderOpacity: 1.0 - - lineEditBorderColor: Qt.rgba(0, 0, 0, 0.15) - lineEditBackgroundColor: "white" - lineEditFontColor: "black" - lineEditFontBold: false + RowLayout { + MoneroComponents.RadioButton { + id: remoteNode + text: qsTr("Connect to a remote node") + translationManager.emptyString + checkedColor: Qt.rgba(0, 0, 0, 0.75) + borderColor: Qt.rgba(0, 0, 0, 0.45) + Layout.topMargin: 20 * scaleRatio + fontColor: "#4A4646" + fontSize: 16 * scaleRatio + checked: appWindow.persistentSettings.useRemoteNode + onClicked: { + checked = true + localNode.checked = false } } } - - Component.onCompleted: { - parent.wizardRestarted.connect(onWizardRestarted) + RowLayout { + MoneroComponents.RemoteNodeEdit { + Layout.minimumWidth: 300 * scaleRatio + opacity: remoteNode.checked + id: remoteNodeEdit + property var rna: persistentSettings.remoteNodeAddress + daemonAddrText: rna.search(":") != -1 ? rna.split(":")[0].trim() : "" + daemonPortText: rna.search(":") != -1 ? (rna.split(":")[1].trim() == "") ? appWindow.getDefaultDaemonRpcPort(persistentSettings.nettype) : persistentSettings.remoteNodeAddress.split(":")[1] : "" + + lineEditBackgroundColor: "transparent" + lineEditFontColor: MoneroComponents.Style.defaultFontColor + lineEditFontBold: false + lineEditBorderColor: Qt.rgba(255, 255, 255, 0.35) + labelFontSize: 14 * scaleRatio + placeholderFontSize: 15 * scaleRatio + } } } diff --git a/wizard/WizardDonation.qml b/wizard/WizardDonation.qml deleted file mode 100644 index a5ebb6cc..00000000 --- a/wizard/WizardDonation.qml +++ /dev/null @@ -1,196 +0,0 @@ -// Copyright (c) 2014-2018, The Monero Project -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, are -// permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this list of -// conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright notice, this list -// of conditions and the following disclaimer in the documentation and/or other -// materials provided with the distribution. -// -// 3. Neither the name of the copyright holder nor the names of its contributors may be -// used to endorse or promote products derived from this software without specific -// prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import QtQuick 2.2 -import "../components" - -Item { - opacity: 0 - visible: false - Behavior on opacity { - NumberAnimation { duration: 100; easing.type: Easing.InQuad } - } - - onOpacityChanged: visible = opacity !== 0 - - function onPageOpened(settingsObject) { - enableAutoDonationCheckBox.checked = settingsObject.auto_donations_enabled - autoDonationAmountText.text = settingsObject.auto_donations_amount - allowBackgroundMiningCheckBox.checked = settingsObject.allow_background_mining - - } - - function onPageClosed(settingsObject) { - settingsObject['auto_donations_enabled'] = enableAutoDonationCheckBox.checked; - settingsObject['auto_donations_amount'] = parseInt(autoDonationAmountText.text); - settingsObject['allow_background_mining'] = allowBackgroundMiningCheckBox.checked; - return true; - } - - Row { - id: dotsRow - anchors.top: parent.top - anchors.right: parent.right - anchors.topMargin: 85 - spacing: 6 - - ListModel { - id: dotsModel - ListElement { dotColor: "#36B05B" } - ListElement { dotColor: "#36B05B" } - ListElement { dotColor: "#36B05B" } - ListElement { dotColor: "#FFE00A" } - } - - Repeater { - model: dotsModel - delegate: Rectangle { - width: 12; height: 12 - radius: 6 - color: dotColor - } - } - } - - Text { - id: headerText - anchors.left: parent.left - anchors.top: parent.top - anchors.topMargin: 74 - anchors.leftMargin: 16 - width: parent.width - dotsRow.width - 16 - - font.family: "Arial" - font.pixelSize: 28 - wrapMode: Text.Wrap - //renderType: Text.NativeRendering - color: "#3F3F3F" - text: qsTr("Monero development is solely supported by donations") + translationManager.emptyString - } - - Column { - anchors.top: headerText.bottom - anchors.left: parent.left - anchors.right: parent.right - anchors.leftMargin: 16 - anchors.rightMargin: 16 - anchors.topMargin: 34 - spacing: 12 - - Row { - anchors.left: parent.left - anchors.right: parent.right - spacing: 2 - - CheckBox { - id: enableAutoDonationCheckBox - anchors.verticalCenter: parent.verticalCenter - text: qsTr("Enable auto-donations of?") + translationManager.emptyString - background: "#F0EEEE" - fontColor: "#4A4646" - fontSize: 18 - checked: true - } - - Item { - anchors.verticalCenter: parent.verticalCenter - height: 30 - width: 41 - - TextInput { - id: autoDonationAmountText - anchors.fill: parent - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - font.family: "Arial" - font.pixelSize: 18 - color: "#6B0072" - text: "50" - validator: IntValidator { bottom: 0; top: 100 } - } - - Rectangle { - anchors.left: parent.left - anchors.right: parent.right - anchors.bottom: parent.bottom - height: 1 - color: "#DBDBDB" - } - } - - Text { - anchors.verticalCenter: parent.verticalCenter - font.family: "Arial" - font.pixelSize: 18 - color: "#4A4646" - text: qsTr("% of my fee added to each transaction") + translationManager.emptyString - } - } - - Text { - anchors.left: parent.left - anchors.right: parent.right - font.family: "Arial" - font.pixelSize: 15 - color: "#4A4646" - wrapMode: Text.Wrap - text: qsTr("For every transaction, a small transaction fee is charged. This option lets you add an additional amount, " + - "as a percentage of that fee, to your transaction to support Monero development. For instance, a 50% " + - "autodonation take a transaction fee of 0.005 XMR and add a 0.0025 XMR to support Monero development.") - + translationManager.emptyString - } - Column { - anchors.left: parent.left - anchors.right: parent.right - spacing: 12 - - CheckBox { - id: allowBackgroundMiningCheckBox - text: qsTr("Allow background mining?") + translationManager.emptyString - anchors.left: parent.left - anchors.right: parent.right - background: "#F0EEEE" - fontColor: "#4A4646" - fontSize: 18 - checked: true - } - - Text { - anchors.left: parent.left - anchors.right: parent.right - font.family: "Arial" - font.pixelSize: 15 - color: "#4A4646" - wrapMode: Text.Wrap - text: qsTr("Mining secures the Monero network, and also pays a small reward for the work done. This option " + - "will let Monero mine when your computer is on mains power and is idle. It will stop mining when you continue working.") - + translationManager.emptyString - } - } - } -} diff --git a/wizard/WizardFinish.qml b/wizard/WizardFinish.qml deleted file mode 100644 index 6f0443a9..00000000 --- a/wizard/WizardFinish.qml +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright (c) 2014-2018, The Monero Project -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, are -// permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this list of -// conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright notice, this list -// of conditions and the following disclaimer in the documentation and/or other -// materials provided with the distribution. -// -// 3. Neither the name of the copyright holder nor the names of its contributors may be -// used to endorse or promote products derived from this software without specific -// prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import QtQuick 2.2 -import QtQuick.Layouts 1.1 -import moneroComponents.NetworkType 1.0 - - -ColumnLayout { - Layout.leftMargin: wizardLeftMargin - Layout.rightMargin: wizardRightMargin - opacity: 0 - visible: false - Behavior on opacity { - NumberAnimation { duration: 100; easing.type: Easing.InQuad } - } - - onOpacityChanged: visible = opacity !== 0 - - function buildSettingsString() { - var trStart = '', - trMiddle = '', - trEnd = "", - autoDonationEnabled = wizard.settings['auto_donations_enabled'] === true, - autoDonationText = autoDonationEnabled ? qsTr("Enabled") : qsTr("Disabled"), - autoDonationAmount = wizard.settings["auto_donations_amount"] + " %", - backgroundMiningEnabled = wizard.settings["allow_background_mining"] === true, - backgroundMiningText = backgroundMiningEnabled ? qsTr("Enabled") : qsTr("Disabled"), - nettype = appWindow.persistentSettings.nettype, - networkText = nettype == NetworkType.TESTNET ? qsTr("Testnet") : nettype == NetworkType.STAGENET ? qsTr("Stagenet") : qsTr("Mainnet"), - restoreHeightEnabled = wizard.settings['restore_height'] !== undefined; - - var daemonAddress = persistentSettings.daemon_address; - if(persistentSettings.useRemoteNode) - { - daemonAddress = persistentSettings.remoteNodeAddress; - } - - return "" - + trStart + qsTr("Language") + trMiddle + wizard.settings["language"] + trEnd - + trStart + qsTr("Wallet name") + trMiddle + wizard.settings["account_name"] + trEnd - // TODO: wizard.settings['wallet'].seed doesnt work anymore; yields undefined. -// + trStart + qsTr("Backup seed") + trMiddle + wizard.settings["wallet"].seed + trEnd - + trStart + qsTr("Backup seed") + trMiddle + '****' + trEnd - + trStart + qsTr("Wallet path") + trMiddle + wizard.settings["wallet_path"] + trEnd - // + trStart + qsTr("Auto donations") + trMiddle + autoDonationText + trEnd - // + (autoDonationEnabled - // ? trStart + qsTr("Donation amount") + trMiddle + autoDonationAmount + trEnd - // : "") - // + trStart + qsTr("Background mining") + trMiddle + backgroundMiningText + trEnd - + trStart + qsTr("Daemon address") + trMiddle + daemonAddress + trEnd - + trStart + qsTr("Network Type") + trMiddle + networkText + trEnd - + (restoreHeightEnabled - ? trStart + qsTr("Restore height") + trMiddle + wizard.settings['restore_height'] + trEnd - : "") - + "
    " - + translationManager.emptyString; - } - - function updateSettingsSummary() { - if (!isMobile){ - settingsText.text = qsTr("New wallet details:") + translationManager.emptyString - + "
    " - + buildSettingsString(); - } else { - settingsText.text = qsTr("Don't forget to write down your seed. You can view your seed and change your settings on settings page.") - } - - - } - - function onPageOpened(settings) { - updateSettingsSummary(); - wizard.nextButton.visible = false; - } - - - RowLayout { - id: dotsRow - Layout.alignment: Qt.AlignRight - - ListModel { - id: dotsModel - ListElement { dotColor: "#36B05B" } - ListElement { dotColor: "#36B05B" } - ListElement { dotColor: "#36B05B" } - ListElement { dotColor: "#FFE00A" } - } - - Repeater { - model: dotsModel - delegate: Rectangle { - width: 12; height: 12 - radius: 6 - color: dotColor - } - } - } - - ColumnLayout { - id: headerColumn - Layout.fillWidth: true - - Text { - Layout.fillWidth: true - font.family: "Arial" - font.pixelSize: 28 * scaleRatio - wrapMode: Text.Wrap - horizontalAlignment: Text.AlignHCenter - //renderType: Text.NativeRendering - color: "#3F3F3F" - text: qsTr("You’re all set up!") + translationManager.emptyString - } - - Text { - Layout.fillWidth: true - id: settingsText - font.family: "Arial" - font.pixelSize: 16 * scaleRatio - wrapMode: Text.Wrap - textFormat: Text.RichText - horizontalAlignment: Text.AlignHLeft - //renderType: Text.NativeRendering - color: "#4A4646" - } - } -} diff --git a/wizard/WizardHeader.qml b/wizard/WizardHeader.qml new file mode 100644 index 00000000..7c27413f --- /dev/null +++ b/wizard/WizardHeader.qml @@ -0,0 +1,96 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import "../js/Wizard.js" as Wizard +import "../components" +import "../components" as MoneroComponents + +import QtQuick 2.7 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + + +ColumnLayout { + property string title: "" + property string subtitle: "" + spacing: 4 * scaleRatio + Layout.maximumWidth: wizardController.wizardSubViewWidth + + TextArea { + text: title + Layout.fillWidth: true + font.family: MoneroComponents.Style.fontRegular.name + color: MoneroComponents.Style.defaultFontColor + font.pixelSize: { + if(wizardController.layoutScale === 2 ){ + return 34 * scaleRatio; + } else { + return 28 * scaleRatio; + } + } + + selectionColor: MoneroComponents.Style.dimmedFontColor + selectedTextColor: MoneroComponents.Style.defaultFontColor + + selectByMouse: true + wrapMode: Text.WordWrap + textMargin: 0 + leftPadding: 0 + topPadding: 0 + bottomPadding: 0 + readOnly: true + } + + TextArea { + Layout.fillWidth: true + anchors.horizontalCenter: parent.horizontalCenter + visible: parent.subtitle !== "" + + color: MoneroComponents.Style.dimmedFontColor + text: subtitle + + font.family: MoneroComponents.Style.fontRegular.name + font.pixelSize: { + if(wizardController.layoutScale === 2 ){ + return 16 * scaleRatio; + } else { + return 14 * scaleRatio; + } + } + + selectionColor: MoneroComponents.Style.dimmedFontColor + selectedTextColor: MoneroComponents.Style.defaultFontColor + + selectByMouse: true + wrapMode: Text.WordWrap + textMargin: 0 + leftPadding: 0 + topPadding: 0 + readOnly: true + } +} diff --git a/wizard/WizardHome.qml b/wizard/WizardHome.qml new file mode 100644 index 00000000..71b67ee2 --- /dev/null +++ b/wizard/WizardHome.qml @@ -0,0 +1,250 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Dialogs 1.2 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 +import moneroComponents.NetworkType 1.0 + +import "../components" as MoneroComponents + +Rectangle { + id: wizardHome + color: "transparent" + + property string viewName: "wizardHome" + + ColumnLayout { + Layout.alignment: Qt.AlignHCenter; + width: parent.width - 100 + Layout.fillWidth: true + anchors.horizontalCenter: parent.horizontalCenter; + + spacing: 10 * scaleRatio + + ColumnLayout { + Layout.fillWidth: true + Layout.topMargin: wizardController.wizardSubViewTopMargin + Layout.maximumWidth: wizardController.wizardSubViewWidth + Layout.alignment: Qt.AlignHCenter + spacing: 0 * scaleRatio + + WizardHeader { + Layout.bottomMargin: 20 * scaleRatio + title: qsTr("Welcome to Monero.") + translationManager.emptyString + subtitle: "" + } + + WizardMenuItem { + headerText: qsTr("Create a new wallet") + translationManager.emptyString + bodyText: qsTr("Choose this option if this is your first time using Monero.") + translationManager.emptyString + imageIcon: "../images/create-wallet.png" + + onMenuClicked: { + wizardController.restart(); + wizardController.createWallet(); + wizardStateView.state = "wizardCreateWallet1" + } + } + + Rectangle { + Layout.preferredHeight: 1 + Layout.topMargin: 3 * scaleRatio + Layout.bottomMargin: 3 * scaleRatio + Layout.fillWidth: true + color: MoneroComponents.Style.dividerColor + opacity: MoneroComponents.Style.dividerOpacity + } + + WizardMenuItem { + headerText: qsTr("Create a new wallet from hardware") + translationManager.emptyString + bodyText: qsTr("Connect your hardware wallet to create a new Monero wallet.") + translationManager.emptyString + imageIcon: "../images/restore-wallet-from-hardware.png" + + onMenuClicked: { + wizardController.restart(); + wizardStateView.state = "wizardCreateDevice1" + } + } + + Rectangle { + Layout.preferredHeight: 1 + Layout.topMargin: 3 * scaleRatio + Layout.bottomMargin: 3 * scaleRatio + Layout.fillWidth: true + color: MoneroComponents.Style.dividerColor + opacity: MoneroComponents.Style.dividerOpacity + } + + WizardMenuItem { + headerText: qsTr("Open a wallet from file") + translationManager.emptyString + bodyText: qsTr("Import an existing .keys wallet file from your computer.") + translationManager.emptyString + imageIcon: "../images/open-wallet-from-file.png" + + onMenuClicked: { + wizardStateView.state = "wizardOpenWallet1" + } + } + + Rectangle { + Layout.preferredHeight: 1 + Layout.topMargin: 3 * scaleRatio + Layout.bottomMargin: 3 * scaleRatio + Layout.fillWidth: true + color: MoneroComponents.Style.dividerColor + opacity: MoneroComponents.Style.dividerOpacity + } + + WizardMenuItem { + headerText: qsTr("Restore wallet from keys or mnemonic seed") + translationManager.emptyString + bodyText: qsTr("Enter your private keys or 25-word mnemonic seed to restore your wallet.") + translationManager.emptyString + imageIcon: "../images/restore-wallet.png" + + onMenuClicked: { + wizardController.restart(); + wizardController.createWallet(); + wizardStateView.state = "wizardRestoreWallet1" + } + } + + RowLayout { + Layout.fillWidth: true + Layout.topMargin: 16 * scaleRatio + spacing: 20 * scaleRatio + + MoneroComponents.StandardButton { + small: true + text: qsTr("Change wallet mode") + translationManager.emptyString + + onClicked: { + wizardController.wizardState = 'wizardModeSelection'; + } + } + + MoneroComponents.StandardButton { + visible: !persistentSettings.customDecorations + small: true + text: qsTr("Change language") + translationManager.emptyString + + onClicked: { + wizardController.skipModeSelection = true; + wizardController.wizardState = 'wizardLanguage'; + languageSidebar.open(); + } + } + } + + MoneroComponents.CheckBox2 { + id: showAdvancedCheckbox + Layout.topMargin: 30 * scaleRatio + Layout.fillWidth: true + fontSize: 15 * scaleRatio + checked: false + text: qsTr("Advanced options") + translationManager.emptyString + visible: appWindow.walletMode >= 2 + } + + ListModel { + id: networkTypeModel + // @TODO: try real enums + ListElement {column1: "Mainnet"; column2: ""; nettype: "mainnet"} + ListElement {column1: "Testnet"; column2: ""; nettype: "testnet"} + ListElement {column1: "Stagenet"; column2: ""; nettype: "stagenet"} + } + + GridLayout { + visible: showAdvancedCheckbox.checked && appWindow.walletMode >= 2 + columns: 4 + columnSpacing: 20 + + MoneroComponents.StandardDropdown { + id: networkTypeDropdown + dataModel: networkTypeModel + Layout.fillWidth: true + Layout.topMargin: 41 + shadowReleasedColor: "#FF4304" + shadowPressedColor: "#B32D00" + releasedColor: "#363636" + pressedColor: "#202020" + + onChanged: { + var item = dataModel.get(currentIndex).nettype.toLowerCase(); + if(item === "mainnet") { + persistentSettings.nettype = NetworkType.MAINNET + } else if(item === "stagenet"){ + persistentSettings.nettype = NetworkType.STAGENET + } else if(item === "testnet"){ + persistentSettings.nettype = NetworkType.TESTNET + } + } + } + + MoneroComponents.LineEdit { + id: kdfRoundsText + Layout.fillWidth: true + + labelText: qsTr("Number of KDF rounds:") + translationManager.emptyString + labelFontSize: 14 * scaleRatio + placeholderFontSize: 16 * scaleRatio + placeholderText: "0" + validator: IntValidator { bottom: 1 } + text: persistentSettings.kdfRounds ? persistentSettings.kdfRounds : "1" + onTextChanged: { + console.log('x'); + kdfRoundsText.text = persistentSettings.kdfRounds = parseInt(kdfRoundsText.text) >= 1 ? parseInt(kdfRoundsText.text) : 1; + } + } + + Item { + Layout.fillWidth: true + } + + Item { + Layout.fillWidth: true + } + } + } + } + + Behavior on opacity { + NumberAnimation { + duration: 200; + easing.type: Easing.InCubic; + } + } + + Component.onCompleted: { + networkTypeDropdown.currentIndex = persistentSettings.nettype; + networkTypeDropdown.update(); + } + + function onPageCompleted(){ + wizardController.walletOptionsIsRecoveringFromDevice = false; + } +} diff --git a/wizard/WizardLanguage.qml b/wizard/WizardLanguage.qml new file mode 100644 index 00000000..4bd55dc6 --- /dev/null +++ b/wizard/WizardLanguage.qml @@ -0,0 +1,253 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + +import "../components" +import "../components" as MoneroComponents +import "../version.js" as Version + +Rectangle { + Layout.fillWidth: true + color: "black" + + property string viewName: "wizardLanguage" + + Image { + anchors.fill: parent + source: "../images/middlePanelBg.jpg" + } + + ColumnLayout { + id: root + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + spacing: 30 * scaleRatio + + Rectangle { + // some margins for the titlebar + Layout.topMargin: wizardController.wizardSubViewTopMargin + Layout.fillWidth: true + Layout.preferredHeight: 0 + color: "transparent" + } + + TextArea { + id: textWelcome + opacity: 0 + Layout.preferredWidth: parent.width / 1.3 + anchors.horizontalCenter: parent.horizontalCenter + color: MoneroComponents.Style.defaultFontColor + text: "Welcome - Wilkommen - Bonvenon - Bienvenido - Bienvenue - Välkommen - Selamat datang - Benvenuto - 歡迎 - Welkom - Bem Vindo - добро пожаловать" + + font.family: MoneroComponents.Style.fontRegular.name + font.bold: true + font.pixelSize: 18 * scaleRatio + horizontalAlignment: TextInput.AlignHCenter + selectByMouse: false + wrapMode: Text.WordWrap + textMargin: 0 + leftPadding: 0 + topPadding: 0 + readOnly: true + + Behavior on opacity { + NumberAnimation { + duration: 350; + easing.type: Easing.InCubic; + } + } + } + + Image { + id: globe + source: "../images/world-flags-globe.png" + opacity: 0 + property bool small: appWindow.width < 700 ? true : false + property int size: { + if(small){ + return 196; + } else { + return 312; + } + } + Layout.preferredWidth: size + Layout.preferredHeight: size + anchors.horizontalCenter: parent.horizontalCenter + mipmap: true + + property bool animSlow: false + property int animSpeedSlow: 4000 + property int animSpeedNormal: 120000 + property real animFrom: 0 + property real animTo: 360 + + Rectangle { + visible: !globe.small + anchors.left: parent.left + anchors.top: parent.top + anchors.leftMargin: 117 * scaleRatio + anchors.topMargin: 71 * scaleRatio + width: 36 * scaleRatio + height: 40 * scaleRatio + color: "transparent" + + MouseArea { + anchors.fill: parent + onClicked: { + anim.stop(); + globe.animFrom = globe.rotation; + globe.animTo = globe.animFrom + 360; + anim.duration = globe.animSlow ? globe.animSpeedNormal : globe.animSpeedSlow; + globe.animSlow = !globe.animSlow; + anim.start(); + } + } + } + + Behavior on opacity { + NumberAnimation { + duration: 450; + easing.type: Easing.InCubic; + } + } + + RotationAnimation on rotation { + id: anim + loops: Animation.Infinite + from: globe.animFrom + to: globe.animTo + duration: globe.animSpeedNormal + } + } + + GridLayout { + id: buttonsGrid + opacity: 0 + columns: isMobile ? 1 : 2 + anchors.horizontalCenter: parent.horizontalCenter + Layout.topMargin: 20 * scaleRatio + Layout.fillWidth: true + columnSpacing: 20 * scaleRatio + + MoneroComponents.StandardButton { + id: idChangeLang + Layout.minimumWidth: 150 * scaleRatio + text: "Language" + + onClicked: { + languageSidebar.open(); + } + } + + MoneroComponents.StandardButton { + id: btnContinue + Layout.minimumWidth: 150 * scaleRatio + text: "Continue" + + onClicked: { + if(wizardController.skipModeSelection){ + wizardStateView.state = "wizardHome" + } else { + wizardStateView.state = "wizardModeSelection" + } + } + } + + Behavior on opacity { + NumberAnimation { + duration: 350; + easing.type: Easing.InCubic; + } + } + } + + Text { + id: versionText + opacity: 0 + anchors.horizontalCenter: parent.horizontalCenter + font.bold: true + font.pixelSize: 12 * scaleRatio + font.family: MoneroComponents.Style.fontRegular.name + color: MoneroComponents.Style.defaultFontColor + text: Version.GUI_VERSION + " (Qt " + qtRuntimeVersion + ")" + + Behavior on opacity { + NumberAnimation { + duration: 350; + easing.type: Easing.InCubic; + } + } + } + } + + Component.onCompleted: { + // opacity effects + delay(textTimer, 100, function() { + textWelcome.opacity = 1; + }); + + delay(globeTimer, 150, function() { + globe.opacity = 1; + }); + + delay(buttonTimer, 250, function() { + buttonsGrid.opacity = 1; + }); + + delay(versionTimer, 350, function() { + versionText.opacity = 1; + }); + } + + function delay(timer, interval, cb) { + timer.interval = interval; + timer.repeat = false; + timer.triggered.connect(cb); + timer.start(); + } + + Timer { + id: globeTimer + } + + Timer { + id: textTimer + } + + Timer { + id: buttonTimer + } + + Timer { + id: versionTimer + } +} diff --git a/wizard/WizardMain.qml b/wizard/WizardMain.qml deleted file mode 100644 index 9dc7f46a..00000000 --- a/wizard/WizardMain.qml +++ /dev/null @@ -1,435 +0,0 @@ -// Copyright (c) 2014-2018, The Monero Project -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, are -// permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this list of -// conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright notice, this list -// of conditions and the following disclaimer in the documentation and/or other -// materials provided with the distribution. -// -// 3. Neither the name of the copyright holder nor the names of its contributors may be -// used to endorse or promote products derived from this software without specific -// prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import QtQuick 2.2 -import Qt.labs.settings 1.0 -import QtQuick.Dialogs 1.2 -import QtQuick.Layouts 1.1 - -import "../components" - -ColumnLayout { - anchors.fill: parent - Layout.fillHeight: true - id: wizard - property alias nextButton : nextButton - property var settings : ({}) - property int currentPage: 0 - property int wizardLeftMargin: (!isMobile) ? 150 : 25 * scaleRatio - property int wizardRightMargin: (!isMobile) ? 150 : 25 * scaleRatio - property int wizardBottomMargin: (isMobile) ? 150 : 25 * scaleRatio - property int wizardTopMargin: (isMobile) ? 15 * scaleRatio : 50 - // Storing wallet in Settings object doesn't work in qt 5.8 on android - property var m_wallet; - - property var paths: { - // "create_wallet" : [welcomePage, optionsPage, createWalletPage, passwordPage, donationPage, finishPage ], - // "recovery_wallet" : [welcomePage, optionsPage, recoveryWalletPage, passwordPage, donationPage, finishPage ], - // disable donation page - "create_wallet" : [welcomePage, optionsPage, createWalletPage, passwordPage, daemonSettingsPage, finishPage ], - "recovery_wallet" : [welcomePage, optionsPage, recoveryWalletPage, passwordPage, daemonSettingsPage, finishPage ], - "create_view_only_wallet" : [ createViewOnlyWalletPage, passwordPage ], - "create_wallet_from_device" : [welcomePage, optionsPage, createWalletFromDevicePage, passwordPage, daemonSettingsPage, finishPage ], - - } - property string currentPath: "create_wallet" - property var pages: paths[currentPath] - - signal wizardRestarted(); - signal useMoneroClicked() - signal openWalletFromFileClicked() -// border.color: "#DBDBDB" -// border.width: 1 -// color: "#FFFFFF" - - function restart(){ - wizard.currentPage = 0; - wizard.settings = ({}) - wizard.currentPath = "create_wallet" - wizard.pages = paths[currentPath] - wizardRestarted(); - - //hide all pages except first - for (var i = 1; i < wizard.pages.length; i++){ - wizard.pages[i].opacity = 0; - } - //Show first pages - wizard.pages[0].opacity = 1; - - } - - function switchPage(next) { - - // Android focus workaround - releaseFocus(); - - // save settings for current page; - if (next && typeof pages[currentPage].onPageClosed !== 'undefined') { - if (pages[currentPage].onPageClosed(settings) !== true) { - print ("Can't go to the next page"); - return; - }; - - } - console.log("switchpage: currentPage: ", currentPage); - - // Update prev/next button positions for mobile/desktop - prevButton.anchors.verticalCenter = (!isMobile) ? wizard.verticalCenter : undefined - prevButton.anchors.bottom = (isMobile) ? wizard.bottom : undefined - nextButton.anchors.verticalCenter = (!isMobile) ? wizard.verticalCenter : undefined - nextButton.anchors.bottom = (isMobile) ? wizard.bottom : undefined - - if (currentPage > 0 || currentPage < pages.length - 1) { - pages[currentPage].opacity = 0 - var step_value = next ? 1 : -1 - currentPage += step_value - pages[currentPage].opacity = 1; - - var nextButtonVisible = currentPage > 1 && currentPage < pages.length - 1 - nextButton.visible = nextButtonVisible - - if (typeof pages[currentPage].onPageOpened !== 'undefined') { - pages[currentPage].onPageOpened(settings,next) - } - } - } - - - - function openCreateWalletPage() { - wizardRestarted(); - print ("show create wallet page"); - currentPath = "create_wallet" - pages = paths[currentPath] - createWalletPage.createWallet(settings) - wizard.nextButton.visible = true - // goto next page - switchPage(true); - } - - function openRecoveryWalletPage() { - wizardRestarted(); - print ("show recovery wallet page"); - currentPath = "recovery_wallet" - pages = paths[currentPath] - // Create temporary wallet - createWalletPage.createWallet(settings) - wizard.nextButton.visible = true - // goto next page - switchPage(true); - } - - function openOpenWalletPage() { - console.log("open wallet from file page"); - if (typeof m_wallet !== 'undefined' && m_wallet != null) { - walletManager.closeWallet() - } - optionsPage.onPageClosed(settings) - wizard.openWalletFromFileClicked(); - } - - function openCreateViewOnlyWalletPage(){ - pages[currentPage].opacity = 0 - currentPath = "create_view_only_wallet" - pages = paths[currentPath] - currentPage = pages.indexOf(createViewOnlyWalletPage) - createViewOnlyWalletPage.opacity = 1 - nextButton.visible = true - rootItem.state = "wizard"; - } - - function openCreateWalletFromDevicePage() { - wizardRestarted(); - print ("show create wallet from device page"); - currentPath = "create_wallet_from_device" - pages = paths[currentPath] - wizard.nextButton.visible = true - // goto next page - switchPage(true); - } - - function createWalletPath(folder_path,account_name){ - - // Remove trailing slash - (default on windows and mac) - if (folder_path.substring(folder_path.length -1) === "/"){ - folder_path = folder_path.substring(0,folder_path.length -1) - } - - // Store releative path on ios. - if(isIOS) - folder_path = ""; - - return folder_path + "/" + account_name + "/" + account_name - } - - function walletPathValid(path){ - if(isIOS) - path = moneroAccountsDir + path; - if (walletManager.walletExists(path)) { - walletErrorDialog.text = qsTr("A wallet with same name already exists. Please change wallet name") + translationManager.emptyString; - walletErrorDialog.open(); - return false; - } - - return true; - } - - function isAscii(str){ - for (var i = 0; i < str.length; i++) { - if (str.charCodeAt(i) > 127) - return false; - } - return true; - } - - //! actually writes the wallet - function applySettings() { - // Save wallet files in user specified location - var new_wallet_filename = createWalletPath(settings.wallet_path,settings.account_name) - if(isIOS) { - console.log("saving in ios: "+ moneroAccountsDir + new_wallet_filename) - m_wallet.store(moneroAccountsDir + new_wallet_filename); - } else { - console.log("saving in wizard: "+ new_wallet_filename) - m_wallet.store(new_wallet_filename); - } - - - - // make sure temporary wallet files are deleted - console.log("Removing temporary wallet: "+ settings.tmp_wallet_filename) - oshelper.removeTemporaryWallet(settings.tmp_wallet_filename) - - // protecting wallet with password - m_wallet.setPassword(settings.wallet_password); - - // Store password in session to be able to use password protected functions (e.g show seed) - appWindow.walletPassword = settings.wallet_password - - // saving wallet_filename; - settings['wallet_filename'] = new_wallet_filename; - - // persist settings - appWindow.persistentSettings.language = settings.language - appWindow.persistentSettings.locale = settings.locale - appWindow.persistentSettings.account_name = settings.account_name - appWindow.persistentSettings.wallet_path = new_wallet_filename - appWindow.persistentSettings.allow_background_mining = false //settings.allow_background_mining - appWindow.persistentSettings.auto_donations_enabled = false //settings.auto_donations_enabled - appWindow.persistentSettings.auto_donations_amount = false //settings.auto_donations_amount - appWindow.persistentSettings.restore_height = (isNaN(settings.restore_height))? 0 : settings.restore_height - appWindow.persistentSettings.is_recovering = (settings.is_recovering === undefined)? false : settings.is_recovering - appWindow.persistentSettings.is_recovering_from_device = (settings.is_recovering_from_device === undefined)? false : settings.is_recovering_from_device - } - - // reading settings from persistent storage - Component.onCompleted: { - settings['allow_background_mining'] = appWindow.persistentSettings.allow_background_mining - settings['auto_donations_enabled'] = appWindow.persistentSettings.auto_donations_enabled - settings['auto_donations_amount'] = appWindow.persistentSettings.auto_donations_amount - } - - MessageDialog { - id: walletErrorDialog - title: "Error" - onAccepted: { - } - } - - WizardWelcome { - id: welcomePage -// Layout.bottomMargin: wizardBottomMargin - Layout.topMargin: wizardTopMargin - - } - - WizardOptions { - id: optionsPage - Layout.bottomMargin: wizardBottomMargin - Layout.topMargin: wizardTopMargin - onCreateWalletClicked: wizard.openCreateWalletPage() - onRecoveryWalletClicked: wizard.openRecoveryWalletPage() - onOpenWalletClicked: wizard.openOpenWalletPage(); - onCreateWalletFromDeviceClicked: wizard.openCreateWalletFromDevicePage() - } - - WizardCreateWallet { - id: createWalletPage - Layout.bottomMargin: wizardBottomMargin - Layout.topMargin: wizardTopMargin - } - - WizardCreateViewOnlyWallet { - id: createViewOnlyWalletPage - Layout.bottomMargin: wizardBottomMargin - Layout.topMargin: wizardTopMargin - } - - WizardRecoveryWallet { - id: recoveryWalletPage - Layout.bottomMargin: wizardBottomMargin - Layout.topMargin: wizardTopMargin - } - - WizardCreateWalletFromDevice { - id: createWalletFromDevicePage - Layout.bottomMargin: wizardBottomMargin - Layout.topMargin: wizardTopMargin - } - - WizardPassword { - id: passwordPage - Layout.bottomMargin: wizardBottomMargin - Layout.topMargin: wizardTopMargin - } - - WizardDaemonSettings { - id: daemonSettingsPage - Layout.bottomMargin: wizardBottomMargin - Layout.topMargin: wizardTopMargin - } - - WizardDonation { - id: donationPage - Layout.bottomMargin: wizardBottomMargin - Layout.topMargin: wizardTopMargin - } - - WizardFinish { - id: finishPage - Layout.bottomMargin: wizardBottomMargin - Layout.topMargin: wizardTopMargin - } - - Rectangle { - id: prevButton - Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft - Layout.leftMargin: isMobile ? 20 : 50 - Layout.bottomMargin: isMobile ? 20 * scaleRatio : 50 - visible: parent.currentPage > 0 - - width: 50 * scaleRatio; height: 50 * scaleRatio - radius: 25 - color: prevArea.containsMouse ? "#FF4304" : "#FF6C3C" - - Image { - anchors.centerIn: parent - anchors.horizontalCenterOffset: -3 - source: "qrc:///images/nextPage.png" - transformOrigin: Item.Center - rotation: 180 - } - - MouseArea { - id: prevArea - anchors.fill: parent - hoverEnabled: true - onClicked: wizard.switchPage(false) - } - } - - Rectangle { - id: nextButton - Layout.alignment: Qt.AlignVCenter | Qt.AlignRight - Layout.rightMargin: isMobile ? 20 * scaleRatio : 50 - Layout.bottomMargin: isMobile ? 20 * scaleRatio : 50 - visible: currentPage > 1 && currentPage < pages.length - 1 - width: 50 * scaleRatio; height: 50 * scaleRatio - radius: 25 - color: enabled ? nextArea.containsMouse ? "#FF4304" : "#FF6C3C" : "#DBDBDB" - - - Image { - anchors.centerIn: parent - anchors.horizontalCenterOffset: 3 - source: "qrc:///images/nextPage.png" - } - - MouseArea { - id: nextArea - anchors.fill: parent - hoverEnabled: true - onClicked: wizard.switchPage(true) - } - } - - StandardButton { - id: sendButton - Layout.alignment: Qt.AlignBottom | Qt.AlignRight - Layout.margins: (isMobile) ? 20 * scaleRatio : 50 * scaleRatio - text: qsTr("USE MONERO") + translationManager.emptyString - visible: parent.paths[currentPath][currentPage] === finishPage - onClicked: { - wizard.applySettings(); - wizard.useMoneroClicked(); - } - } - - StandardButton { - id: createViewOnlyWalletButton - Layout.alignment: Qt.AlignBottom | Qt.AlignRight - Layout.margins: (isMobile) ? 20 * scaleRatio : 50 - text: qsTr("Create wallet") + translationManager.emptyString - visible: currentPath === "create_view_only_wallet" && parent.paths[currentPath][currentPage] === passwordPage - enabled: passwordPage.passwordsMatch - onClicked: { - if (currentWallet.createViewOnly(settings['view_only_wallet_path'],passwordPage.password)) { - console.log("view only wallet created in ",settings['view_only_wallet_path']); - informationPopup.title = qsTr("Success") + translationManager.emptyString; - informationPopup.text = qsTr('The view only wallet has been created. You can open it by closing this current wallet, clicking the "Open wallet from file" option, and selecting the view wallet in: \n%1') - .arg(settings['view_only_wallet_path']); - informationPopup.open() - informationPopup.onCloseCallback = null - rootItem.state = "normal" - wizard.restart(); - - } else { - informationPopup.title = qsTr("Error") + translationManager.emptyString; - informationPopup.text = currentWallet.errorString; - informationPopup.open() - } - - } - } - - StandardButton { - id: abortViewOnlyButton - Layout.alignment: Qt.AlignBottom | Qt.AlignRight - Layout.margins: (isMobile) ? 20 * scaleRatio : 50 - text: qsTr("Abort") + translationManager.emptyString - visible: currentPath === "create_view_only_wallet" && parent.paths[currentPath][currentPage] === passwordPage - onClicked: { - wizard.restart(); - rootItem.state = "normal" - } - } - - - - -} diff --git a/wizard/WizardManageWalletUI.qml b/wizard/WizardManageWalletUI.qml deleted file mode 100644 index f9a41fa4..00000000 --- a/wizard/WizardManageWalletUI.qml +++ /dev/null @@ -1,415 +0,0 @@ -// Copyright (c) 2014-2018, The Monero Project -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, are -// permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this list of -// conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright notice, this list -// of conditions and the following disclaimer in the documentation and/or other -// materials provided with the distribution. -// -// 3. Neither the name of the copyright holder nor the names of its contributors may be -// used to endorse or promote products derived from this software without specific -// prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import QtQuick 2.2 -import moneroComponents.TranslationManager 1.0 -import QtQuick.Dialogs 1.2 -import QtQuick.Layouts 1.2 -import "../components" as MoneroComponents -import 'utils.js' as Utils - -// Reusable component for mnaging wallet (account name, path, private key) -ColumnLayout { - id: page - Layout.leftMargin: wizardLeftMargin - Layout.rightMargin: wizardRightMargin - property alias titleText: titleText.text - property alias accountNameText: accountName.text - property alias walletPath: fileUrlInput.text - property alias wordsTextItem : memoTextItem - property alias restoreHeight : restoreHeightItem.text - property alias restoreHeightVisible: restoreHeightItem.visible - property alias subaddressLookahead : subaddressLookaheadItem.text - property alias walletName : accountName.text - property alias progressDotsModel : progressDots.model - property alias recoverFromKeysAddress: addressLine.text; - property alias recoverFromKeysViewKey: viewKeyLine.text; - property alias recoverFromKeysSpendKey: spendKeyLine.text; - // recover mode or create new wallet - property bool recoverMode: false - // Recover form seed or keys - property bool recoverFromSeedMode: true - // Recover form hardware device - property bool recoverFromDevice: false - property var deviceName: deviceNameModel.get(deviceNameDropdown.currentIndex).column2 - property alias deviceNameDropdown: deviceNameDropdown - property int rowSpacing: 10 - - function checkFields(){ - var addressOK = (viewKeyLine.text.length > 0 || spendKeyLine.text.length > 0)? walletManager.addressValid(addressLine.text, persistentSettings.nettype) : false - var viewKeyOK = (viewKeyLine.text.length > 0)? walletManager.keyValid(viewKeyLine.text, addressLine.text, true, persistentSettings.nettype) : true - // Spendkey is optional - var spendKeyOK = (spendKeyLine.text.length > 0)? walletManager.keyValid(spendKeyLine.text, addressLine.text, false, persistentSettings.nettype) : true - - addressLine.error = !addressOK && addressLine.text.length != 0 - viewKeyLine.error = !viewKeyOK && viewKeyLine.text.length != 0 - spendKeyLine.error = !spendKeyOK && spendKeyLine.text.length != 0 - - return addressOK && viewKeyOK && spendKeyOK - } - - function checkNextButton(){ - wizard.nextButton.enabled = false - console.log("check next", recoverFromSeed.visible) - if(recoverMode && !recoverFromSeedMode) { - console.log("checking key fields") - wizard.nextButton.enabled = checkFields(); - } else if (recoverMode && recoverFromSeedMode) { - wizard.nextButton.enabled = checkSeed() - } else - wizard.nextButton.enabled = true; - } - - function checkSeed() { - console.log("Checking seed") - var wordsArray = Utils.lineBreaksToSpaces(uiItem.wordsTextItem.memoText).split(" "); - return wordsArray.length === 25 || wordsArray.length === 24 - } - - function updateFromQrCode(address, payment_id, amount, tx_description, recipient_name, extra_parameters) { - // Switch to recover from keys - recoverFromSeedMode = false - spendKeyLine.text = "" - viewKeyLine.text = "" - restoreHeightItem.text = "" - - - if(typeof extra_parameters.secret_view_key != "undefined") { - viewKeyLine.text = extra_parameters.secret_view_key - } - if(typeof extra_parameters.secret_spend_key != "undefined") { - spendKeyLine.text = extra_parameters.secret_spend_key - } - if(typeof extra_parameters.restore_height != "undefined") { - restoreHeightItem.text = extra_parameters.restore_height - } - addressLine.text = address - - cameraUi.qrcode_decoded.disconnect(updateFromQrCode) - - // Check if keys are correct - checkNextButton(); - } - - RowLayout { - id: dotsRow - Layout.alignment: Qt.AlignRight - spacing: 6 - - ListModel { - id: dotsModel - ListElement { dotColor: "#FFE00A" } - ListElement { dotColor: "#DBDBDB" } - ListElement { dotColor: "#DBDBDB" } - ListElement { dotColor: "#DBDBDB" } - } - - Repeater { - id: progressDots - model: dotsModel - delegate: Rectangle { - width: 12; height: 12 - radius: 6 - color: dotColor - } - } - } - - RowLayout { - id: headerColumn - Layout.fillWidth: true - Text { - Layout.fillWidth: true - horizontalAlignment: Text.AlignHCenter - id: titleText - font.family: "Arial" - font.pixelSize: 28 * scaleRatio - wrapMode: Text.Wrap - color: "#3F3F3F" - } - } - - ColumnLayout { - Layout.bottomMargin: rowSpacing - - MoneroComponents.Label { - Layout.topMargin: 20 * scaleRatio - fontFamily: "Arial" - fontColor: "#555555" - fontSize: 14 * scaleRatio - text: qsTr("Wallet name") - + translationManager.emptyString - } - - MoneroComponents.LineEdit { - id: accountName - Layout.fillWidth: true - Layout.maximumWidth: 600 * scaleRatio - Layout.minimumWidth: 200 * scaleRatio - text: defaultAccountName - onTextUpdated: checkNextButton() - borderColor: Qt.rgba(0, 0, 0, 0.15) - backgroundColor: "white" - fontColor: "black" - fontBold: false - } - - MoneroComponents.WarningBox { - color: "#DBDBDB" - textColor: "#4A4646" - visible: !recoverFromDevice && !recoverMode - text: qsTr("WARNING: Copying your seed to clipboard can expose you to malicious software, which may record your seed and steal your Monero. Please write down your seed manually.") + translationManager.emptyString - } - } - - GridLayout{ - columns: (isMobile)? 2 : 4 - visible: recoverMode - - MoneroComponents.StandardButton { - id: recoverFromSeedButton - text: qsTr("Restore from seed") + translationManager.emptyString - enabled: recoverFromKeys.visible - onClicked: { - recoverFromSeedMode = true; - checkNextButton(); - } - } - - MoneroComponents.StandardButton { - id: recoverFromKeysButton - text: qsTr("Restore from keys") + translationManager.emptyString - enabled: recoverFromSeed.visible - onClicked: { - recoverFromSeedMode = false; - checkNextButton(); - } - } - - MoneroComponents.StandardButton { - id: qrfinderButton - text: qsTr("From QR Code") + translationManager.emptyString - visible : appWindow.qrScannerEnabled - enabled : visible - onClicked: { - cameraUi.state = "Capture" - cameraUi.qrcode_decoded.connect(updateFromQrCode) - } - } - - } - - // Recover from seed - RowLayout { - id: recoverFromSeed - visible: !recoverFromDevice && (!recoverMode || ( recoverMode && recoverFromSeedMode)) - WizardMemoTextInput { - id : memoTextItem - Layout.fillWidth: true - Layout.maximumWidth: 600 * scaleRatio - Layout.minimumWidth: 200 * scaleRatio - } - } - - // Recover from keys - GridLayout { - Layout.bottomMargin: page.rowSpacing - rowSpacing: page.rowSpacing - id: recoverFromKeys - visible: recoverMode && !recoverFromSeedMode - columns: 1 - MoneroComponents.LineEdit { - Layout.fillWidth: true - id: addressLine - Layout.maximumWidth: 600 * scaleRatio - Layout.minimumWidth: 200 * scaleRatio - placeholderFontBold: true - placeholderFontFamily: "Arial" - placeholderColor: MoneroComponents.Style.legacy_placeholderFontColor - placeholderText: qsTr("Account address (public)") + translationManager.emptyString - placeholderOpacity: 1.0 - onTextUpdated: checkNextButton() - borderColor: Qt.rgba(0, 0, 0, 0.15) - backgroundColor: "white" - fontColor: "black" - fontBold: false - } - MoneroComponents.LineEdit { - Layout.fillWidth: true - id: viewKeyLine - Layout.maximumWidth: 600 * scaleRatio - Layout.minimumWidth: 200 * scaleRatio - placeholderFontBold: true - placeholderFontFamily: "Arial" - placeholderColor: MoneroComponents.Style.legacy_placeholderFontColor - placeholderText: qsTr("View key (private)") + translationManager.emptyString - placeholderOpacity: 1.0 - onTextUpdated: checkNextButton() - borderColor: Qt.rgba(0, 0, 0, 0.15) - backgroundColor: "white" - fontColor: "black" - fontBold: false - - } - MoneroComponents.LineEdit { - Layout.fillWidth: true - Layout.maximumWidth: 600 * scaleRatio - Layout.minimumWidth: 200 * scaleRatio - id: spendKeyLine - placeholderFontBold: true - placeholderFontFamily: "Arial" - placeholderColor: MoneroComponents.Style.legacy_placeholderFontColor - placeholderText: qsTr("Spend key (private)") + translationManager.emptyString - placeholderOpacity: 1.0 - onTextUpdated: checkNextButton() - borderColor: Qt.rgba(0, 0, 0, 0.15) - backgroundColor: "white" - fontColor: "black" - fontBold: false - } - } - - // Restore Height - RowLayout { - MoneroComponents.LineEdit { - id: restoreHeightItem - Layout.fillWidth: true - Layout.maximumWidth: 600 * scaleRatio - Layout.minimumWidth: 200 * scaleRatio - placeholderFontBold: true - placeholderFontFamily: "Arial" - placeholderColor: MoneroComponents.Style.legacy_placeholderFontColor - placeholderText: qsTr("Restore height (optional)") + translationManager.emptyString - placeholderOpacity: 1.0 - validator: IntValidator { - bottom:0 - } - borderColor: Qt.rgba(0, 0, 0, 0.15) - backgroundColor: "white" - fontColor: "black" - fontBold: false - } - } - - // Subaddress lookahead - RowLayout { - visible: recoverFromDevice - MoneroComponents.LineEdit { - id: subaddressLookaheadItem - Layout.fillWidth: true - Layout.maximumWidth: 600 * scaleRatio - Layout.minimumWidth: 200 * scaleRatio - placeholderFontBold: true - placeholderFontFamily: "Arial" - placeholderColor: MoneroComponents.Style.legacy_placeholderFontColor - placeholderText: qsTr("Subaddress lookahead (optional): :") + translationManager.emptyString - placeholderOpacity: 1.0 - borderColor: Qt.rgba(0, 0, 0, 0.15) - backgroundColor: "white" - fontColor: "black" - fontBold: false - } - } - - // Device name - ColumnLayout { - visible: recoverFromDevice - MoneroComponents.Label { - Layout.topMargin: 20 * scaleRatio - fontFamily: "Arial" - fontColor: "#555555" - fontSize: 14 * scaleRatio - text: qsTr("Device name") + translationManager.emptyString - } - ListModel { - id: deviceNameModel - ListElement { column1: qsTr("Ledger") ; column2: "Ledger"; } -// ListElement { column1: qsTr("Trezor") ; column2: "Trezor"; } - } - MoneroComponents.StandardDropdown { - id: deviceNameDropdown - dataModel: deviceNameModel - Layout.fillWidth: true - Layout.topMargin: 6 - colorHeaderBackground: "black" - releasedColor: "#363636" - pressedColor: "#202020" - } - } - - // Wallet store location - ColumnLayout { - z: deviceNameDropdown.z - 1 - MoneroComponents.Label { - Layout.fillWidth: true - Layout.topMargin: 20 * scaleRatio - fontSize: 14 - fontFamily: "Arial" - fontColor: "#555555" - text: qsTr("Your wallet is stored in") + ": " + fileUrlInput.text; - } - - MoneroComponents.LineEdit { - Layout.fillWidth: true - Layout.maximumWidth: 600 * scaleRatio - Layout.minimumWidth: 200 * scaleRatio - id: fileUrlInput - text: moneroAccountsDir + "/" - - // workaround for the bug "filechooser only opens once" - MouseArea { - anchors.fill: parent - onClicked: { - mouse.accepted = false - fileDialog.folder = walletManager.localPathToUrl(fileUrlInput.text) - fileDialog.open() - fileUrlInput.focus = true - } - } - borderColor: Qt.rgba(0, 0, 0, 0.15) - backgroundColor: "white" - fontColor: "black" - fontBold: false - } - - FileDialog { - id: fileDialog - selectMultiple: false - selectFolder: true - title: qsTr("Please choose a directory") + translationManager.emptyString - onAccepted: { - fileUrlInput.text = walletManager.urlToLocalPath(fileDialog.folder) - fileDialog.visible = false - } - onRejected: { - fileDialog.visible = false - } - } - } -} - diff --git a/wizard/WizardMemoTextInput.qml b/wizard/WizardMemoTextInput.qml deleted file mode 100644 index 13fe2213..00000000 --- a/wizard/WizardMemoTextInput.qml +++ /dev/null @@ -1,96 +0,0 @@ -import QtQuick 2.0 -import moneroComponents.Clipboard 1.0 - -Column { - - property alias memoText : memoTextInput.text - property alias tipText: wordsTipText.text - property alias tipTextVisible: tipRect.visible - property alias memoTextReadOnly : memoTextInput.readOnly - property alias clipboardButtonVisible: clipboardButton.visible - - - Rectangle { - id: memoTextRect - width: parent.width - height: { - memoTextInput.height - // to have less gap between button and text input we reduce overall height by button height - //+ (clipboardButton.visible ? clipboardButton.height : 0) - + (tipRect.visible ? tipRect.height : 0) - } - border.width: 1 - border.color: "#DBDBDB" - - TextEdit { - id: memoTextInput - property alias placeholderText: memoTextPlaceholder.text - textMargin: 8 * scaleRatio - text: "" - font.family: "Arial" - font.pixelSize: 16 * scaleRatio - wrapMode: TextInput.Wrap - width: parent.width - selectByMouse: true - property int minimumHeight: 100 * scaleRatio - height: contentHeight > minimumHeight ? contentHeight : minimumHeight - - Text { - id: memoTextPlaceholder - anchors.fill:parent - font.pixelSize: 16 * scaleRatio - anchors.margins: 8 * scaleRatio - font.bold:true - font.family: "Arial" - text: qsTr("Enter your 25 (or 24) word mnemonic seed") + translationManager.emptyString - color: "#BABABA" - visible: !memoTextInput.text/* && !parent.focus*/ - } - } - Image { - id : clipboardButton - anchors.right: parent.right - anchors.rightMargin: 5 * scaleRatio - anchors.bottom: tipRect.top - anchors.bottomMargin: 5 * scaleRatio - source: "qrc:///images/copyToClipboard.png" - Clipboard { id: clipboard } - MouseArea { - anchors.fill: parent - cursorShape: Qt.PointingHandCursor - onClicked: { - clipboard.setText(memoTextInput.text) - appWindow.showStatusMessage(qsTr("Seed copied to clipboard"),3) - } - - } - } - Rectangle { - id: tipRect - visible: true - anchors.left: parent.left - anchors.right: parent.right - anchors.bottom: memoTextRect.bottom - height: wordsTipText.contentHeight + wordsTipText.anchors.topMargin - color: "#DBDBDB" - property alias text: wordsTipText.text - - Text { - id: wordsTipText - anchors.fill: parent - anchors.topMargin : 16 * scaleRatio - anchors.bottomMargin: 16 * scaleRatio - anchors.leftMargin: 16 * scaleRatio - anchors.rightMargin: 16 * scaleRatio - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - font.family: "Arial" - font.pixelSize: 15 * scaleRatio - color: "#4A4646" - wrapMode: Text.Wrap - text: qsTr("This seed is very important to write down and keep secret. It is all you need to backup and restore your wallet.") - + translationManager.emptyString - } - } - } -} diff --git a/wizard/WizardMenuItem.qml b/wizard/WizardMenuItem.qml new file mode 100644 index 00000000..1ca2e1fb --- /dev/null +++ b/wizard/WizardMenuItem.qml @@ -0,0 +1,120 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Dialogs 1.2 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + +import "../components" as MoneroComponents + +RowLayout { + id: rowlayout + Layout.fillWidth: true + Layout.bottomMargin: 10 * scaleRatio + property alias imageIcon: icon.source + property alias headerText: header.text + property alias bodyText: body.text + signal menuClicked(); + spacing: 10 * scaleRatio + + Item { + Layout.preferredWidth: 70 * scaleRatio + Layout.preferredHeight: 70 * scaleRatio + + Image { + id: icon + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + source: "" + } + + MouseArea { + cursorShape: Qt.PointingHandCursor + anchors.fill: parent + onClicked: { + rowlayout.menuClicked(); + } + } + } + + ColumnLayout { + Layout.alignment: Qt.AlignVCenter + Layout.fillWidth: true + spacing: 0 + + Text { + id: header + Layout.fillWidth: true + leftPadding: parent.leftPadding + topPadding: 0 + color: MoneroComponents.Style.defaultFontColor + font.bold: true + font.family: MoneroComponents.Style.fontRegular.name + font.pixelSize: { + if(wizardController.layoutScale === 2 ){ + return 22 * scaleRatio; + } else { + return 16 * scaleRatio; + } + } + + MouseArea { + cursorShape: Qt.PointingHandCursor + anchors.fill: parent + onClicked: { + rowlayout.menuClicked(); + } + } + } + + Text { + id: body + Layout.fillWidth: true + color: MoneroComponents.Style.dimmedFontColor + font.family: MoneroComponents.Style.fontRegular.name + font.pixelSize: { + if(wizardController.layoutScale === 2 ){ + return 16 * scaleRatio; + } else { + return 14 * scaleRatio; + } + } + topPadding: 4 * scaleRatio + wrapMode: Text.WordWrap; + + MouseArea { + cursorShape: Qt.PointingHandCursor + anchors.fill: parent + onClicked: { + rowlayout.menuClicked(); + } + } + } + } +} diff --git a/wizard/WizardModeBootstrap.qml b/wizard/WizardModeBootstrap.qml new file mode 100644 index 00000000..5f9c70b9 --- /dev/null +++ b/wizard/WizardModeBootstrap.qml @@ -0,0 +1,206 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + +import "../js/Wizard.js" as Wizard +import "../components" as MoneroComponents + +Rectangle { + id: wizardModeBootstrapWarning + + color: "transparent" + property string viewName: "wizardModeRemoteNodeWarning" + property bool understood: false + + ColumnLayout { + Layout.alignment: Qt.AlignHCenter; + width: parent.width - 100 + Layout.fillWidth: true + anchors.horizontalCenter: parent.horizontalCenter; + + spacing: 10 * scaleRatio + + ColumnLayout { + Layout.fillWidth: true + Layout.maximumWidth: wizardController.wizardSubViewWidth + Layout.topMargin: wizardController.wizardSubViewTopMargin + Layout.alignment: Qt.AlignHCenter + spacing: 0 * scaleRatio + + WizardHeader { + title: qsTr("About the bootstrap mode") + translationManager.emptyString + subtitle: "" + } + + ColumnLayout { + spacing: 20 * scaleRatio + + Layout.topMargin: 10 * scaleRatio + Layout.fillWidth: true + + Text { + text: qsTr("This mode will use a remote node whilst also syncing the blockchain. This is different from the first menu option (Simple mode), since it will only use the remote node until the blockchain is fully synced locally. It is a reasonable tradeoff for most people who care about privacy but also want the convenience of an automatic fallback option.") + translationManager.emptyString + wrapMode: Text.Wrap + Layout.topMargin: 14 * scaleRatio + Layout.fillWidth: true + + font.family: MoneroComponents.Style.fontRegular.name + font.pixelSize: 16 * scaleRatio + color: MoneroComponents.Style.lightGreyFontColor + } + + Text { + text: qsTr("Temporary use of remote nodes is useful in order to use Monero immediately (hence the name bootstrap), however be aware that when using remote nodes (including with the bootstrap setting), nodes could track your IP address, track your \"restore height\" and associated block request data, and send you inaccurate information to learn more about transactions you make.") + translationManager.emptyString + wrapMode: Text.Wrap + Layout.topMargin: 8 * scaleRatio + Layout.fillWidth: true + + font.family: MoneroComponents.Style.fontRegular.name + font.pixelSize: 16 * scaleRatio + color: MoneroComponents.Style.lightGreyFontColor + } + + MoneroComponents.WarningBox{ + Layout.topMargin: 14 * scaleRatio + Layout.bottomMargin: 6 * scaleRatio + text: qsTr("Remain aware of these limitations. Users who prioritize privacy and decentralization must use a full node instead.") + translationManager.emptyString + } + + Text { + text: qsTr("For enhanced node performance you may specify your region:") + translationManager.emptyString + wrapMode: Text.Wrap + Layout.topMargin: 8 * scaleRatio + Layout.fillWidth: true + + font.family: MoneroComponents.Style.fontRegular.name + font.pixelSize: 16 * scaleRatio + color: MoneroComponents.Style.defaultFontColor + } + + GridLayout { + columns: 3 + columnSpacing: 20 + + ColumnLayout { + Layout.fillWidth: true + spacing: 0 + + MoneroComponents.StandardDropdown { + id: regionDropdown + Layout.fillWidth: true + dataModel: regionModel + shadowReleasedColor: "#FF4304" + shadowPressedColor: "#B32D00" + releasedColor: "#363636" + pressedColor: "#202020" + currentIndex: 0 + + onChanged: { + var region = regionModel.get(currentIndex).region; + persistentSettings.remoteNodeRegion = region; + } + } + } + + Item { + Layout.fillWidth: true + } + + Item { + Layout.fillWidth: true + } + + z: parent.z + 1 + } + + MoneroComponents.CheckBox { + id: understoodCheckbox + Layout.topMargin: 20 * scaleRatio + fontSize: 16 * scaleRatio + text: qsTr("I understand the privacy implications of using a third-party server.") + translationManager.emptyString + onClicked: { + wizardModeBootstrapWarning.understood = !wizardModeBootstrapWarning.understood + } + } + + WizardNav { + Layout.topMargin: 4 * scaleRatio + btnNext.enabled: wizardModeBootstrapWarning.understood + progressSteps: 0 + + onPrevClicked: { + wizardController.wizardState = 'wizardModeSelection'; + } + + onNextClicked: { + appWindow.changeWalletMode(1); + wizardController.wizardState = 'wizardHome'; + } + } + } + } + } + + ListModel { + id: regionModel + ListElement {column1: "Unspecified"; region: ""} + ListElement {column1: "Africa"; region: "af"} + ListElement {column1: "Asia"; region: "as"} + ListElement {column1: "Central America"; region: "ca";} + ListElement {column1: "North America"; region: "na";} + ListElement {column1: "Europe"; region: "eu";} + ListElement {column1: "Oceania"; region: "oc";} + ListElement {column1: "South America"; region: "sa";} + } + + function onPageCompleted(previousView){ + wizardModeBootstrapWarning.understood = false; + understoodCheckbox.checked = false; + } + + Component.onCompleted: { + var region = persistentSettings.remoteNodeRegion; + + if(region){ + for(var i = 0; i !== regionDropdown.dataModel.count; i++){ + var item = regionDropdown.dataModel.get(i); + if(item['region'] === region){ + regionDropdown.currentIndex = i; + break; + } + } + } else { + regionDropdown.currentIndex = 0; + } + + regionDropdown.update(); + } +} diff --git a/wizard/WizardModeRemoteNodeWarning.qml b/wizard/WizardModeRemoteNodeWarning.qml new file mode 100644 index 00000000..b578d480 --- /dev/null +++ b/wizard/WizardModeRemoteNodeWarning.qml @@ -0,0 +1,206 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + +import "../js/Wizard.js" as Wizard +import "../components" as MoneroComponents + +Rectangle { + id: wizardModeRemoteNodeWarning + + color: "transparent" + property string viewName: "wizardModeRemoteNodeWarning" + property bool understood: false + + ColumnLayout { + Layout.alignment: Qt.AlignHCenter; + width: parent.width - 100 + Layout.fillWidth: true + anchors.horizontalCenter: parent.horizontalCenter; + + spacing: 10 * scaleRatio + + ColumnLayout { + Layout.fillWidth: true + Layout.maximumWidth: wizardController.wizardSubViewWidth + Layout.topMargin: wizardController.wizardSubViewTopMargin + Layout.alignment: Qt.AlignHCenter + spacing: 0 * scaleRatio + + WizardHeader { + title: qsTr("About the simple mode") + translationManager.emptyString + subtitle: "" + } + + ColumnLayout { + spacing: 20 * scaleRatio + + Layout.topMargin: 10 * scaleRatio + Layout.fillWidth: true + + Text { + text: qsTr("This mode is ideal for managing small amounts of Monero. You have access to basic features for making and managing transactions. It will automatically connect to the Monero network so you can start using Monero immediately.") + translationManager.emptyString + wrapMode: Text.Wrap + Layout.topMargin: 14 * scaleRatio + Layout.fillWidth: true + + font.family: MoneroComponents.Style.fontRegular.name + font.pixelSize: 16 * scaleRatio + color: MoneroComponents.Style.lightGreyFontColor + } + + Text { + text: qsTr("Remote nodes are useful if you are not able/don't want to download the whole blockchain, but be advised that malicious remote nodes could compromise some privacy. They could track your IP address, track your \"restore height\" and associated block request data, and send you inaccurate information to learn more about transactions you make.") + translationManager.emptyString + wrapMode: Text.Wrap + Layout.topMargin: 8 * scaleRatio + Layout.fillWidth: true + + font.family: MoneroComponents.Style.fontRegular.name + font.pixelSize: 16 * scaleRatio + color: MoneroComponents.Style.lightGreyFontColor + } + + MoneroComponents.WarningBox{ + Layout.topMargin: 14 * scaleRatio + Layout.bottomMargin: 6 * scaleRatio + text: qsTr("Remain aware of these limitations. Users who prioritize privacy and decentralization must use a full node instead.") + translationManager.emptyString + } + + Text { + text: qsTr("For enhanced node performance you may specify your region:") + translationManager.emptyString + wrapMode: Text.Wrap + Layout.topMargin: 8 * scaleRatio + Layout.fillWidth: true + + font.family: MoneroComponents.Style.fontRegular.name + font.pixelSize: 16 * scaleRatio + color: MoneroComponents.Style.defaultFontColor + } + + GridLayout { + columns: 3 + columnSpacing: 20 + + ColumnLayout { + Layout.fillWidth: true + spacing: 0 + + MoneroComponents.StandardDropdown { + id: regionDropdown + Layout.fillWidth: true + dataModel: regionModel + shadowReleasedColor: "#FF4304" + shadowPressedColor: "#B32D00" + releasedColor: "#363636" + pressedColor: "#202020" + currentIndex: 0 + + onChanged: { + var region = regionModel.get(currentIndex).region; + persistentSettings.remoteNodeRegion = region; + } + } + } + + Item { + Layout.fillWidth: true + } + + Item { + Layout.fillWidth: true + } + + z: parent.z + 1 + } + + MoneroComponents.CheckBox { + id: understoodCheckbox + Layout.topMargin: 20 * scaleRatio + fontSize: 16 * scaleRatio + text: qsTr("I understand the privacy implications of using a third-party server.") + translationManager.emptyString + onClicked: { + wizardModeRemoteNodeWarning.understood = !wizardModeRemoteNodeWarning.understood + } + } + + WizardNav { + Layout.topMargin: 4 * scaleRatio + btnNext.enabled: wizardModeRemoteNodeWarning.understood + progressSteps: 0 + + onPrevClicked: { + wizardController.wizardState = 'wizardModeSelection'; + } + + onNextClicked: { + appWindow.changeWalletMode(0); + wizardController.wizardState = 'wizardHome'; + } + } + } + } + } + + ListModel { + id: regionModel + ListElement {column1: "Unspecified"; region: ""} + ListElement {column1: "Africa"; region: "af"} + ListElement {column1: "Asia"; region: "as"} + ListElement {column1: "Central America"; region: "ca";} + ListElement {column1: "North America"; region: "na";} + ListElement {column1: "Europe"; region: "eu";} + ListElement {column1: "Oceania"; region: "oc";} + ListElement {column1: "South America"; region: "sa";} + } + + function onPageCompleted(previousView){ + wizardModeRemoteNodeWarning.understood = false; + understoodCheckbox.checked = false; + } + + Component.onCompleted: { + var region = persistentSettings.remoteNodeRegion; + + if(region){ + for(var i = 0; i !== regionDropdown.dataModel.count; i++){ + var item = regionDropdown.dataModel.get(i); + if(item['region'] === region){ + regionDropdown.currentIndex = i; + break; + } + } + } else { + regionDropdown.currentIndex = 0; + } + + regionDropdown.update(); + } +} diff --git a/wizard/WizardModeSelection.qml b/wizard/WizardModeSelection.qml new file mode 100644 index 00000000..dddc4b9b --- /dev/null +++ b/wizard/WizardModeSelection.qml @@ -0,0 +1,153 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Dialogs 1.2 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + +import "../js/Wizard.js" as Wizard +import "../components" as MoneroComponents + +Rectangle { + id: wizardModeSelection1 + color: "transparent" + + property string viewName: "wizardModeSelection1" + + ColumnLayout { + Layout.alignment: Qt.AlignHCenter; + width: parent.width - 100 + Layout.fillWidth: true + anchors.horizontalCenter: parent.horizontalCenter; + + spacing: 10 * scaleRatio + + ColumnLayout { + Layout.fillWidth: true + Layout.maximumWidth: wizardController.wizardSubViewWidth + Layout.topMargin: wizardController.wizardSubViewTopMargin + Layout.alignment: Qt.AlignHCenter + spacing: 0 * scaleRatio + + WizardHeader { + title: qsTr("Mode selection.") + translationManager.emptyString + subtitle: qsTr("Please select the statement that best matches you.") + translationManager.emptyString + } + + WizardMenuItem { + opacity: appWindow.persistentSettings.nettype == 0 ? 1.0 : 0.5 + Layout.topMargin: 20 * scaleRatio + headerText: qsTr("Simple mode") + translationManager.emptyString + bodyText: { + if(appWindow.persistentSettings.nettype == 0){ + return qsTr("Easy access to sending, receiving and basic functionality.") + translationManager.emptyString; + } else { + return "Available on mainnet."; + } + } + + imageIcon: "../images/remote-node.png" + + onMenuClicked: { + if(appWindow.persistentSettings.nettype == 0){ + appWindow.changeWalletMode(0); + wizardController.wizardState = 'wizardModeRemoteNodeWarning'; + } + } + } + + Rectangle { + Layout.preferredHeight: 1 + Layout.topMargin: 5 * scaleRatio + Layout.bottomMargin: 10 * scaleRatio + Layout.fillWidth: true + color: MoneroComponents.Style.dividerColor + opacity: MoneroComponents.Style.dividerOpacity + } + + WizardMenuItem { + opacity: appWindow.persistentSettings.nettype == 0 ? 1.0 : 0.5 + headerText: qsTr("Simple mode") + " (bootstrap)" + translationManager.emptyString + bodyText: { + if(appWindow.persistentSettings.nettype == 0){ + return qsTr("Easy access to sending, receiving and basic functionality. The blockchain is downloaded to your computer.") + translationManager.emptyString; + } else { + return "Available on mainnet."; + } + } + imageIcon: "../images/local-node.png" + + onMenuClicked: { + if(appWindow.persistentSettings.nettype == 0){ + appWindow.changeWalletMode(1); + wizardController.wizardState = 'wizardModeBootstrap'; + } + } + } + + Rectangle { + Layout.preferredHeight: 1 + Layout.topMargin: 5 * scaleRatio + Layout.bottomMargin: 10 * scaleRatio + Layout.fillWidth: true + color: MoneroComponents.Style.dividerColor + opacity: MoneroComponents.Style.dividerOpacity + } + + WizardMenuItem { + headerText: qsTr("Advanced mode") + translationManager.emptyString + bodyText: qsTr("Includes extra features like mining and message verification. The blockchain is downloaded to your computer.") + translationManager.emptyString + imageIcon: "../images/local-node-full.png" + + onMenuClicked: { + appWindow.changeWalletMode(2); + wizardController.wizardState = 'wizardHome'; + } + } + + WizardNav { + Layout.topMargin: 5 * scaleRatio + btnPrevText: qsTr("Change language") + translationManager.emptyString + btnNext.visible: false + progressSteps: 0 + + onPrevClicked: { + wizardController.wizardState = 'wizardLanguage'; + } + } + } + } + + Behavior on opacity { + NumberAnimation { + duration: 200; + easing.type: Easing.InCubic; + } + } +} diff --git a/wizard/WizardNav.qml b/wizard/WizardNav.qml new file mode 100644 index 00000000..ac84ee36 --- /dev/null +++ b/wizard/WizardNav.qml @@ -0,0 +1,116 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + +import "../js/Wizard.js" as Wizard +import "../components" as MoneroComponents + +GridLayout { + id: menuNav + property alias progressEnabled: wizardProgress.visible + property int progressSteps: 0 + property int progress: 0 + property alias btnPrev: btnPrev + property alias btnNext: btnNext + property string btnPrevText: qsTr("Previous") + translationManager.emptyString + property string btnNextText: qsTr("Next") + translationManager.emptyString + Layout.topMargin: 20 * scaleRatio + Layout.preferredHeight: 70 * scaleRatio + Layout.preferredWidth: parent.width + columns: 3 + + signal nextClicked; + signal prevClicked; + + Rectangle { + Layout.preferredHeight: parent.height + Layout.fillWidth: true + color: "transparent" + + MoneroComponents.StandardButton { + id: btnPrev + small: true + text: menuNav.btnPrevText + + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + + onClicked: { + menuNav.prevClicked(); + } + } + } + + Rectangle { + // progress dots + Layout.preferredHeight: parent.height + Layout.fillWidth: true + color: "transparent" + + RowLayout { + id: wizardProgress + spacing: 0 + width: 100 // default, dynamically set later + height: 30 + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + } + } + + Rectangle { + Layout.preferredHeight: parent.height + Layout.fillWidth: true + color: "transparent" + + MoneroComponents.StandardButton { + id: btnNext + small: true + text: menuNav.btnNextText + + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + + onClicked: { + menuNav.nextClicked(); + } + } + } + + Component.onCompleted: { + for(var i =0; i < menuNav.progressSteps; i++) { + var active = i < menuNav.progress ? 'true' : 'false'; + Qt.createQmlObject("WizardNavProgressDot { active: " + active + " }", wizardProgress, 'dynamicWizardNavDot'); + } + + // Set `wizardProgress` width based on amount of progress dots + wizardProgress.width = 30 * menuNav.progressSteps; + } +} diff --git a/wizard/WizardPasswordInput.qml b/wizard/WizardNavProgressDot.qml similarity index 60% rename from wizard/WizardPasswordInput.qml rename to wizard/WizardNavProgressDot.qml index 6101f8d1..464429d5 100644 --- a/wizard/WizardPasswordInput.qml +++ b/wizard/WizardNavProgressDot.qml @@ -1,21 +1,21 @@ -// Copyright (c) 2014-2018, The Monero Project -// +// Copyright (c) 2014-2019, The Monero Project +// // All rights reserved. -// +// // Redistribution and use in source and binary forms, with or without modification, are // permitted provided that the following conditions are met: -// +// // 1. Redistributions of source code must retain the above copyright notice, this list of // conditions and the following disclaimer. -// +// // 2. Redistributions in binary form must reproduce the above copyright notice, this list // of conditions and the following disclaimer in the documentation and/or other // materials provided with the distribution. -// +// // 3. Neither the name of the copyright holder nor the names of its contributors may be // used to endorse or promote products derived from this software without specific // prior written permission. -// +// // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL @@ -26,43 +26,26 @@ // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -import QtQuick 2.0 -import QtQuick.Controls 1.4 -import QtQuick.Controls.Styles 1.4 -import QtQuick.Layouts 1.1 +import QtQuick 2.7 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 -ColumnLayout { - property alias password: password.text - property alias placeholderText: password.placeholderText - signal changed(string password) +import "../components" as MoneroComponents - - TextField { - Layout.fillWidth: true - id : password - focus:true - font.family: "Arial" - font.pixelSize: (isMobile) ? 25 * scaleRatio : 26 * scaleRatio - echoMode: TextInput.Password - style: TextFieldStyle { - renderType: Text.NativeRendering - textColor: "#35B05A" - passwordCharacter: "•" - background: Rectangle { - radius: 0 - border.width: 0 - } - } - onTextChanged: changed(text) - - Keys.onReleased: { - changed(text) - } - } +Rectangle { + property bool active: false + Layout.preferredWidth: 30 * scaleRatio + Layout.fillHeight: true + property string activeColor: MoneroComponents.Style.defaultFontColor + property string inactiveColor: "#333333" + color: "transparent" Rectangle { - Layout.fillWidth:true - height: 1 - color: "#DBDBDB" + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + width: 10 * scaleRatio + height: 10 * scaleRatio + radius: 10 * scaleRatio + color: parent.active ? parent.activeColor : parent.inactiveColor } } diff --git a/wizard/WizardOpenWallet1.qml b/wizard/WizardOpenWallet1.qml new file mode 100644 index 00000000..8e3f7f52 --- /dev/null +++ b/wizard/WizardOpenWallet1.qml @@ -0,0 +1,236 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Dialogs 1.2 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 +import Qt.labs.folderlistmodel 2.1 + +import "../js/Wizard.js" as Wizard +import "../components" +import "../components" as MoneroComponents + +Rectangle { + id: wizardOpenWallet1 + + color: "transparent" + property string viewName: "wizardOpenWallet1" + + FolderListModel { + // @TODO: Current implementation only lists the folders in `/home/foo/Monero/wallets`, better + // solution is to actually scan for .keys files. + id: folderModel + nameFilters: ["*"] + folder: "file:" + moneroAccountsDir + "/" + + showFiles: false + showHidden: false + sortField: FolderListModel.Time + } + + ColumnLayout { + Layout.alignment: Qt.AlignHCenter; + width: parent.width - 100 + Layout.fillWidth: true + anchors.horizontalCenter: parent.horizontalCenter; + + spacing: 0 + + ColumnLayout { + Layout.fillWidth: true + Layout.topMargin: wizardController.wizardSubViewTopMargin + Layout.maximumWidth: wizardController.wizardSubViewWidth + Layout.alignment: Qt.AlignHCenter + spacing: 20 * scaleRatio + + WizardHeader { + title: qsTr("Open a wallet from file") + translationManager.emptyString + subtitle: qsTr("Import an existing .keys wallet file from your computer.") + translationManager.emptyString + } + + MoneroComponents.StandardButton { + Layout.topMargin: 20 * scaleRatio + id: btnNext + small: true + text: qsTr("Browse filesystem") + + onClicked: { + wizardController.openWallet(); + } + } + + GridLayout { + visible: folderModel.count > 0 + Layout.topMargin: 30 * scaleRatio + Layout.fillWidth: true + columnSpacing: 20 * scaleRatio + columns: 2 + + Text { + text: qsTr("Most recent wallets") + translationManager.emptyString + font.family: MoneroComponents.Style.fontLight.name + font.pixelSize: 16 * scaleRatio + color: MoneroComponents.Style.defaultFontColor + Layout.fillWidth: true + } + + Item { + Layout.fillWidth: true + } + } + + GridLayout { + visible: folderModel.count > 0 + Layout.topMargin: 10 * scaleRatio + Layout.fillWidth: true + columnSpacing: 20 * scaleRatio + columns: 2 + + ListView { + id: recentList + property int itemHeight: 42 * scaleRatio + property int maxItems: 7 + + clip: true + Layout.fillWidth: true + Layout.preferredHeight: recentList.itemHeight * folderModel.count + Layout.maximumHeight: recentList.itemHeight * recentList.maxItems + interactive: false // disable scrolling + + delegate: Rectangle { + height: recentList.itemHeight + width: 200 * scaleRatio + property string activeColor: "#26FFFFFF" + color: "transparent" + + RowLayout { + height: recentList.itemHeight + width: parent.width + spacing: 10 * scaleRatio + + Rectangle { + Layout.preferredWidth: recentList.itemHeight + Layout.preferredHeight: recentList.itemHeight + color: "transparent" + + Image { + height: recentList.itemHeight + width: recentList.itemHeight + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + fillMode: Image.PreserveAspectFit + source: "../images/open-wallet-from-file.png" + } + } + + Rectangle { + Layout.fillWidth: true + Layout.preferredHeight: recentList.itemHeight + color: "transparent" + + TextArea { + text: fileName + anchors.verticalCenter: parent.verticalCenter + font.family: MoneroComponents.Style.fontRegular.name + color: MoneroComponents.Style.defaultFontColor + font.pixelSize: 18 * scaleRatio + + selectionColor: MoneroComponents.Style.dimmedFontColor + selectedTextColor: MoneroComponents.Style.defaultFontColor + + selectByMouse: false + wrapMode: Text.WordWrap + textMargin: 0 + leftPadding: 0 + topPadding: 0 + bottomPadding: 0 + readOnly: true + + // @TODO: Legacy. Remove after Qt 5.8. + MouseArea { + anchors.fill: parent + enabled: false + } + } + } + } + + MouseArea { + anchors.fill: parent + hoverEnabled: true + cursorShape: Qt.PointingHandCursor + + onEntered: { + parent.color = parent.activeColor; + } + onExited: { + parent.color = "transparent"; + } + onClicked: { + // open wallet + if(appWindow.walletMode === 0 || appWindow.walletMode === 1){ + wizardController.fetchRemoteNodes(function(){ + wizardController.openWalletFile(moneroAccountsDir + "/" + fileName + "/" + fileName + ".keys"); + }, function(){ + appWindow.showStatusMessage(qsTr("Failed to fetch remote nodes from third-party server."), 5); + wizardController.openWalletFile(moneroAccountsDir + "/" + fileName + "/" + fileName + ".keys"); + }); + } else { + wizardController.openWalletFile(moneroAccountsDir + "/" + fileName + "/" + fileName + ".keys"); + } + } + } + } + + model: folderModel + } + + Item { + Layout.fillWidth: true + } + } + + WizardNav { + Layout.topMargin: { + if(folderModel.count > 0){ + return 40 * scaleRatio; + } else { + return 20 * scaleRatio; + } + } + progressEnabled: false + btnPrev.text: qsTr("Back to menu") + translationManager.emptyString + btnNext.visible: false + onPrevClicked: { + wizardStateView.state = "wizardHome"; + } + } + } + } +} diff --git a/wizard/WizardOptions.qml b/wizard/WizardOptions.qml deleted file mode 100644 index b4cc7571..00000000 --- a/wizard/WizardOptions.qml +++ /dev/null @@ -1,394 +0,0 @@ -// Copyright (c) 2014-2018, The Monero Project -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, are -// permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this list of -// conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright notice, this list -// of conditions and the following disclaimer in the documentation and/or other -// materials provided with the distribution. -// -// 3. Neither the name of the copyright holder nor the names of its contributors may be -// used to endorse or promote products derived from this software without specific -// prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import QtQuick 2.2 -import QtQml 2.2 -import QtQuick.Controls 2.0 -import QtQuick.Layouts 1.1 -import moneroComponents.NetworkType 1.0 -import "../components" - -ColumnLayout { - id: page - signal createWalletClicked() - signal recoveryWalletClicked() - signal openWalletClicked() - signal createWalletFromDeviceClicked() - opacity: 0 - visible: false - property int buttonSize: (isMobile) ? 80 * scaleRatio : 140 * scaleRatio - property int buttonImageSize: (isMobile) ? buttonSize - 10 * scaleRatio : buttonSize - 30 * scaleRatio - - function onPageClosed() { - // Save settings used in open from file. - // other wizard settings are saved on last page in applySettings() - appWindow.persistentSettings.language = wizard.settings.language - appWindow.persistentSettings.locale = wizard.settings.locale - - return true; - } - - Behavior on opacity { - NumberAnimation { duration: 100; easing.type: Easing.InQuad } - } - - onOpacityChanged: visible = opacity !== 0 - - ColumnLayout { - id: headerColumn - Layout.leftMargin: wizardLeftMargin - Layout.rightMargin: wizardRightMargin - Layout.bottomMargin: (!isMobile) ? 40 * scaleRatio : 20 - spacing: 30 * scaleRatio - - Text { - Layout.fillWidth: true - font.family: "Arial" - font.pixelSize: 28 * scaleRatio - //renderType: Text.NativeRendering - color: "#3F3F3F" - wrapMode: Text.Wrap - horizontalAlignment: Text.AlignHCenter - text: qsTr("Welcome to Monero!") + translationManager.emptyString - } - - Text { - Layout.fillWidth: true - font.family: "Arial" - font.pixelSize: 18 * scaleRatio - //renderType: Text.NativeRendering - color: "#4A4646" - wrapMode: Text.Wrap - horizontalAlignment: Text.AlignHCenter - text: qsTr("Please select one of the following options:") + translationManager.emptyString - } - } - - GridLayout { - Layout.leftMargin: wizardLeftMargin - Layout.rightMargin: wizardRightMargin - Layout.alignment: Qt.AlignCenter - id: actionButtons - columnSpacing: 40 * scaleRatio - rowSpacing: 10 * scaleRatio - Layout.fillWidth: true - Layout.fillHeight: true - flow: isMobile ? GridLayout.TopToBottom : GridLayout.LeftToRight - - GridLayout { - Layout.fillHeight: true - Layout.fillWidth: true - flow: !isMobile ? GridLayout.TopToBottom : GridLayout.LeftToRight - rowSpacing: 20 * scaleRatio - columnSpacing: 10 * scaleRatio - - Rectangle { - Layout.preferredHeight: page.buttonSize - Layout.preferredWidth: page.buttonSize - radius: page.buttonSize - color: createWalletArea.containsMouse ? "#DBDBDB" : "#FFFFFF" - - - Image { - width: page.buttonImageSize - height: page.buttonImageSize - fillMode: Image.PreserveAspectFit - horizontalAlignment: Image.AlignRight - verticalAlignment: Image.AlignTop - anchors.centerIn: parent - source: "qrc:///images/createWallet.png" - } - - MouseArea { - id: createWalletArea - anchors.fill: parent - cursorShape: Qt.PointingHandCursor - hoverEnabled: true - onClicked: { - page.createWalletClicked() - } - } - } - - Text { - Layout.preferredWidth: page.buttonSize - font.family: "Arial" - font.pixelSize: 16 * scaleRatio - color: "#4A4949" - horizontalAlignment: Text.AlignHCenter - wrapMode: Text.WordWrap - text: qsTr("Create a new wallet") + translationManager.emptyString - } - } - - GridLayout { - Layout.fillWidth: true - Layout.fillHeight: true - flow: !isMobile ? GridLayout.TopToBottom : GridLayout.LeftToRight - rowSpacing: 20 * scaleRatio - columnSpacing: 10 * scaleRatio - - Rectangle { - Layout.preferredHeight: page.buttonSize - Layout.preferredWidth: page.buttonSize - radius: page.buttonSize - color: recoverWalletArea.containsMouse ? "#DBDBDB" : "#FFFFFF" - - Image { - width: page.buttonImageSize - height: page.buttonImageSize - fillMode: Image.PreserveAspectFit - anchors.centerIn: parent - source: "qrc:///images/recoverWallet.png" - } - - MouseArea { - id: recoverWalletArea - anchors.fill: parent - cursorShape: Qt.PointingHandCursor - hoverEnabled: true - onClicked: { - page.recoveryWalletClicked() - } - } - } - - Text { - Layout.preferredWidth: page.buttonSize - font.family: "Arial" - font.pixelSize: 16 * scaleRatio - color: "#4A4949" - horizontalAlignment: Text.AlignHCenter - text: qsTr("Restore wallet from keys or mnemonic seed") + translationManager.emptyString - width:page.buttonSize - wrapMode: Text.WordWrap - } - } - - GridLayout { - Layout.fillHeight: true - Layout.fillWidth: true - flow: !isMobile ? GridLayout.TopToBottom : GridLayout.LeftToRight - rowSpacing: 20 * scaleRatio - columnSpacing: 10 * scaleRatio - - Rectangle { - Layout.preferredHeight: page.buttonSize - Layout.preferredWidth: page.buttonSize - radius: page.buttonSize - color: openWalletArea.containsMouse ? "#DBDBDB" : "#FFFFFF" - - Image { - width: page.buttonImageSize - height: page.buttonImageSize - fillMode: Image.PreserveAspectFit - anchors.centerIn: parent - source: "qrc:///images/openAccount.png" - } - - MouseArea { - id: openWalletArea - anchors.fill: parent - cursorShape: Qt.PointingHandCursor - hoverEnabled: true - onClicked: { - page.openWalletClicked() - } - } - } - - Text { - Layout.preferredWidth: page.buttonSize - font.family: "Arial" - font.pixelSize: 16 * scaleRatio - color: "#4A4949" - horizontalAlignment: Text.AlignHCenter - text: qsTr("Open a wallet from file") + translationManager.emptyString - wrapMode: Text.WordWrap - } - } - - GridLayout { - Layout.fillHeight: true - Layout.fillWidth: true - flow: !isMobile ? GridLayout.TopToBottom : GridLayout.LeftToRight - rowSpacing: 20 * scaleRatio - columnSpacing: 10 * scaleRatio - - Rectangle { - Layout.preferredHeight: page.buttonSize - Layout.preferredWidth: page.buttonSize - radius: page.buttonSize - color: createWalletFromDeviceArea.containsMouse ? "#DBDBDB" : "#FFFFFF" - - - Image { - width: page.buttonImageSize - height: page.buttonImageSize - fillMode: Image.PreserveAspectFit - horizontalAlignment: Image.AlignRight - verticalAlignment: Image.AlignTop - anchors.centerIn: parent - source: "qrc:///images/createWalletFromDevice.png" - } - - MouseArea { - id: createWalletFromDeviceArea - anchors.fill: parent - cursorShape: Qt.PointingHandCursor - hoverEnabled: true - onClicked: { - page.createWalletFromDeviceClicked() - } - } - } - - Text { - Layout.preferredWidth: page.buttonSize - font.family: "Arial" - font.pixelSize: 16 * scaleRatio - color: "#4A4949" - horizontalAlignment: Text.AlignHCenter - wrapMode: Text.WordWrap - text: qsTr("Create a new wallet from hardware device") + translationManager.emptyString - } - } - } - - ColumnLayout { - Layout.leftMargin: wizardLeftMargin - Layout.rightMargin: wizardRightMargin - Layout.topMargin: 30 * scaleRatio - Layout.alignment: Qt.AlignCenter - Layout.fillWidth: true - spacing: 38 * scaleRatio - - RowLayout { - CheckBox2 { - id: showAdvancedCheckbox - darkDropIndicator: true - text: qsTr("Advanced options") + translationManager.emptyString - fontColor: "#4A4646" - } - } - - Rectangle { - width: 100 * scaleRatio - RadioButton { - visible: showAdvancedCheckbox.checked - enabled: !this.checked - id: mainNet - text: qsTr("Mainnet") + translationManager.emptyString - checkedColor: Qt.rgba(0, 0, 0, 0.75) - borderColor: Qt.rgba(0, 0, 0, 0.45) - fontColor: "#4A4646" - fontSize: 16 * scaleRatio - checked: appWindow.persistentSettings.nettype == NetworkType.MAINNET; - onClicked: { - persistentSettings.nettype = NetworkType.MAINNET - testNet.checked = false; - stageNet.checked = false; - console.log("Network type set to MainNet") - } - } - } - - Rectangle { - width: 100 * scaleRatio - RadioButton { - visible: showAdvancedCheckbox.checked - enabled: !this.checked - id: testNet - text: qsTr("Testnet") + translationManager.emptyString - checkedColor: Qt.rgba(0, 0, 0, 0.75) - borderColor: Qt.rgba(0, 0, 0, 0.45) - fontColor: "#4A4646" - fontSize: 16 * scaleRatio - checked: appWindow.persistentSettings.nettype == NetworkType.TESTNET; - onClicked: { - persistentSettings.nettype = testNet.checked ? NetworkType.TESTNET : NetworkType.MAINNET - mainNet.checked = false; - stageNet.checked = false; - console.log("Network type set to ", persistentSettings.nettype == NetworkType.TESTNET ? "Testnet" : "Mainnet") - } - } - } - - Rectangle { - width: 100 * scaleRatio - RadioButton { - visible: showAdvancedCheckbox.checked - enabled: !this.checked - id: stageNet - text: qsTr("Stagenet") + translationManager.emptyString - checkedColor: Qt.rgba(0, 0, 0, 0.75) - borderColor: Qt.rgba(0, 0, 0, 0.45) - fontColor: "#4A4646" - fontSize: 16 * scaleRatio - checked: appWindow.persistentSettings.nettype == NetworkType.STAGENET; - onClicked: { - persistentSettings.nettype = stageNet.checked ? NetworkType.STAGENET : NetworkType.MAINNET - mainNet.checked = false; - testNet.checked = false; - console.log("Network type set to ", persistentSettings.nettype == NetworkType.STAGENET ? "Stagenet" : "Mainnet") - } - } - } - } - - RowLayout { - Layout.leftMargin: wizardLeftMargin - Layout.rightMargin: wizardRightMargin - Layout.topMargin: 50 * scaleRatio - Layout.alignment: Qt.AlignHCenter - Layout.fillWidth: true - visible: showAdvancedCheckbox.checked - - Text { - font.family: "Arial" - font.pixelSize: 16 * scaleRatio - color: "#4A4949" - text: qsTr("Number of KDF rounds:") + translationManager.emptyString - } - TextField { - id: kdfRoundsText - font.family: "Arial" - font.pixelSize: 16 * scaleRatio - Layout.preferredWidth: 60 - horizontalAlignment: TextInput.AlignRight - selectByMouse: true - color: "#4A4949" - text: persistentSettings.kdfRounds - validator: IntValidator { bottom: 1 } - onEditingFinished: { - kdfRoundsText.text = persistentSettings.kdfRounds = parseInt(kdfRoundsText.text) >= 1 ? parseInt(kdfRoundsText.text) : 1; - } - } - } -} - diff --git a/wizard/WizardPassword.qml b/wizard/WizardPassword.qml deleted file mode 100644 index e99f1cb9..00000000 --- a/wizard/WizardPassword.qml +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright (c) 2014-2018, The Monero Project -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, are -// permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this list of -// conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright notice, this list -// of conditions and the following disclaimer in the documentation and/or other -// materials provided with the distribution. -// -// 3. Neither the name of the copyright holder nor the names of its contributors may be -// used to endorse or promote products derived from this software without specific -// prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import moneroComponents.WalletManager 1.0 -import QtQuick 2.2 -import QtQuick.Layouts 1.1 -import "../components" -import "utils.js" as Utils - -ColumnLayout { - Layout.leftMargin: wizardLeftMargin - Layout.rightMargin: wizardRightMargin - - id: passwordPage - opacity: 0 - visible: false - property alias titleText: titleText.text - property alias passwordsMatch: passwordUI.passwordsMatch - property alias password: passwordUI.password - Behavior on opacity { - NumberAnimation { duration: 100; easing.type: Easing.InQuad } - } - - onOpacityChanged: visible = opacity !== 0 - - - function onPageOpened(settingsObject) { - wizard.nextButton.enabled = true - passwordUI.handlePassword(); - - if (wizard.currentPath === "create_wallet") { - passwordPage.titleText = qsTr("Give your wallet a password") + translationManager.emptyString - } else { - passwordPage.titleText = qsTr("Give your wallet a password") + translationManager.emptyString - } - - passwordUI.resetFocus() - } - - function onPageClosed(settingsObject) { - // TODO: set password on the final page - settingsObject['wallet_password'] = passwordUI.password - return true - } - - function onWizardRestarted(){ - // Reset password fields - passwordUI.password = ""; - passwordUI.confirmPassword = ""; - } - - RowLayout { - id: dotsRow - Layout.alignment: Qt.AlignRight - - ListModel { - id: dotsModel - ListElement { dotColor: "#36B05B" } - ListElement { dotColor: "#FFE00A" } - ListElement { dotColor: "#DBDBDB" } - ListElement { dotColor: "#DBDBDB" } - } - - Repeater { - model: dotsModel - delegate: Rectangle { - // Password page is last page when creating view only wallet - // TODO: make this dynamic for all pages in wizard - visible: (wizard.currentPath != "create_view_only_wallet" || index < 2) - width: 12; height: 12 - radius: 6 - color: dotColor - } - } - } - - ColumnLayout { - id: headerColumn - - Text { - Layout.fillWidth: true - id: titleText - font.family: "Arial" - font.pixelSize: 28 * scaleRatio - wrapMode: Text.Wrap - horizontalAlignment: Text.AlignHCenter - //renderType: Text.NativeRendering - color: "#3F3F3F" - - } - - Text { - Layout.fillWidth: true - Layout.bottomMargin: 30 * scaleRatio - font.family: "Arial" - font.pixelSize: 18 * scaleRatio - wrapMode: Text.Wrap - //renderType: Text.NativeRendering - color: "#4A4646" - horizontalAlignment: Text.AlignHCenter - text: qsTr("
    Note: this password cannot be recovered. If you forget it then the wallet will have to be restored from its 25 word mnemonic seed.

    - Enter a strong password (using letters, numbers, and/or symbols):") - + translationManager.emptyString - } - } - - ColumnLayout { - Layout.fillWidth: true; - WizardPasswordUI { - id: passwordUI - } - } - - - Component.onCompleted: { - parent.wizardRestarted.connect(onWizardRestarted) - } -} diff --git a/wizard/WizardPasswordUI.qml b/wizard/WizardPasswordUI.qml deleted file mode 100644 index 4861dc48..00000000 --- a/wizard/WizardPasswordUI.qml +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (c) 2014-2018, The Monero Project -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, are -// permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this list of -// conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright notice, this list -// of conditions and the following disclaimer in the documentation and/or other -// materials provided with the distribution. -// -// 3. Neither the name of the copyright holder nor the names of its contributors may be -// used to endorse or promote products derived from this software without specific -// prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import moneroComponents.WalletManager 1.0 -import QtQuick 2.2 -import QtQuick.Layouts 1.1 -import "../components" -import "utils.js" as Utils - -ColumnLayout { - property alias password: passwordItem.password - property alias confirmPassword: retypePasswordItem.password - property bool passwordsMatch: passwordItem.password === retypePasswordItem.password - - function handlePassword() { - // allow to forward step only if passwords match - - wizard.nextButton.enabled = passwordItem.password === retypePasswordItem.password - - // TODO: password strength meter segfaults on Android. - if (!isAndroid) { - // scorePassword returns value from 0 to... lots - var strength = walletManager.getPasswordStrength(passwordItem.password); - // consider anything below 10 bits as dire - strength -= 10 - if (strength < 0) - strength = 0 - // use a slight parabola to discourage short passwords - strength = strength ^ 1.2 / 3 - // mapScope does not clamp - if (strength > 100) - strength = 100 - // privacyLevel component uses 1..13 scale - privacyLevel.fillLevel = Utils.mapScope(1, 100, 1, 13, strength) - } - } - - function resetFocus() { - passwordItem.focus = true - } - - WizardPasswordInput { - id: passwordItem - Layout.fillWidth: true - Layout.maximumWidth: 300 * scaleRatio - Layout.minimumWidth: 200 * scaleRatio - Layout.alignment: Qt.AlignHCenter - placeholderText : qsTr("Password") + translationManager.emptyString; - KeyNavigation.tab: retypePasswordItem - onChanged: handlePassword() - focus: true - } - - WizardPasswordInput { - id: retypePasswordItem - Layout.fillWidth: true - Layout.maximumWidth: 300 * scaleRatio - Layout.minimumWidth: 200 * scaleRatio - Layout.alignment: Qt.AlignHCenter - placeholderText : qsTr("Confirm password") + translationManager.emptyString; - KeyNavigation.tab: passwordItem - onChanged: handlePassword() - } - - PrivacyLevelSmall { - visible: !isAndroid //TODO: strength meter doesnt work on Android - Layout.topMargin: isAndroid ? 20 * scaleRatio : 40 * scaleRatio - Layout.fillWidth: true - id: privacyLevel - background: "#F0EEEE" - interactive: false - } - - Component.onCompleted: { - //parent.wizardRestarted.connect(onWizardRestarted) - } -} diff --git a/wizard/WizardRecoveryWallet.qml b/wizard/WizardRecoveryWallet.qml deleted file mode 100644 index 1e883b42..00000000 --- a/wizard/WizardRecoveryWallet.qml +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright (c) 2014-2018, The Monero Project -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, are -// permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this list of -// conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright notice, this list -// of conditions and the following disclaimer in the documentation and/or other -// materials provided with the distribution. -// -// 3. Neither the name of the copyright holder nor the names of its contributors may be -// used to endorse or promote products derived from this software without specific -// prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import QtQuick 2.2 -import QtQuick.Dialogs 1.2 -import moneroComponents.Wallet 1.0 -import QtQuick.Layouts 1.1 -import 'utils.js' as Utils - -ColumnLayout { - opacity: 0 - visible: false - - Behavior on opacity { - NumberAnimation { duration: 100; easing.type: Easing.InQuad } - } - - onOpacityChanged: visible = opacity !== 0 - - function onWizardRestarted() { - // reset account name field - uiItem.accountNameText = defaultAccountName - // Empty seedText - uiItem.wordsTextItem.memoText = "" - uiItem.recoverFromKeysAddress = "" - uiItem.recoverFromKeysSpendKey = "" - uiItem.recoverFromKeysViewKey = "" - } - - function onPageOpened(settingsObject) { - console.log("on page opened") - uiItem.checkNextButton(); - } - - function onPageClosed(settingsObject) { - settingsObject['account_name'] = uiItem.accountNameText - settingsObject['words'] = Utils.lineBreaksToSpaces(uiItem.wordsTextItem.memoText) - settingsObject['wallet_path'] = uiItem.walletPath - settingsObject['recover_address'] = uiItem.recoverFromKeysAddress - settingsObject['recover_viewkey'] = uiItem.recoverFromKeysViewKey - settingsObject['recover_spendkey'] = uiItem.recoverFromKeysSpendKey - - - var restoreHeight = parseInt(uiItem.restoreHeight); - settingsObject['restore_height'] = isNaN(restoreHeight)? 0 : restoreHeight - var walletFullPath = wizard.createWalletPath(uiItem.walletPath,uiItem.accountNameText); - if(!wizard.walletPathValid(walletFullPath)){ - return false - } - return recoveryWallet(settingsObject, uiItem.recoverFromSeedMode) - } - - function recoveryWallet(settingsObject, fromSeed) { - var nettype = appWindow.persistentSettings.nettype; - var kdfRounds = appWindow.persistentSettings.kdfRounds; - var restoreHeight = settingsObject.restore_height; - var tmp_wallet_filename = oshelper.temporaryFilename() - console.log("Creating temporary wallet", tmp_wallet_filename) - - // delete the temporary wallet object before creating new - if (typeof m_wallet !== 'undefined') { - walletManager.closeWallet() - console.log("deleting temporary wallet") - } - - // From seed or keys - if(fromSeed) - var wallet = walletManager.recoveryWallet(tmp_wallet_filename, settingsObject.words, nettype, restoreHeight, kdfRounds) - else - var wallet = walletManager.createWalletFromKeys(tmp_wallet_filename, settingsObject.wallet_language, nettype, - settingsObject.recover_address, settingsObject.recover_viewkey, - settingsObject.recover_spendkey, restoreHeight, kdfRounds) - - - var success = wallet.status === Wallet.Status_Ok; - if (success) { - m_wallet = wallet; - settingsObject['is_recovering'] = true; - settingsObject['tmp_wallet_filename'] = tmp_wallet_filename - } else { - console.log(wallet.errorString) - walletErrorDialog.text = wallet.errorString; - walletErrorDialog.open(); - walletManager.closeWallet(); - } - return success; - } - - - - WizardManageWalletUI { - id: uiItem - accountNameText: defaultAccountName - titleText: qsTr("Restore wallet") + translationManager.emptyString - wordsTextItem.clipboardButtonVisible: false - wordsTextItem.tipTextVisible: false - wordsTextItem.memoTextReadOnly: false - wordsTextItem.memoText: "" - wordsTextItem.visible: true - restoreHeightVisible: true - recoverMode: true - wordsTextItem.onMemoTextChanged: { - checkNextButton(); - } - } - - Component.onCompleted: { - parent.wizardRestarted.connect(onWizardRestarted) - } -} diff --git a/wizard/WizardRestoreWallet1.qml b/wizard/WizardRestoreWallet1.qml new file mode 100644 index 00000000..cab4a03e --- /dev/null +++ b/wizard/WizardRestoreWallet1.qml @@ -0,0 +1,284 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + +import "../js/Wizard.js" as Wizard +import "../components" as MoneroComponents + +Rectangle { + id: wizardRestoreWallet1 + + color: "transparent" + property string viewName: "wizardCreateWallet1" + + function verify() { + if(wizardController.walletRestoreMode === "keys") { + var valid = wizardRestoreWallet1.verifyFromKeys(); + return valid; + } else if(wizardController.walletRestoreMode === "seed") { + var valid = wizardWalletInput.verify(); + if(!valid) return false; + valid = Wizard.checkSeed(seedInput.text); + return valid; + } + + return false; + } + + function verifyFromKeys() { + var result = Wizard.restoreWalletCheckViewSpendAddress( + walletManager, + persistentSettings.nettype, + viewKeyLine.text, + spendKeyLine.text, + addressLine.text + ); + + var addressLineLength = addressLine.text.length + var viewKeyLineLength = viewKeyLine.text.length + var spendKeyLineLength = spendKeyLine.text.length + + addressLine.error = !result[0] && addressLineLength != 0 + viewKeyLine.error = !result[1] && viewKeyLineLength != 0 + spendKeyLine.error = !result[2] && spendKeyLineLength != 0 + + return (!addressLine.error && !viewKeyLine.error && !spendKeyLine.error && + addressLineLength != 0 && viewKeyLineLength != 0 && spendKeyLineLength != 0) + } + + ColumnLayout { + Layout.alignment: Qt.AlignHCenter; + width: parent.width - 100 + Layout.fillWidth: true + anchors.horizontalCenter: parent.horizontalCenter; + + spacing: 0 + + ColumnLayout { + Layout.fillWidth: true + Layout.topMargin: wizardController.wizardSubViewTopMargin + Layout.maximumWidth: wizardController.wizardSubViewWidth + Layout.alignment: Qt.AlignHCenter + spacing: 20 * scaleRatio + + WizardHeader { + title: qsTr("Restore wallet") + translationManager.emptyString + subtitle: qsTr("Restore wallet from keys or mnemonic seed.") + translationManager.emptyString + } + + WizardWalletInput{ + id: wizardWalletInput + } + + GridLayout{ + columns: 3 + + MoneroComponents.StandardButton { + text: qsTr("Restore from seed") + translationManager.emptyString + small: true + enabled: wizardController.walletRestoreMode !== 'seed' + + onClicked: { + wizardController.walletRestoreMode = 'seed'; + } + } + + MoneroComponents.StandardButton { + text: qsTr("Restore from keys") + translationManager.emptyString + small: true + enabled: wizardController.walletRestoreMode !== 'keys' + + onClicked: { + wizardController.walletRestoreMode = 'keys'; + } + } + + MoneroComponents.StandardButton { + text: qsTr("From QR Code") + translationManager.emptyString + small: true + visible: appWindow.qrScannerEnabled + enabled: wizardController.walletRestoreMode !== 'qr' + + onClicked: { + wizardController.walletRestoreMode = 'qr'; + cameraUi.state = "Capture" + cameraUi.qrcode_decoded.connect(Wizard.updateFromQrCode) + } + } + } + + ColumnLayout { + // seed textarea + visible: wizardController.walletRestoreMode === 'seed' + Layout.preferredHeight: 100 * scaleRatio + Layout.fillWidth: true + + Rectangle { + color: "transparent" + radius: 4 + + Layout.preferredHeight: 100 * scaleRatio + Layout.fillWidth: true + + border.width: 1 + border.color: { + if(seedInput.text !== "" && seedInput.error){ + return MoneroComponents.Style.inputBorderColorInvalid; + } else if(seedInput.activeFocus){ + return MoneroComponents.Style.inputBorderColorActive; + } else { + return MoneroComponents.Style.inputBorderColorInActive; + } + } + + TextArea { + id: seedInput + property bool error: false + width: parent.width + height: 100 * scaleRatio + + color: MoneroComponents.Style.defaultFontColor + textMargin: 2 * scaleRatio + text: "" + + font.family: MoneroComponents.Style.fontRegular.name + font.pixelSize: 16 * scaleRatio + selectionColor: MoneroComponents.Style.dimmedFontColor + selectedTextColor: MoneroComponents.Style.defaultFontColor + wrapMode: TextInput.Wrap + + selectByMouse: true + + Text { + id: memoTextPlaceholder + opacity: 0.35 + anchors.fill:parent + font.pixelSize: 16 * scaleRatio + anchors.margins: 8 * scaleRatio + anchors.leftMargin: 10 * scaleRatio + font.family: MoneroComponents.Style.fontRegular.name + text: qsTr("Enter your 25 (or 24) word mnemonic seed") + translationManager.emptyString + color: MoneroComponents.Style.defaultFontColor + visible: !seedInput.text && !parent.focus + } + } + } + } + + MoneroComponents.LineEdit { + id: addressLine + visible: wizardController.walletRestoreMode === 'keys' + Layout.fillWidth: true + placeholderFontSize: 16 * scaleRatio + placeholderText: qsTr("Account address (public)") + translationManager.emptyString + + onTextUpdated: { + wizardRestoreWallet1.verifyFromKeys(); + } + } + + MoneroComponents.LineEdit { + id: viewKeyLine + visible: wizardController.walletRestoreMode === 'keys' + Layout.fillWidth: true + placeholderFontSize: 16 * scaleRatio + placeholderText: qsTr("View key (private)") + translationManager.emptyString + + onTextUpdated: { + wizardRestoreWallet1.verifyFromKeys(); + } + } + + MoneroComponents.LineEdit { + id: spendKeyLine + visible: wizardController.walletRestoreMode === 'keys' + Layout.fillWidth: true + placeholderFontSize: 16 * scaleRatio + placeholderText: qsTr("Spend key (private)") + translationManager.emptyString + + onTextUpdated: { + wizardRestoreWallet1.verifyFromKeys(); + } + } + + GridLayout{ + MoneroComponents.LineEdit { + id: restoreHeight + Layout.fillWidth: true + labelText: qsTr("Restore height") + translationManager.emptyString + labelFontSize: 14 * scaleRatio + placeholderFontSize: 16 * scaleRatio + placeholderText: qsTr("Restore height") + translationManager.emptyString + validator: RegExpValidator { regExp: /(\d+)?$/ } + text: "0" + } + + Item { + Layout.fillWidth: true + } + + Item { + Layout.fillWidth: true + } + } + + WizardNav { + id: nav + progressSteps: 4 + progress: 1 + btnNext.enabled: wizardRestoreWallet1.verify(); + btnPrev.text: qsTr("Back to menu") + translationManager.emptyString + onPrevClicked: { + wizardStateView.state = "wizardHome"; + } + onNextClicked: { + wizardController.walletOptionsName = wizardWalletInput.walletName.text; + wizardController.walletOptionsLocation = wizardWalletInput.walletLocation.text; + wizardController.walletOptionsSeed = seedInput.text; + if(restoreHeight.text) + wizardController.walletOptionsRestoreHeight = parseInt(restoreHeight.text); + + wizardStateView.state = "wizardRestoreWallet2"; + } + } + } + } + + function onPageCompleted(previousView){ + if(previousView.viewName == "wizardHome"){ + // cleanup + seedInput.text = ""; + addressLine.text = ""; + spendKeyLine.text = ""; + restoreHeight.text = ""; + } + } +} diff --git a/wizard/WizardRestoreWallet2.qml b/wizard/WizardRestoreWallet2.qml new file mode 100644 index 00000000..1b75672a --- /dev/null +++ b/wizard/WizardRestoreWallet2.qml @@ -0,0 +1,85 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import "../js/Wizard.js" as Wizard +import "../components" as MoneroComponents + +import QtQuick 2.7 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + + +Rectangle { + id: wizardRestoreWallet2 + + color: "transparent" + property string viewName: "wizardRestoreWallet2" + property int recoveryMode: 1 + + ColumnLayout { + Layout.alignment: Qt.AlignHCenter; + width: parent.width - 100 + Layout.fillWidth: true + anchors.horizontalCenter: parent.horizontalCenter; + + spacing: 0 + + ColumnLayout { + Layout.fillWidth: true + Layout.topMargin: wizardController.wizardSubViewTopMargin + Layout.maximumWidth: wizardController.wizardSubViewWidth + Layout.alignment: Qt.AlignHCenter + spacing: 0 * scaleRatio + + WizardAskPassword { + id: passwordFields + } + + WizardNav { + progressSteps: 4 + progress: 2 + btnNext.enabled: passwordFields.calcStrengthAndVerify(); + onPrevClicked: { + wizardStateView.state = "wizardRestoreWallet1"; + } + onNextClicked: { + if(appWindow.walletMode === 0 || appWindow.walletMode === 1){ + wizardController.fetchRemoteNodes(function(){ + wizardStateView.state = "wizardRestoreWallet4"; + }, function(){ + appWindow.showStatusMessage(qsTr("Failed to fetch remote nodes from third-party server."), 5); + wizardStateView.state = "wizardRestoreWallet4"; + }); + } else { + wizardStateView.state = "wizardRestoreWallet3"; + } + } + } + } + } +} diff --git a/wizard/WizardRestoreWallet3.qml b/wizard/WizardRestoreWallet3.qml new file mode 100644 index 00000000..26c10c6d --- /dev/null +++ b/wizard/WizardRestoreWallet3.qml @@ -0,0 +1,86 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import "../js/Wizard.js" as Wizard +import "../components" as MoneroComponents + +import QtQuick 2.7 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + + +Rectangle { + id: wizardRestoreWallet3 + + color: "transparent" + property string viewName: "wizardRestoreWallet3" + property int recoveryMode: 1 + + function verify() { + // @TODO: check if walletName already exists in walletLocation + return walletName.text !== ''; + } + + ColumnLayout { + Layout.alignment: Qt.AlignHCenter; + width: parent.width - 100 + Layout.fillWidth: true + anchors.horizontalCenter: parent.horizontalCenter; + + spacing: 0 + + ColumnLayout { + Layout.fillWidth: true + Layout.topMargin: wizardController.wizardSubViewTopMargin + Layout.maximumWidth: wizardController.wizardSubViewWidth + Layout.alignment: Qt.AlignHCenter + spacing: 20 * scaleRatio + + WizardHeader { + title: qsTr("Daemon settings") + translationManager.emptyString + subtitle: qsTr("To be able to communicate with the Monero network your wallet needs to be connected to a Monero node. For best privacy it's recommended to run your own node.\n\nIf you don't have the option to run your own node, there's an option to connect to a remote node.") + translationManager.emptyString + } + + WizardDaemonSettings { + id: daemonSettings + } + + WizardNav { + progressSteps: 4 + progress: 3 + onPrevClicked: { + wizardStateView.state = "wizardRestoreWallet2"; + } + onNextClicked: { + daemonSettings.save(); + wizardStateView.state = "wizardRestoreWallet4"; + } + } + } + } +} diff --git a/wizard/WizardRestoreWallet4.qml b/wizard/WizardRestoreWallet4.qml new file mode 100644 index 00000000..a0f8ce8f --- /dev/null +++ b/wizard/WizardRestoreWallet4.qml @@ -0,0 +1,84 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import "../components" as MoneroComponents + +import QtQuick 2.7 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + + +Rectangle { + id: wizardRestoreWallet4 + + color: "transparent" + property string viewName: "wizardRestoreWallet4" + + ColumnLayout { + Layout.alignment: Qt.AlignHCenter; + width: parent.width - 100 + Layout.fillWidth: true + anchors.horizontalCenter: parent.horizontalCenter; + + spacing: 0 + + ColumnLayout { + Layout.fillWidth: true + Layout.topMargin: wizardController.wizardSubViewTopMargin + Layout.maximumWidth: wizardController.wizardSubViewWidth + Layout.alignment: Qt.AlignHCenter + spacing: 20 * scaleRatio + + WizardHeader { + title: qsTr("You're all set up!") + translationManager.emptyString + subtitle: qsTr("New wallet details:") + translationManager.emptyString + } + + WizardSummary {} + + WizardNav { + Layout.topMargin: 24 * scaleRatio + btnNextText: "Open wallet" + progressSteps: 4 + progress: 4 + + onPrevClicked: { + if (appWindow.walletMode <= 1){ + wizardStateView.state = "wizardRestoreWallet1"; + } else { + wizardStateView.state = "wizardRestoreWallet3"; + } + } + onNextClicked: { + wizardController.writeWallet(); + wizardController.useMoneroClicked(); + } + } + } + } +} diff --git a/wizard/WizardSummary.qml b/wizard/WizardSummary.qml new file mode 100644 index 00000000..c3fd9b60 --- /dev/null +++ b/wizard/WizardSummary.qml @@ -0,0 +1,91 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 +import moneroComponents.NetworkType 1.0 + +import "../js/Wizard.js" as Wizard +import "../js/Utils.js" as Utils +import "../components" as MoneroComponents + +ColumnLayout { + Layout.fillWidth: true + spacing: 0 + + WizardSummaryItem { + Layout.fillWidth: true + header: qsTr("Wallet name") + translationManager.emptyString + value: wizardController.walletOptionsName + } + + WizardSummaryItem { + Layout.fillWidth: true + header: qsTr("Wallet path") + translationManager.emptyString + value: wizardController.walletOptionsLocation + } + + WizardSummaryItem { + Layout.fillWidth: true + header: qsTr("Language") + translationManager.emptyString + value: wizardController.language_language + } + + WizardSummaryItem { + Layout.fillWidth: true + header: qsTr("Wallet name") + translationManager.emptyString + value: walletOptionsName + } + + WizardSummaryItem { + Layout.fillWidth: true + header: qsTr("Restore height") + translationManager.emptyString + value: wizardController.walletOptionsRestoreHeight + } + + WizardSummaryItem { + visible: persistentSettings.remoteNodeAddress !== "" && appWindow.walletMode == 0 + Layout.fillWidth: true + header: qsTr("Daemon address") + translationManager.emptyString + value: persistentSettings.remoteNodeAddress + } + + WizardSummaryItem { + visible: persistentSettings.bootstrapNodeAddress !== "" && appWindow.walletMode == 1 + Layout.fillWidth: true + header: qsTr("Bootstrap address") + translationManager.emptyString + value: persistentSettings.bootstrapNodeAddress + } + + WizardSummaryItem { + Layout.fillWidth: true + header: qsTr("Network Type") + translationManager.emptyString + value: Utils.netTypeToString() + } +} diff --git a/wizard/WizardCreateViewOnlyWallet.qml b/wizard/WizardSummaryItem.qml similarity index 51% rename from wizard/WizardCreateViewOnlyWallet.qml rename to wizard/WizardSummaryItem.qml index 88ead8d6..4da30a40 100644 --- a/wizard/WizardCreateViewOnlyWallet.qml +++ b/wizard/WizardSummaryItem.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2018, The Monero Project +// Copyright (c) 2014-2019, The Monero Project // // All rights reserved. // @@ -26,54 +26,60 @@ // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -import moneroComponents.WalletManager 1.0 -import QtQuick 2.2 -import QtQuick.Layouts 1.1 -import "../components" -import "utils.js" as Utils +import QtQuick 2.7 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 -ColumnLayout { - - id: passwordPage - opacity: 0 - visible: false - - Behavior on opacity { - NumberAnimation { duration: 100; easing.type: Easing.InQuad } - } +import "../js/Wizard.js" as Wizard +import "../js/Utils.js" as Utils +import "../components" as MoneroComponents - onOpacityChanged: visible = opacity !== 0 +ColumnLayout { + property alias header: key.text + property alias value: val.text + Layout.bottomMargin: 10 + Layout.fillWidth: true + GridLayout { + Layout.fillWidth: true + columns: 2 + columnSpacing: 0 - function onPageOpened(settingsObject) { - wizard.nextButton.enabled = true - wizard.nextButton.visible = true - } + Rectangle { + Layout.fillWidth: true + Layout.preferredHeight: 20 * scaleRatio + color: "transparent" - function onPageClosed(settingsObject) { - var walletFullPath = wizard.createWalletPath(uiItem.walletPath,uiItem.accountNameText); - settingsObject['view_only_wallet_path'] = walletFullPath - console.log("wallet path", walletFullPath) - return wizard.walletPathValid(walletFullPath); - } + MoneroComponents.TextBlock { + id: key + Layout.fillWidth: true + Layout.alignment: Qt.AlignVCenter + font.pixelSize: 16 + text: "test" + } + } - ListModel { - id: dotsModel - ListElement { dotColor: "#36B05B" } - ListElement { dotColor: "#DBDBDB" } - } + Rectangle { + Layout.fillWidth: true + Layout.preferredHeight: 20 * scaleRatio + color: "transparent" - WizardManageWalletUI { - id: uiItem - titleText: qsTr("Create view only wallet") + translationManager.emptyString - wordsTextItem.visible: false - restoreHeightVisible:false - walletName: appWindow.walletName + "-viewonly" - progressDotsModel: dotsModel - recoverMode: false + MoneroComponents.TextBlock { + id: val + Layout.fillWidth: true + Layout.alignment: Qt.AlignVCenter + font.pixelSize: 16 + text: "" + } + } } - Component.onCompleted: { - //parent.wizardRestarted.connect(onWizardRestarted) + Rectangle { + Layout.preferredHeight: 1 * scaleRatio + Layout.topMargin: 2 * scaleRatio + Layout.bottomMargin: 2 * scaleRatio + Layout.fillWidth: true + color: MoneroComponents.Style.dividerColor + opacity: MoneroComponents.Style.dividerOpacity } } diff --git a/wizard/WizardWalletInput.qml b/wizard/WizardWalletInput.qml new file mode 100644 index 00000000..aba521f7 --- /dev/null +++ b/wizard/WizardWalletInput.qml @@ -0,0 +1,111 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import QtQuick 2.7 +import QtQuick.Dialogs 1.2 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 + +import "../js/Wizard.js" as Wizard +import "../components" +import "../components" as MoneroComponents + +GridLayout { + Layout.fillWidth: true + property alias walletName: walletName + property alias walletLocation: walletLocation + + columnSpacing: 20 * scaleRatio + columns: 3 + + function verify() { + if(walletName.text !== '' && walletLocation.text !== ''){ + if(!walletName.error){ + return true; + } + } + return false; + } + + MoneroComponents.LineEdit { + id: walletName + Layout.fillWidth: true + + function verify(){ + if(walletLocation === "") return false; + + var exists = Wizard.walletPathExists(walletLocation.text, walletName.text, isIOS, walletManager); + return !exists && walletLocation.error === false; + } + + labelText: qsTr("Wallet name") + translationManager.emptyString + labelFontSize: 14 * scaleRatio + placeholderFontSize: 16 * scaleRatio + placeholderText: "-" + text: defaultAccountName + + onTextChanged: walletName.error = !walletName.verify(); + Component.onCompleted: walletName.error = !walletName.verify(); + } + + MoneroComponents.LineEdit { + id: walletLocation + Layout.fillWidth: true + + labelText: qsTr("Wallet location") + translationManager.emptyString + labelFontSize: 14 * scaleRatio + placeholderText: "..." + placeholderFontSize: 16 * scaleRatio + text: moneroAccountsDir + "/" + inlineButton.small: true + inlineButtonText: qsTr("Browse") + translationManager.emptyString + inlineButton.onClicked: { + fileWalletDialog.folder = walletManager.localPathToUrl(walletLocation.text) + fileWalletDialog.open() + walletLocation.focus = true + } + onTextChanged: { + walletLocation.error = walletLocation.text === ""; + } + } + + FileDialog { + id: fileWalletDialog + selectMultiple: false + selectFolder: true + title: qsTr("Please choose a directory") + translationManager.emptyString + onAccepted: { + walletLocation.text = walletManager.urlToLocalPath(fileWalletDialog.folder); + fileWalletDialog.visible = false; + walletName.error = !walletName.verify(); + } + onRejected: { + fileWalletDialog.visible = false; + } + } +} diff --git a/wizard/WizardWelcome.qml b/wizard/WizardWelcome.qml deleted file mode 100644 index 39a75139..00000000 --- a/wizard/WizardWelcome.qml +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright (c) 2014-2018, The Monero Project -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, are -// permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this list of -// conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright notice, this list -// of conditions and the following disclaimer in the documentation and/or other -// materials provided with the distribution. -// -// 3. Neither the name of the copyright holder nor the names of its contributors may be -// used to endorse or promote products derived from this software without specific -// prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import QtQuick 2.2 -import QtQuick.XmlListModel 2.0 -import QtQuick.Layouts 1.1 -import QtQml 2.2 - -import "../components" as MoneroComponents - -ColumnLayout { -// anchors.fill:parent - Behavior on opacity { - NumberAnimation { duration: 100; easing.type: Easing.InQuad } - } - - onOpacityChanged: visible = opacity !== 0 - - function onPageClosed(settingsObject) { - - // set default language to first item if none selected - if(gridView.currentIndex === -1) { - gridView.currentIndex = 0 - } - - var lang = languagesModel.get(gridView.currentIndex); - settingsObject['language'] = lang.display_name; - settingsObject['wallet_language'] = lang.wallet_language; - settingsObject['locale'] = lang.locale; - console.log("Language chosen: ",lang.display_name) - return true - } - - ColumnLayout { - id: headerColumn - Layout.leftMargin: wizardLeftMargin - Layout.rightMargin: wizardRightMargin - Layout.bottomMargin: 40 * scaleRatio - spacing: 20 * scaleRatio - - Text { - Layout.fillWidth: true - font.family: "Arial" - font.pixelSize: 28 * scaleRatio - color: "#3F3F3F" - wrapMode: Text.Wrap - horizontalAlignment: Text.AlignHCenter - text: qsTr("Welcome to Monero!") + translationManager.emptyString - } - - Text { - Layout.fillWidth: true - font.family: "Arial" - font.pixelSize: 18 * scaleRatio - color: "#4A4646" - wrapMode: Text.Wrap - horizontalAlignment: Text.AlignHCenter - text: qsTr("Please choose a language and regional format.") + translationManager.emptyString - } - } - - - // Flags model - XmlListModel { - id: languagesModel - source: "/lang/languages.xml" - query: "/languages/language" - - XmlRole { name: "display_name"; query: "@display_name/string()" } - XmlRole { name: "locale"; query: "@locale/string()" } - XmlRole { name: "wallet_language"; query: "@wallet_language/string()" } - XmlRole { name: "flag"; query: "@flag/string()" } - // TODO: XmlListModel is read only, we should store current language somewhere else - // and set current language accordingly - XmlRole { name: "isCurrent"; query: "@enabled/string()" } - - onStatusChanged: { - if(status === XmlListModel.Ready){ - console.log("languages availible: ",count); - if(count === 1){ - console.log("Skipping language page until more languages are availible") - wizard.switchPage(true); - } - } - } - } - - ColumnLayout{ - // Flags view - GridView { - property int margin: (isMobile) ? 0 : Math.floor(appWindow.width/12); - - id: gridView - cellWidth: 140 * scaleRatio - cellHeight: 120 * scaleRatio - model: languagesModel - // Hack to center the flag grid - property int columns: Math.floor(appWindow.width/cellWidth) - Layout.leftMargin: margin + (appWindow.width - cellWidth*columns) /2 - Layout.rightMargin: margin - Layout.fillWidth: true - Layout.fillHeight: true - - clip: true - - delegate: Item { - id: flagDelegate - height: gridView.cellHeight - width: gridView.cellWidth - - ColumnLayout { - width: gridView.cellWidth - Rectangle { - id: flagRect - height: 60 * scaleRatio - width: 60 * scaleRatio - radius: 30 * scaleRatio - Layout.alignment: Qt.AlignHCenter - color: { - if (gridView.currentIndex === index) { - return MoneroComponents.Style.buttonBackgroundColor; - } else if (delegateArea.containsMouse) { - return MoneroComponents.Style.dimmedFontColor; - } else { - return MoneroComponents.Style.buttonTextColor; - } - } - - Image { - anchors.fill: parent - source: flag - } - } - - Text { - font.family: "Arial" - font.pixelSize: 18 * scaleRatio - font.bold: gridView.currentIndex === index - color: "#3F3F3F" - text: display_name - Layout.alignment: Qt.AlignHCenter - } - } - - MouseArea { - id: delegateArea - anchors.fill: parent - cursorShape: Qt.PointingHandCursor - hoverEnabled: true - onClicked: { - gridView.currentIndex = index - var data = languagesModel.get(gridView.currentIndex); - if (data !== null || data !== undefined) { - var locale = data.locale - translationManager.setLanguage(locale.split("_")[0]); - wizard.switchPage(true) - } - } - } - } // delegate - - } - - - - - } - - -} diff --git a/wizard/utils.js b/wizard/utils.js deleted file mode 100644 index 65409046..00000000 --- a/wizard/utils.js +++ /dev/null @@ -1,24 +0,0 @@ -.pragma library - -function mapScope (inputScopeFrom, inputScopeTo, outputScopeFrom, outputScopeTo, value) { - var x = (value - inputScopeFrom) / (inputScopeTo - inputScopeFrom); - var result = outputScopeFrom + ((outputScopeTo - outputScopeFrom) * x); - return result; -} - - -function tr(text) { - return qsTr(text) + translationManager.emptyString -} - - -function lineBreaksToSpaces(text) { - return text.trim().replace(/(\r\n|\n|\r)/gm, " "); -} - -function usefulName(path) { - // arbitrary "short enough" limit - if (path.length < 32) - return path - return path.replace(/.*[\/\\]/, '').replace(/\.keys$/, '') -}

    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