diff options
| author | dsc <xmrdsc@protonmail.com> | 2019-01-14 01:02:44 +0100 |
|---|---|---|
| committer | dsc <xmrdsc@protonmail.com> | 2019-02-22 03:05:27 +0100 |
| commit | f329a710295deed3c15f2acff9a519c0a70e98e1 (patch) | |
| tree | 95d2b1f6b8c31826a561d74d33368c1e9ef85d42 /wizard/WizardHome.qml | |
| parent | 333f4aaf83bd64de02b07a56d86bbf90363e403b (diff) | |
| download | monzero-gui-f329a710295deed3c15f2acff9a519c0a70e98e1.tar.gz monzero-gui-f329a710295deed3c15f2acff9a519c0a70e98e1.tar.xz monzero-gui-f329a710295deed3c15f2acff9a519c0a70e98e1.zip | |
Wizard redesign
Diffstat (limited to 'wizard/WizardHome.qml')
| -rw-r--r-- | wizard/WizardHome.qml | 250 |
1 files changed, 250 insertions, 0 deletions
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; + } +} |
