aboutsummaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorkenshi84 <kenshi84@protonmail.ch>2017-07-04 12:34:09 +0900
committerkenshi84 <kenshi84@protonmail.ch>2018-01-13 14:37:07 +0900
commitcee0474e375a70d55200209bfa2387fd5242dd8f (patch)
tree66c029e1bda47e02c01de77180b0579a06fc7bd8 /components
parent3b069ec04908f76b8244a96124ce9619c0b0300d (diff)
downloadmonzero-gui-cee0474e375a70d55200209bfa2387fd5242dd8f.tar.gz
monzero-gui-cee0474e375a70d55200209bfa2387fd5242dd8f.tar.xz
monzero-gui-cee0474e375a70d55200209bfa2387fd5242dd8f.zip
Subaddresses minimal version: supports default account only
Diffstat (limited to 'components')
-rw-r--r--components/HistoryTable.qml39
-rw-r--r--components/IconButton.qml4
-rw-r--r--components/InputDialog.qml181
-rw-r--r--components/LineEdit.qml2
-rw-r--r--components/SubaddressTable.qml109
5 files changed, 334 insertions, 1 deletions
diff --git a/components/HistoryTable.qml b/components/HistoryTable.qml
index ba3971b5..633998ee 100644
--- a/components/HistoryTable.qml
+++ b/components/HistoryTable.qml
@@ -266,6 +266,45 @@ ListView {
}
}
+ Item { //separator
+ width: 100
+ height: 14
+ }
+ // -- "Received by" title
+ Text {
+ anchors.bottom: parent.bottom
+ font.family: "Arial"
+ font.pixelSize: 12
+ color: "#535353"
+ text: (isOut ? qsTr("Spent from:") : qsTr("Received by:")) + translationManager.emptyString
+ }
+ Item { //separator
+ width: 5
+ height: 14
+ }
+ // -- "Index" value
+ Text {
+ anchors.bottom: parent.bottom
+ font.family: "Arial"
+ font.pixelSize: 13
+ font.bold: true
+ color: "#545454"
+ text: "#" + subaddrIndex
+ }
+ Item { //separator
+ width: 5
+ height: 14
+ }
+ // -- "Label" value
+ Text {
+ anchors.bottom: parent.bottom
+ font.family: "Arial"
+ font.pixelSize: 13
+ color: "#545454"
+ text: label
+ elide: Text.ElideRight
+ width: detailsButton.x - x - 30
+ }
}
// -- "Date", "Balance" and "Amound" section
diff --git a/components/IconButton.qml b/components/IconButton.qml
index 042439f1..d927e296 100644
--- a/components/IconButton.qml
+++ b/components/IconButton.qml
@@ -30,6 +30,7 @@
import QtQuick 2.0
Item {
+ property alias image : buttonImage
property alias imageSource : buttonImage.source
signal clicked(var mouse)
@@ -53,7 +54,8 @@ Item {
MouseArea {
id: buttonArea
anchors.fill: parent
-
+ hoverEnabled: true
+ cursorShape: Qt.PointingHandCursor
onPressed: {
buttonImage.x = buttonImage.x + 2
diff --git a/components/InputDialog.qml b/components/InputDialog.qml
new file mode 100644
index 00000000..8ab5b5d8
--- /dev/null
+++ b/components/InputDialog.qml
@@ -0,0 +1,181 @@
+// 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.0
+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" as MoneroComponents
+
+Item {
+ id: root
+ visible: false
+ Rectangle {
+ id: bg
+ z: parent.z + 1
+ anchors.fill: parent
+ color: "white"
+ opacity: 0.9
+ }
+
+ property alias labelText: label.text
+ property alias inputText: input.text
+
+ // same signals as Dialog has
+ signal accepted()
+ signal rejected()
+
+ function open() {
+ leftPanel.enabled = false
+ middlePanel.enabled = false
+ titleBar.enabled = false
+ show()
+ root.visible = true;
+ input.focus = true;
+ input.text = "";
+ }
+
+ function close() {
+ leftPanel.enabled = true
+ middlePanel.enabled = true
+ titleBar.enabled = true
+ root.visible = false;
+ }
+
+ ColumnLayout {
+ z: bg.z + 1
+ id: mainLayout
+ spacing: 10
+ anchors { fill: parent; margins: 35 }
+
+ ColumnLayout {
+ id: column
+ //anchors {fill: parent; margins: 16 }
+ Layout.alignment: Qt.AlignHCenter
+
+ Label {
+ id: label
+ Layout.alignment: Qt.AlignHCenter
+ // Layout.columnSpan: 2
+ Layout.fillWidth: true
+ horizontalAlignment: Text.AlignHCenter
+ font.pixelSize: 18 * scaleRatio
+ font.family: "Arial"
+ color: "#555555"
+ }
+
+ TextField {
+ id : input
+ focus: true
+ Layout.fillWidth: true
+ Layout.alignment: Qt.AlignHCenter
+ horizontalAlignment: TextInput.AlignHCenter
+ verticalAlignment: TextInput.AlignVCenter
+ font.family: "Arial"
+ font.pixelSize: 32 * scaleRatio
+ // 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.close()
+ root.accepted()
+ }
+ Keys.onEscapePressed: {
+ root.close()
+ root.rejected()
+ }
+ }
+ // 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
+
+ MoneroComponents.StandardButton {
+ id: cancelButton
+ width: 120
+ fontSize: 14
+ shadowReleasedColor: "#FF4304"
+ shadowPressedColor: "#B32D00"
+ releasedColor: "#FF6C3C"
+ pressedColor: "#FF4304"
+ text: qsTr("Cancel") + translationManager.emptyString
+ KeyNavigation.tab: input
+ onClicked: {
+ root.close()
+ root.rejected()
+ }
+ }
+ MoneroComponents.StandardButton {
+ id: okButton
+ width: 120
+ fontSize: 14
+ shadowReleasedColor: "#FF4304"
+ shadowPressedColor: "#B32D00"
+ releasedColor: "#FF6C3C"
+ pressedColor: "#FF4304"
+ text: qsTr("Ok")
+ KeyNavigation.tab: cancelButton
+ onClicked: {
+ root.close()
+ root.accepted()
+ }
+ }
+ }
+ }
+}
diff --git a/components/LineEdit.qml b/components/LineEdit.qml
index f7cb0612..4e34f241 100644
--- a/components/LineEdit.qml
+++ b/components/LineEdit.qml
@@ -37,6 +37,7 @@ Item {
property alias cursorPosition: input.cursorPosition
property alias echoMode: input.echoMode
property int fontSize: 18 * scaleRatio
+ property bool showBorder: true
property bool error: false
signal editingFinished()
signal accepted();
@@ -52,6 +53,7 @@ Item {
}
Rectangle {
+ visible: showBorder
anchors.fill: parent
anchors.bottomMargin: 1 * scaleRatio
color: "#DBDBDB"
diff --git a/components/SubaddressTable.qml b/components/SubaddressTable.qml
new file mode 100644
index 00000000..8d6b8d1d
--- /dev/null
+++ b/components/SubaddressTable.qml
@@ -0,0 +1,109 @@
+// 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.0
+import moneroComponents.Clipboard 1.0
+
+ListView {
+ id: listView
+ clip: true
+ boundsBehavior: ListView.StopAtBounds
+ highlightMoveDuration: 0
+
+ delegate: Rectangle {
+ id: delegate
+ height: 64
+ width: listView.width
+
+ LineEdit {
+ id: addressLine
+ fontSize: 12
+ readOnly: true
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: 5
+ onTextChanged: cursorPosition = 0
+ text: address
+ showBorder: false
+
+ IconButton {
+ id: clipboardButton
+ imageSource: "../images/copyToClipboard.png"
+ onClicked: {
+ console.log(addressLine.text + " copied to clipboard");
+ clipboard.setText(addressLine.text);
+ appWindow.showStatusMessage(qsTr("Address copied to clipboard"),3);
+ }
+ }
+ }
+
+ Text {
+ id: indexText
+ anchors.top: addressLine.bottom
+ anchors.left: parent.left
+ anchors.leftMargin: 20
+ font.family: "Arial"
+ font.bold: true
+ font.pixelSize: 12
+ color: "#444444"
+ text: "#" + index
+ }
+
+ Text {
+ id: labelText
+ anchors.top: addressLine.bottom
+ anchors.left: indexText.right
+ anchors.right: parent.right
+ anchors.leftMargin: 10
+ font.family: "Arial"
+ font.bold: true
+ font.pixelSize: 12
+ color: "#444444"
+ text: label
+ }
+
+ MouseArea {
+ z: 5
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ anchors.right: parent.right
+ anchors.rightMargin: clipboardButton.width
+ onClicked: listView.currentIndex = index
+ }
+ }
+
+ highlight: Rectangle {
+ height: 64
+ color: '#FF4304'
+ opacity: 0.2
+ z: 2
+ }
+}