From 57a9508849f36c7cda513df98e478babbc3e6cb3 Mon Sep 17 00:00:00 2001
From: Sander Ferdinand
Date: Mon, 19 Mar 2018 02:42:46 +0100
Subject: [PATCH] Receive page; modified subaddress table
---
components/InputDialog.qml | 8 --
components/InputMulti.qml | 6 +-
components/LineEdit.qml | 2 +-
components/LineEditMulti.qml | 12 +-
components/SubaddressTable.qml | 91 ++++++++++---
pages/Receive.qml | 228 ++++++++++++---------------------
pages/Settings.qml | 6 +
7 files changed, 171 insertions(+), 182 deletions(-)
diff --git a/components/InputDialog.qml b/components/InputDialog.qml
index 8ab5b5d8..2990c5c9 100644
--- a/components/InputDialog.qml
+++ b/components/InputDialog.qml
@@ -150,10 +150,6 @@ Item {
id: cancelButton
width: 120
fontSize: 14
- shadowReleasedColor: "#FF4304"
- shadowPressedColor: "#B32D00"
- releasedColor: "#FF6C3C"
- pressedColor: "#FF4304"
text: qsTr("Cancel") + translationManager.emptyString
KeyNavigation.tab: input
onClicked: {
@@ -165,10 +161,6 @@ Item {
id: okButton
width: 120
fontSize: 14
- shadowReleasedColor: "#FF4304"
- shadowPressedColor: "#B32D00"
- releasedColor: "#FF6C3C"
- pressedColor: "#FF4304"
text: qsTr("Ok")
KeyNavigation.tab: cancelButton
onClicked: {
diff --git a/components/InputMulti.qml b/components/InputMulti.qml
index 2df797e2..f809ca10 100644
--- a/components/InputMulti.qml
+++ b/components/InputMulti.qml
@@ -36,13 +36,15 @@ TextArea {
property bool error: false
property bool addressValidation: false
property bool wrapAnywhere: true
+ property int fontSize: 18 * scaleRatio
id: textArea
- font.family: Style.fontRegular.name
- font.pixelSize: 18 * scaleRatio
+ font.family: Style.fontRegular
+ font.pixelSize: fontSize
font.bold: false
horizontalAlignment: TextInput.AlignLeft
selectByMouse: true
color: Style.defaultFontColor
+
wrapMode: {
if(wrapAnywhere){
return Text.WrapAnywhere;
diff --git a/components/LineEdit.qml b/components/LineEdit.qml
index f488790d..f5e8a478 100644
--- a/components/LineEdit.qml
+++ b/components/LineEdit.qml
@@ -131,7 +131,7 @@ Item {
id: inputItem
height: inputHeight * scaleRatio
anchors.top: showingHeader ? inputLabel.bottom : parent.top
- anchors.topMargin: showingHeader ? 12 * scaleRatio : 2
+ anchors.topMargin: showingHeader ? 12 * scaleRatio : 2 * scaleRatio
width: parent.width
Text {
diff --git a/components/LineEditMulti.qml b/components/LineEditMulti.qml
index 43d67602..02f281f3 100644
--- a/components/LineEditMulti.qml
+++ b/components/LineEditMulti.qml
@@ -32,6 +32,7 @@ import "." 1.0
ColumnLayout {
+ id: lineditmulti
property alias text: multiLine.text
property alias placeholderText: placeholderLabel.text
property alias inputLabelText: inputLabel.text
@@ -43,6 +44,10 @@ ColumnLayout {
property bool labelButtonVisible: false
property bool copyButton: false
property bool wrapAnywhere: true
+ property bool showingHeader: true
+ property bool showBorder: true
+ property int fontSize: 18 * scaleRatio
+
signal labelButtonClicked();
signal inputLabelLinkActivated();
@@ -52,6 +57,7 @@ ColumnLayout {
color: "transparent"
Layout.fillWidth: true
height: (inputLabel.height + 10) * scaleRatio
+ visible: showingHeader ? true : false
Text {
id: inputLabel
@@ -91,11 +97,12 @@ ColumnLayout {
id: multiLine
readOnly: false
addressValidation: true
- anchors.top: inputLabelRect.bottom
+ anchors.top: parent.showingHeader ? inputLabelRect.bottom : parent.top
Layout.fillWidth: true
- topPadding: 10 * scaleRatio
+ topPadding: parent.showingHeader ? 10 * scaleRatio : 0
bottomPadding: 10 * scaleRatio
wrapAnywhere: parent.wrapAnywhere
+ fontSize: parent.fontSize
Text {
id: placeholderLabel
@@ -125,6 +132,7 @@ ColumnLayout {
}
radius: 4
anchors.fill: parent
+ visible: lineditmulti.showBorder
}
}
}
diff --git a/components/SubaddressTable.qml b/components/SubaddressTable.qml
index 8d6b8d1d..a52ed1fe 100644
--- a/components/SubaddressTable.qml
+++ b/components/SubaddressTable.qml
@@ -28,40 +28,57 @@
import QtQuick 2.0
import moneroComponents.Clipboard 1.0
+import "." 1.0
ListView {
id: listView
clip: true
boundsBehavior: ListView.StopAtBounds
highlightMoveDuration: 0
+ highlightFollowsCurrentItem: true
+ anchors.topMargin: 0
+ spacing: 0
delegate: Rectangle {
id: delegate
- height: 64
+ height: 74
+ color: 'transparent';
+ anchors.topMargin: 0
width: listView.width
- LineEdit {
+ LineEditMulti {
id: addressLine
+ //borderDisabled: true
fontSize: 12
readOnly: true
width: parent.width
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
- anchors.margins: 5
+ anchors.leftMargin: 5
+ anchors.topMargin: 12
+ anchors.rightMargin: 40
+ anchors.bottomMargin: 0
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);
- }
+ showingHeader: false
+ 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);
}
+
+ anchors.right: parent.right
+ anchors.rightMargin: 0
+ anchors.verticalCenter: parent.verticalCenter
}
Text {
@@ -85,7 +102,7 @@ ListView {
font.family: "Arial"
font.bold: true
font.pixelSize: 12
- color: "#444444"
+ color: Style.greyFontColor
text: label
}
@@ -96,14 +113,46 @@ ListView {
anchors.bottom: parent.bottom
anchors.right: parent.right
anchors.rightMargin: clipboardButton.width
- onClicked: listView.currentIndex = index
+ cursorShape: Qt.PointingHandCursor
+ onClicked: {
+ listView.currentIndex = index;
+ }
+ }
+
+ Rectangle {
+ anchors.left: parent.left
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ width: 1
+ color: Style.grey
+ z: 6
+ }
+
+ Rectangle {
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ width: 1
+ color: Style.grey
+ z: 6
+ }
+
+ Rectangle {
+ anchors.right: parent.right
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ color: Style.grey
+ height: 1
+ z: 6
+ }
+
+ Rectangle {
+ width: 3
+ color: 'white'
+ visible: listView.currentIndex == index
+ anchors.left: parent.left
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
}
}
-
- highlight: Rectangle {
- height: 64
- color: '#FF4304'
- opacity: 0.2
- z: 2
- }
}
diff --git a/pages/Receive.qml b/pages/Receive.qml
index 18c5ef72..75504387 100644
--- a/pages/Receive.qml
+++ b/pages/Receive.qml
@@ -26,7 +26,7 @@
// 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 2.0
import QtQuick.Controls 2.2
import QtQuick.Controls.Styles 1.4
import QtQuick.Layouts 1.1
@@ -44,9 +44,6 @@ import moneroComponents.SubaddressModel 1.0
Rectangle {
id: pageReceive
color: "transparent"
- property alias addressText : addressLine.text
- property alias paymentIdText : paymentIdLine.text
- property alias integratedAddressText : integratedAddressLine.text
property var model
property var current_address
property alias addressText : pageReceive.current_address
@@ -156,26 +153,69 @@ Rectangle {
anchors.top: parent.top
anchors.right: parent.right
- spacing: 26 * scaleRatio
+ spacing: 20 * scaleRatio
property int labelWidth: 120 * scaleRatio
property int editWidth: 400 * scaleRatio
property int lineEditFontSize: 12 * scaleRatio
property int qrCodeSize: 240 * scaleRatio
+
ColumnLayout {
-<<<<<<< HEAD
id: addressRow
+ spacing: 0
Label {
id: addressLabel
text: qsTr("Addresses") + translationManager.emptyString
width: mainLayout.labelWidth
}
+ Rectangle {
+ id: header
+ Layout.fillWidth: true
+ Layout.topMargin: 10
+
+ height: 10
+ color: "#CC000000"
+
+ Rectangle {
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.rightMargin: 10
+ anchors.leftMargin: 10
+
+ height: 1
+ color: "#404040"
+ }
+
+ Image {
+ anchors.top: parent.top
+ anchors.left: parent.left
+
+ width: 10
+ height: 10
+
+ source: "../images/historyBorderRadius.png"
+ }
+
+ Image {
+ anchors.top: parent.top
+ anchors.right: parent.right
+
+ width: 10
+ height: 10
+
+ source: "../images/historyBorderRadius.png"
+ rotation: 90
+ }
+ }
+
Rectangle {
id: tableRect
Layout.fillWidth: true
- Layout.preferredHeight: 200
- color: "#FFFFFF"
+ Layout.preferredHeight: 240
+ color: "transparent"
+
Scroll {
id: flickableScroll
anchors.right: table.right
@@ -183,6 +223,7 @@ Rectangle {
anchors.bottom: table.bottom
flickable: table
}
+
SubaddressTable {
id: table
anchors.fill: parent
@@ -195,11 +236,10 @@ Rectangle {
RowLayout {
spacing: 20
+ Layout.topMargin: 20
+
StandardButton {
- shadowReleasedColor: "#FF4304"
- shadowPressedColor: "#B32D00"
- releasedColor: "#FF6C3C"
- pressedColor: "#FF4304"
+ small: true
text: qsTr("Create new address") + translationManager.emptyString;
onClicked: {
inputDialog.labelText = qsTr("Set the label of the new address:") + translationManager.emptyString
@@ -213,10 +253,7 @@ Rectangle {
}
}
StandardButton {
- shadowReleasedColor: "#FF4304"
- shadowPressedColor: "#B32D00"
- releasedColor: "#FF6C3C"
- pressedColor: "#FF4304"
+ small: true
enabled: table.currentIndex > 0
text: qsTr("Rename") + translationManager.emptyString;
onClicked: {
@@ -224,123 +261,42 @@ Rectangle {
inputDialog.inputText = appWindow.currentWallet.getSubaddressLabel(appWindow.currentWallet.currentSubaddressAccount, table.currentIndex)
inputDialog.onAcceptedCallback = function() {
appWindow.currentWallet.subaddress.setLabel(appWindow.currentWallet.currentSubaddressAccount, table.currentIndex, inputDialog.inputText)
-=======
- id: addressLineRow
-
- LineEditMulti {
- id: addressLine
- inputLabelText: qsTr("Address") + translationManager.emptyString
- placeholderText: qsTr("ReadOnly wallet address displayed here") + translationManager.emptyString;
- readOnly: true
- Layout.fillWidth: true
- copyButton: true
- }
- }
-
- GridLayout {
- id: paymentIdRow
- columns:2
-
- // @TODO: copy button copies the wrong input box
- LineEdit {
- id: paymentIdLine
- placeholderText: qsTr("16 hexadecimal characters") + translationManager.emptyString;
- readOnly: false
- onTextChanged: updatePaymentId(paymentIdLine.text)
- inlineButtonText: "Generate"
- inlineButton.onClicked: updatePaymentId()
- width: mainLayout.editWidth
- Layout.fillWidth: true
- copyButton: true
- labelText: qsTr("Payment ID") + qsTr("\
- ( help ) ")
- + translationManager.emptyString
- onLabelLinkActivated: {
- trackingHowToUseDialog.title = qsTr("Tracking payments") + translationManager.emptyString;
- trackingHowToUseDialog.text = qsTr(
- "This is a simple sales tracker:
" +
- "Click Generate to create a random payment id for a new customer
" +
- "Let your customer scan that QR code to make a payment (if that customer has software which " +
- "supports QR code scanning).
" +
- "This page will automatically scan the blockchain and the tx pool " +
- "for incoming transactions using this QR code. If you input an amount, it will also check " +
- "that incoming transactions total up to that amount.
" +
- "It's up to you whether to accept unconfirmed transactions or not. It is likely they'll be " +
- "confirmed in short order, but there is still a possibility they might not, so for larger " +
- "values you may want to wait for one or more confirmation(s).
"
- )
- trackingHowToUseDialog.icon = StandardIcon.Information
- trackingHowToUseDialog.open()
- }
- }
-
- // @TODO: CLEAR BUTTON should be present as labelButton
-// StandardButton {
-// id: clearPaymentId
-// enabled: !!paymentIdLine.text
-// shadowReleasedColor: "#FF4304"
-// shadowPressedColor: "#B32D00"
-// releasedColor: "#FF6C3C"
-// pressedColor: "#FF4304"
-// text: qsTr("Clear") + translationManager.emptyString;
-// onClicked: updatePaymentId("")
-// }
- }
-
- ColumnLayout {
- id: integratedAddressRow
-
- LineEditMulti {
- id: integratedAddressLine
- inputLabelText: qsTr("Integrated address") + translationManager.emptyString
- placeholderText: qsTr("Generate payment ID for integrated address") + translationManager.emptyString
- readOnly: true
- Layout.fillWidth: true
- copyButton: true
- }
- }
-
- GridLayout {
- columns: (isMobile)? 1 : 2
- Layout.fillWidth: true
- columnSpacing: 32
-
- ColumnLayout {
- Layout.fillWidth: true
-
- RowLayout {
- Layout.fillWidth: true
- Layout.minimumWidth: 200
- LineEdit {
- id: amountLine
- placeholderText: qsTr("Amount to receive") + translationManager.emptyString
- readOnly: false
- inlineIcon: true
- labelText: qsTr("Amount")
- Layout.fillWidth: true
- validator: DoubleValidator {
- bottom: 0.0
- top: 18446744.073709551615
- decimals: 12
- notation: DoubleValidator.StandardNotation
- locale: "C"
->>>>>>> Receive page development
}
inputDialog.onRejectedCallback = null;
inputDialog.open()
}
}
}
- ColumnLayout {
+ }
+
+ ColumnLayout {
+ id: amountRow
+ Label {
+ id: amountLabel
+ text: qsTr("Amount") + translationManager.emptyString
+ width: mainLayout.labelWidth
+ }
+
+
+ LineEdit {
+ id: amountLine
+ placeholderText: qsTr("Amount to receive") + translationManager.emptyString
+ readOnly: false
+ width: mainLayout.editWidth
Layout.fillWidth: true
+ validator: DoubleValidator {
+ bottom: 0.0
+ top: 18446744.073709551615
+ decimals: 12
+ notation: DoubleValidator.StandardNotation
+ locale: "C"
+ }
}
}
- RowLayout {
+ ColumnLayout {
id: trackingRow
- Layout.fillWidth: true
visible: !isAndroid && !isIOS
-<<<<<<< HEAD
Label {
id: trackingLabel
textFormat: Text.RichText
@@ -368,41 +324,17 @@ Rectangle {
trackingHowToUseDialog.open()
}
}
-=======
->>>>>>> Receive page development
TextEdit {
id: trackingLine
- anchors.top: trackingRow.top
- horizontalAlignment: TextInput.AlignLeft
+ readOnly: true
+ width: mainLayout.editWidth
Layout.fillWidth: true
textFormat: Text.RichText
text: ""
- readOnly: true
selectByMouse: true
- color: Style.defaultFontColor
- font.family: Style.fontRegular.name
- font.pixelSize: 16 * scaleRatio
- leftPadding: 12 * scaleRatio
- rightPadding: 12 * scaleRatio
- topPadding: 8 * scaleRatio
- bottomPadding: 8 * scaleRatio
-
- Rectangle {
- color: "transparent"
- border.width: 1
- border.color: {
- if(trackingLine.activeFocus){
- return Qt.rgba(255, 255, 255, 0.35);
- } else {
- return Qt.rgba(255, 255, 255, 0.25);
- }
- }
- radius: 4
- anchors.fill: parent
- }
+ color: 'white'
}
-
}
MessageDialog {
diff --git a/pages/Settings.qml b/pages/Settings.qml
index c0a152a8..c56e6e0c 100644
--- a/pages/Settings.qml
+++ b/pages/Settings.qml
@@ -574,17 +574,20 @@ Rectangle {
TextBlock {
Layout.topMargin: 8
+ font.pixelSize: 14
Layout.fillWidth: true
text: qsTr("GUI version: ") + Version.GUI_VERSION + translationManager.emptyString
}
TextBlock {
id: guiMoneroVersion
Layout.fillWidth: true
+ font.pixelSize: 14
text: qsTr("Embedded Monero version: ") + Version.GUI_MONERO_VERSION + translationManager.emptyString
}
TextBlock {
id: restoreHeightText
Layout.fillWidth: true
+ font.pixelSize: 14
textFormat: Text.RichText
property var txt: "" + qsTr("Wallet creation height: ") + (currentWallet ? currentWallet.walletCreationHeight : "") + translationManager.emptyString
property var linkTxt: qsTr(" (Click to change)") + translationManager.emptyString
@@ -652,14 +655,17 @@ Rectangle {
TextBlock {
Layout.fillWidth: true
+ font.pixelSize: 14
text: (!currentWallet) ? "" : qsTr("Wallet log path: ") + currentWallet.walletLogPath + translationManager.emptyString
}
TextBlock {
Layout.fillWidth: true
+ font.pixelSize: 14
text: qsTr("Wallet Name: ") + walletName + translationManager.emptyString
}
TextBlock {
Layout.fillWidth: true
+ font.pixelSize: 14
text: (!currentWallet) ? "" : qsTr("Daemon log path: ") + currentWallet.daemonLogPath + translationManager.emptyString
}
}