aboutsummaryrefslogtreecommitdiff
path: root/wizard/WizardCreateDevice1.qml
diff options
context:
space:
mode:
authordsc <xmrdsc@protonmail.com>2019-01-14 01:02:44 +0100
committerdsc <xmrdsc@protonmail.com>2019-02-22 03:05:27 +0100
commitf329a710295deed3c15f2acff9a519c0a70e98e1 (patch)
tree95d2b1f6b8c31826a561d74d33368c1e9ef85d42 /wizard/WizardCreateDevice1.qml
parent333f4aaf83bd64de02b07a56d86bbf90363e403b (diff)
downloadmonzero-gui-f329a710295deed3c15f2acff9a519c0a70e98e1.tar.gz
monzero-gui-f329a710295deed3c15f2acff9a519c0a70e98e1.tar.xz
monzero-gui-f329a710295deed3c15f2acff9a519c0a70e98e1.zip
Wizard redesign
Diffstat (limited to 'wizard/WizardCreateDevice1.qml')
-rw-r--r--wizard/WizardCreateDevice1.qml187
1 files changed, 187 insertions, 0 deletions
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: "<major>:<minor>"
+ 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()
+ }
+}