mirror of
https://github.com/monero-project/monero-gui.git
synced 2024-11-17 00:07:51 +00:00
Added settings page: Wallet
This commit is contained in:
parent
9019fa8baa
commit
28bd9a72d2
1 changed files with 407 additions and 0 deletions
407
pages/settings/SettingsWallet.qml
Normal file
407
pages/settings/SettingsWallet.qml
Normal file
|
@ -0,0 +1,407 @@
|
||||||
|
import QtQuick 2.7
|
||||||
|
import QtQuick.Layouts 1.1
|
||||||
|
import QtQuick.Controls 2.0
|
||||||
|
import QtQuick.Dialogs 1.2
|
||||||
|
|
||||||
|
import "../../js/Utils.js" as Utils
|
||||||
|
import "../../components" as MoneroComponents
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
color: "transparent"
|
||||||
|
height: 1400
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
id: settingsWallet
|
||||||
|
property int itemHeight: 60 * scaleRatio
|
||||||
|
Layout.fillWidth: true
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.margins: (isMobile)? 17 : 20
|
||||||
|
anchors.topMargin: 0
|
||||||
|
spacing: 0
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
// divider
|
||||||
|
Layout.preferredHeight: 1 * scaleRatio
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.bottomMargin: 8 * scaleRatio
|
||||||
|
color: MoneroComponents.Style.dividerColor
|
||||||
|
opacity: MoneroComponents.Style.dividerOpacity
|
||||||
|
}
|
||||||
|
|
||||||
|
GridLayout {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: settingsWallet.itemHeight
|
||||||
|
columnSpacing: 0
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
spacing: 0
|
||||||
|
|
||||||
|
Text {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: 20 * scaleRatio
|
||||||
|
Layout.topMargin: 8 * scaleRatio
|
||||||
|
color: "white"
|
||||||
|
font.bold: true
|
||||||
|
font.family: MoneroComponents.Style.fontRegular.name
|
||||||
|
font.pixelSize: 16 * scaleRatio
|
||||||
|
text: qsTr("Close this wallet") + translationManager.emptyString
|
||||||
|
}
|
||||||
|
|
||||||
|
TextArea {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
color: MoneroComponents.Style.greyFontColor
|
||||||
|
font.family: MoneroComponents.Style.fontRegular.name
|
||||||
|
font.pixelSize: 14 * scaleRatio
|
||||||
|
horizontalAlignment: TextInput.AlignLeft
|
||||||
|
selectByMouse: false
|
||||||
|
wrapMode: Text.WordWrap;
|
||||||
|
textMargin: 0
|
||||||
|
leftPadding: 0
|
||||||
|
topPadding: 0
|
||||||
|
text: qsTr("Logs out of this wallet.") + translationManager.emptyString
|
||||||
|
width: parent.width
|
||||||
|
readOnly: true
|
||||||
|
|
||||||
|
// @TODO: Legacy. Remove after Qt 5.8.
|
||||||
|
// https://stackoverflow.com/questions/41990013
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
enabled: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
Layout.minimumWidth: 120 * scaleRatio
|
||||||
|
Layout.preferredWidth: closeWalletText.width + (20 * scaleRatio)
|
||||||
|
Layout.preferredHeight: parent.height
|
||||||
|
color: "transparent"
|
||||||
|
|
||||||
|
Rectangle{
|
||||||
|
width: parent.width
|
||||||
|
height: 24 * scaleRatio
|
||||||
|
radius: 2 * scaleRatio
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
color: MoneroComponents.Style.buttonBackgroundColorDisabled
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: closeWalletText
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
color: MoneroComponents.Style.defaultFontColor
|
||||||
|
font.family: MoneroComponents.Style.fontRegular.name
|
||||||
|
font.pixelSize: 14 * scaleRatio
|
||||||
|
font.bold: true
|
||||||
|
text: qsTr("Close wallet") + translationManager.emptyString
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
cursorShape: Qt.PointingHandCursor
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
appWindow.showWizard();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
// divider
|
||||||
|
Layout.preferredHeight: 1 * scaleRatio
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.topMargin: 8 * scaleRatio
|
||||||
|
Layout.bottomMargin: 8 * scaleRatio
|
||||||
|
color: MoneroComponents.Style.dividerColor
|
||||||
|
opacity: MoneroComponents.Style.dividerOpacity
|
||||||
|
}
|
||||||
|
|
||||||
|
GridLayout {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: settingsWallet.itemHeight
|
||||||
|
columnSpacing: 0
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
spacing: 0
|
||||||
|
|
||||||
|
Text {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: 20 * scaleRatio
|
||||||
|
Layout.topMargin: 8 * scaleRatio
|
||||||
|
color: "white"
|
||||||
|
font.bold: true
|
||||||
|
font.family: MoneroComponents.Style.fontRegular.name
|
||||||
|
font.pixelSize: 16 * scaleRatio
|
||||||
|
text: qsTr("Create a view-only wallet") + translationManager.emptyString
|
||||||
|
}
|
||||||
|
|
||||||
|
TextArea {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
color: MoneroComponents.Style.greyFontColor
|
||||||
|
font.family: MoneroComponents.Style.fontRegular.name
|
||||||
|
font.pixelSize: 14 * scaleRatio
|
||||||
|
horizontalAlignment: TextInput.AlignLeft
|
||||||
|
selectByMouse: false
|
||||||
|
wrapMode: Text.WordWrap;
|
||||||
|
textMargin: 0
|
||||||
|
leftPadding: 0
|
||||||
|
topPadding: 0
|
||||||
|
text: qsTr("Creates a new wallet that can only view transactions, cannot initialize transactions.") + translationManager.emptyString
|
||||||
|
width: parent.width
|
||||||
|
readOnly: true
|
||||||
|
|
||||||
|
// @TODO: Legacy. Remove after Qt 5.8.
|
||||||
|
// https://stackoverflow.com/questions/41990013
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
enabled: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
Layout.minimumWidth: 120 * scaleRatio
|
||||||
|
Layout.preferredWidth: createViewOnlyText.width + (20 * scaleRatio)
|
||||||
|
Layout.preferredHeight: parent.height
|
||||||
|
color: "transparent"
|
||||||
|
|
||||||
|
Rectangle{
|
||||||
|
width: parent.width
|
||||||
|
height: 24 * scaleRatio
|
||||||
|
radius: 2 * scaleRatio
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
color: MoneroComponents.Style.buttonBackgroundColorDisabled
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: createViewOnlyText
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
color: MoneroComponents.Style.defaultFontColor
|
||||||
|
font.family: MoneroComponents.Style.fontRegular.name
|
||||||
|
font.pixelSize: 14 * scaleRatio
|
||||||
|
font.bold: true
|
||||||
|
text: qsTr("Create wallet") + translationManager.emptyString
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
cursorShape: Qt.PointingHandCursor
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
wizard.openCreateViewOnlyWalletPage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
// divider
|
||||||
|
Layout.preferredHeight: 1 * scaleRatio
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.topMargin: 8 * scaleRatio
|
||||||
|
Layout.bottomMargin: 8 * scaleRatio
|
||||||
|
color: MoneroComponents.Style.dividerColor
|
||||||
|
opacity: MoneroComponents.Style.dividerOpacity
|
||||||
|
}
|
||||||
|
|
||||||
|
GridLayout {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: settingsWallet.itemHeight
|
||||||
|
columnSpacing: 0
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
spacing: 0
|
||||||
|
|
||||||
|
Text {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: 20 * scaleRatio
|
||||||
|
Layout.topMargin: 8 * scaleRatio
|
||||||
|
color: "white"
|
||||||
|
font.bold: true
|
||||||
|
font.family: MoneroComponents.Style.fontRegular.name
|
||||||
|
font.pixelSize: 16 * scaleRatio
|
||||||
|
text: qsTr("Show seed & keys") + translationManager.emptyString
|
||||||
|
}
|
||||||
|
|
||||||
|
TextArea {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
color: MoneroComponents.Style.greyFontColor
|
||||||
|
font.family: MoneroComponents.Style.fontRegular.name
|
||||||
|
font.pixelSize: 14 * scaleRatio
|
||||||
|
horizontalAlignment: TextInput.AlignLeft
|
||||||
|
selectByMouse: false
|
||||||
|
wrapMode: Text.WordWrap;
|
||||||
|
textMargin: 0 * scaleRatio
|
||||||
|
leftPadding: 0
|
||||||
|
topPadding: 0
|
||||||
|
text: qsTr("Store this information safely to recover your wallet in the future.") + translationManager.emptyString
|
||||||
|
width: parent.width
|
||||||
|
readOnly: true
|
||||||
|
|
||||||
|
// @TODO: Legacy. Remove after Qt 5.8.
|
||||||
|
// https://stackoverflow.com/questions/41990013
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
enabled: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
Layout.minimumWidth: 120 * scaleRatio
|
||||||
|
Layout.preferredWidth: showSeedText.width + (20 * scaleRatio)
|
||||||
|
Layout.preferredHeight: parent.height
|
||||||
|
color: "transparent"
|
||||||
|
|
||||||
|
Rectangle{
|
||||||
|
width: parent.width
|
||||||
|
height: 24 * scaleRatio
|
||||||
|
radius: 2 * scaleRatio
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
color: MoneroComponents.Style.buttonBackgroundColorDisabled
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: showSeedText
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
color: MoneroComponents.Style.defaultFontColor
|
||||||
|
font.family: MoneroComponents.Style.fontRegular.name
|
||||||
|
font.pixelSize: 14 * scaleRatio
|
||||||
|
font.bold: true
|
||||||
|
text: qsTr("Show seed") + translationManager.emptyString
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
cursorShape: Qt.PointingHandCursor
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
Utils.showSeedPage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
// divider
|
||||||
|
Layout.preferredHeight: 1 * scaleRatio
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.topMargin: 8 * scaleRatio
|
||||||
|
Layout.bottomMargin: 8 * scaleRatio
|
||||||
|
color: MoneroComponents.Style.dividerColor
|
||||||
|
opacity: MoneroComponents.Style.dividerOpacity
|
||||||
|
}
|
||||||
|
|
||||||
|
GridLayout {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: settingsWallet.itemHeight
|
||||||
|
columnSpacing: 0
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
spacing: 0
|
||||||
|
|
||||||
|
Text {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: 20 * scaleRatio
|
||||||
|
Layout.topMargin: 8 * scaleRatio
|
||||||
|
color: "white"
|
||||||
|
font.bold: true
|
||||||
|
font.family: MoneroComponents.Style.fontRegular.name
|
||||||
|
font.pixelSize: 16 * scaleRatio
|
||||||
|
text: qsTr("Rescan wallet balance") + translationManager.emptyString
|
||||||
|
}
|
||||||
|
|
||||||
|
TextArea {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
color: MoneroComponents.Style.greyFontColor
|
||||||
|
font.family: MoneroComponents.Style.fontRegular.name
|
||||||
|
font.pixelSize: 14 * scaleRatio
|
||||||
|
horizontalAlignment: TextInput.AlignLeft
|
||||||
|
selectByMouse: false
|
||||||
|
wrapMode: Text.WordWrap;
|
||||||
|
textMargin: 0
|
||||||
|
leftPadding: 0
|
||||||
|
topPadding: 0
|
||||||
|
text: qsTr("Use this feature if you think the shown balance is not accurate.") + translationManager.emptyString
|
||||||
|
width: parent.width
|
||||||
|
readOnly: true
|
||||||
|
|
||||||
|
// @TODO: Legacy. Remove after Qt 5.8.
|
||||||
|
// https://stackoverflow.com/questions/41990013
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
enabled: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
Layout.minimumWidth: 120 * scaleRatio
|
||||||
|
Layout.preferredWidth: rescanButtonText.width + (20 * scaleRatio)
|
||||||
|
Layout.preferredHeight: parent.height
|
||||||
|
color: "transparent"
|
||||||
|
|
||||||
|
Rectangle{
|
||||||
|
width: parent.width
|
||||||
|
|
||||||
|
height: 24 * scaleRatio
|
||||||
|
radius: 2 * scaleRatio
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
color: MoneroComponents.Style.buttonBackgroundColorDisabled
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: rescanButtonText
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
color: MoneroComponents.Style.defaultFontColor
|
||||||
|
font.family: MoneroComponents.Style.fontRegular.name
|
||||||
|
font.pixelSize: 14 * scaleRatio
|
||||||
|
font.bold: true
|
||||||
|
text: qsTr("Rescan") + translationManager.emptyString
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
cursorShape: Qt.PointingHandCursor
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
if (!currentWallet.rescanSpent()) {
|
||||||
|
console.error("Error: ", currentWallet.errorString);
|
||||||
|
informationPopup.title = qsTr("Error") + translationManager.emptyString;
|
||||||
|
informationPopup.text = qsTr("Error: ") + currentWallet.errorString
|
||||||
|
informationPopup.icon = StandardIcon.Critical
|
||||||
|
informationPopup.onCloseCallback = null
|
||||||
|
informationPopup.open();
|
||||||
|
} else {
|
||||||
|
informationPopup.title = qsTr("Information") + translationManager.emptyString
|
||||||
|
informationPopup.text = qsTr("Successfully rescanned spent outputs.") + translationManager.emptyString
|
||||||
|
informationPopup.icon = StandardIcon.Information
|
||||||
|
informationPopup.onCloseCallback = null
|
||||||
|
informationPopup.open();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
console.log('SettingsWallet loaded');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue