aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2016-11-05 10:08:50 +0200
committerRiccardo Spagni <ric@spagni.net>2016-11-05 10:08:50 +0200
commitbfebc2e356e965134a6b87ec0a2294758ec02d00 (patch)
treed1bb14bf61063cb32a4ef7f79f24c357852c3d39
parent56043ec483c1400961e752bdf27d85435ec48c7c (diff)
parent550087f4a14df7e5b4ff6592be9e9cd64162b801 (diff)
downloadmonzero-gui-bfebc2e356e965134a6b87ec0a2294758ec02d00.tar.gz
monzero-gui-bfebc2e356e965134a6b87ec0a2294758ec02d00.tar.xz
monzero-gui-bfebc2e356e965134a6b87ec0a2294758ec02d00.zip
Merge pull request #95
550087f PasswordDialog: accept/reject with Enter/Esc, Tab navigation (Ilya Kitaev) 513f7eb StandardButton: indicating "focused" state (Ilya Kitaev) 7973d0c Custom password dialog. fixes issue with standard dialog (Ilya Kitaev)
-rw-r--r--components/PasswordDialog.qml146
-rw-r--r--components/StandardButton.qml9
-rw-r--r--main.qml6
-rw-r--r--pages/Settings.qml4
4 files changed, 138 insertions, 27 deletions
diff --git a/components/PasswordDialog.qml b/components/PasswordDialog.qml
index 69a2ae91..79765f7d 100644
--- a/components/PasswordDialog.qml
+++ b/components/PasswordDialog.qml
@@ -31,37 +31,143 @@ import QtQuick.Controls 1.4
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.4
+import QtQuick.Window 2.0
-// import "../components"
+import "../components" as MoneroComponents
-Dialog {
+Window {
id: root
+ modality: Qt.ApplicationModal
+ flags: Qt.Window | Qt.FramelessWindowHint
property alias password: passwordInput.text
- standardButtons: StandardButton.Ok + StandardButton.Cancel
+
+ // same signals as Dialog has
+ signal accepted()
+ signal rejected()
+
+
+ function open() {
+ show()
+ }
+
+ // TODO: implement without hardcoding sizes
+ width: 480
+ height: 200
+
ColumnLayout {
- id: column
- anchors.fill: parent
+ id: mainLayout
+ spacing: 10
+ anchors { fill: parent; margins: 35 }
+
+ ColumnLayout {
+ id: column
+ //anchors {fill: parent; margins: 16 }
+ Layout.alignment: Qt.AlignHCenter
+
+ Label {
+ text: qsTr("Please enter wallet password")
+ Layout.alignment: Qt.AlignHCenter
+ Layout.columnSpan: 2
+ Layout.fillWidth: true
+ horizontalAlignment: Text.AlignHCenter
+ font.pixelSize: 24
+ font.family: "Arial"
+ color: "#555555"
+ }
+
+ TextField {
+ id : passwordInput
+ focus: true
+ Layout.fillWidth: true
+ Layout.alignment: Qt.AlignHCenter
+ horizontalAlignment: TextInput.AlignHCenter
+ verticalAlignment: TextInput.AlignVCenter
+ font.family: "Arial"
+ font.pixelSize: 32
+ echoMode: TextInput.Password
+ KeyNavigation.tab: okButton
+
+ style: TextFieldStyle {
+ renderType: Text.NativeRendering
+ textColor: "#35B05A"
+ passwordCharacter: "•"
+ // no background
+ background: Rectangle {
+ radius: 0
+ border.width: 0
+ }
+ }
+ Keys.onReturnPressed: {
+ root.accepted()
+ root.close()
+ }
- Label {
- text: qsTr("Please enter wallet password")
- Layout.columnSpan: 2
- Layout.fillWidth: true
- font.family: "Arial"
- font.pixelSize: 32
+ Keys.onEscapePressed: {
+ root.rejected()
+ root.close()
+ }
+
+
+ }
+ // underline
+ Rectangle {
+ height: 1
+ color: "#DBDBDB"
+ Layout.fillWidth: true
+ Layout.alignment: Qt.AlignHCenter
+ anchors.bottomMargin: 3
+
+ }
+ // padding
+ Rectangle {
+ Layout.fillWidth: true
+ Layout.alignment: Qt.AlignHCenter
+ height: 10
+ opacity: 0
+ color: "black"
+ }
}
+ // Ok/Cancel buttons
+ RowLayout {
+ id: buttons
+ spacing: 60
+ Layout.alignment: Qt.AlignHCenter
- TextField {
- id : passwordInput
+ MoneroComponents.StandardButton {
+ id: okButton
+ width: 120
+ fontSize: 14
+ shadowReleasedColor: "#FF4304"
+ shadowPressedColor: "#B32D00"
+ releasedColor: "#FF6C3C"
+ pressedColor: "#FF4304"
+ text: qsTr("Ok")
+ KeyNavigation.tab: cancelButton
+ onClicked: {
+ root.accepted()
+ root.close()
+ }
+ }
- echoMode: TextInput.Password
- focus: true
- Layout.fillWidth: true
- font.family: "Arial"
- font.pixelSize: 24
- style: TextFieldStyle {
- passwordCharacter: "•"
+ MoneroComponents.StandardButton {
+ id: cancelButton
+ width: 120
+ fontSize: 14
+ shadowReleasedColor: "#FF4304"
+ shadowPressedColor: "#B32D00"
+ releasedColor: "#FF6C3C"
+ pressedColor: "#FF4304"
+ text: qsTr("Cancel")
+ KeyNavigation.tab: passwordInput
+ onClicked: {
+ root.rejected()
+ root.close()
+ }
}
}
}
+
}
+
+
diff --git a/components/StandardButton.qml b/components/StandardButton.qml
index 5a088fbf..17f56c3d 100644
--- a/components/StandardButton.qml
+++ b/components/StandardButton.qml
@@ -41,6 +41,7 @@ Item {
property alias text: label.text
signal clicked()
+
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
@@ -51,6 +52,9 @@ Item {
parent.enabled ? (buttonArea.pressed ? parent.shadowPressedColor : parent.shadowReleasedColor)
: Qt.lighter(parent.shadowReleasedColor)
}
+ border.color: Qt.darker(parent.releasedColor)
+ border.width: parent.focus ? 1 : 0
+
}
Rectangle {
@@ -64,6 +68,8 @@ Item {
}
//radius: 4
+
+
}
Text {
@@ -92,4 +98,7 @@ Item {
anchors.fill: parent
onClicked: parent.clicked()
}
+
+ Keys.onSpacePressed: clicked()
+ Keys.onReturnPressed: clicked()
}
diff --git a/main.qml b/main.qml
index 6327f1c3..65968203 100644
--- a/main.qml
+++ b/main.qml
@@ -546,7 +546,7 @@ ApplicationWindow {
PasswordDialog {
id: passwordDialog
- standardButtons: StandardButton.Ok + StandardButton.Cancel
+
onAccepted: {
appWindow.currentWallet = null
appWindow.initialize();
@@ -555,9 +555,7 @@ ApplicationWindow {
//appWindow.enableUI(false)
rootItem.state = "wizard"
}
- onDiscard: {
- appWindow.enableUI(false)
- }
+
}
diff --git a/pages/Settings.qml b/pages/Settings.qml
index 34c53640..e144cccc 100644
--- a/pages/Settings.qml
+++ b/pages/Settings.qml
@@ -61,7 +61,7 @@ Rectangle {
PasswordDialog {
id: settingsPasswordDialog
- standardButtons: StandardButton.Ok + StandardButton.Cancel
+
onAccepted: {
if(appWindow.password === settingsPasswordDialog.password){
memoTextInput.text = currentWallet.seed
@@ -72,9 +72,7 @@ Rectangle {
onRejected: {
}
- onDiscard: {
- }
}