aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSander Ferdinand <sa.ferdinand@gmail.com>2018-04-25 21:43:01 +0200
committerSander Ferdinand <sa.ferdinand@gmail.com>2018-05-03 12:35:34 +0200
commit5a1952f7ac5a8b3faed076494067ea638f2bd810 (patch)
tree0232df70b07d2d2b3c2ea0a4c0de0144d14abc72
parent7cea1343521de6e0f70f087f15707f467819b0ad (diff)
downloadmonzero-gui-5a1952f7ac5a8b3faed076494067ea638f2bd810.tar.gz
monzero-gui-5a1952f7ac5a8b3faed076494067ea638f2bd810.tar.xz
monzero-gui-5a1952f7ac5a8b3faed076494067ea638f2bd810.zip
Reordered QR/Tracking sections on the receive page
-rw-r--r--pages/Receive.qml241
1 files changed, 146 insertions, 95 deletions
diff --git a/pages/Receive.qml b/pages/Receive.qml
index a67e2124..e1f73b77 100644
--- a/pages/Receive.qml
+++ b/pages/Receive.qml
@@ -73,7 +73,7 @@ Rectangle {
function update() {
if (!appWindow.currentWallet || !trackingEnabled.checked) {
- setTrackingLineText("-")
+ setTrackingLineText("")
return
}
if (appWindow.currentWallet.connected() == Wallet.ConnectionStatus_Disconnected) {
@@ -156,7 +156,7 @@ Rectangle {
property int labelWidth: 120 * scaleRatio
property int editWidth: 400 * scaleRatio
property int lineEditFontSize: 12 * scaleRatio
- property int qrCodeSize: 240 * scaleRatio
+ property int qrCodeSize: 220 * scaleRatio
ColumnLayout {
id: addressRow
@@ -252,6 +252,7 @@ Rectangle {
inputDialog.open()
}
}
+
StandardButton {
small: true
enabled: table.currentIndex > 0
@@ -269,76 +270,155 @@ Rectangle {
}
}
- ColumnLayout {
- id: amountRow
- Label {
- id: amountLabel
- text: qsTr("Amount") + translationManager.emptyString
- width: mainLayout.labelWidth
- }
-
+ GridLayout {
+ columns: (isMobile)? 1 : 2
+ Layout.fillWidth: true
+ columnSpacing: 32 * scaleRatio
- LineEdit {
- id: amountLine
- placeholderText: qsTr("Amount to receive") + translationManager.emptyString
- readOnly: false
- width: mainLayout.editWidth
+ ColumnLayout {
+ Layout.alignment: Qt.AlignTop
Layout.fillWidth: true
- validator: DoubleValidator {
- bottom: 0.0
- top: 18446744.073709551615
- decimals: 12
- notation: DoubleValidator.StandardNotation
- locale: "C"
+ spacing: 20 * scaleRatio
+
+ LabelSubheader {
+ Layout.fillWidth: true
+ textFormat: Text.RichText
+ text: "<style type='text/css'>a {text-decoration: none; color: #FF6C3C; font-size: 14px;}</style>" +
+ qsTr("QR Code") +
+ "<font size='2'> </font><a href='#'>" +
+ qsTr("Help") + "</a>" +
+ translationManager.emptyString
+ onLinkActivated: {
+ trackingHowToUseDialog.title = qsTr("QR Code") + translationManager.emptyString;
+ trackingHowToUseDialog.text = qsTr(
+ "<p>This QR code includes the address you selected above and" +
+ "the amount you entered below. Share it with others (right-click->Save) " +
+ "so they can more easily send you exact amounts.</p>"
+ )
+ trackingHowToUseDialog.icon = StandardIcon.Information
+ trackingHowToUseDialog.open()
+ }
}
- }
- }
- ColumnLayout {
- id: trackingRow
- visible: !isAndroid && !isIOS
- Label {
- id: trackingLabel
- textFormat: Text.RichText
- text: "<style type='text/css'>a {text-decoration: none; color: #FF6C3C; font-size: 14px;}</style>" +
- qsTr("Tracking") +
- "<font size='2'> (</font><a href='#'>" +
- qsTr("help") +
- "</a><font size='2'>)</font>" +
- translationManager.emptyString
- width: mainLayout.labelWidth
- onLinkActivated: {
- trackingHowToUseDialog.title = qsTr("Tracking payments") + translationManager.emptyString;
- trackingHowToUseDialog.text = qsTr(
- "<p><font size='+2'>This is a simple sales tracker:</font></p>" +
- "<p>Let your customer scan that QR code to make a payment (if that customer has software which " +
- "supports QR code scanning).</p>" +
- "<p>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.</p>" +
- "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).</p>"
- )
- trackingHowToUseDialog.icon = StandardIcon.Information
- trackingHowToUseDialog.open()
+ ColumnLayout {
+ id: amountRow
+
+ Layout.fillWidth: true
+ Layout.minimumWidth: 200
+
+ LineEdit {
+ id: amountLine
+ Layout.fillWidth: true
+ labelText: qsTr("Amount") + translationManager.emptyString
+ placeholderText: qsTr("Amount to receive") + translationManager.emptyString
+ fontBold: true
+ inlineIcon: true
+ validator: DoubleValidator {
+ bottom: 0.0
+ top: 18446744.073709551615
+ decimals: 12
+ notation: DoubleValidator.StandardNotation
+ locale: "C"
+ }
+ }
}
- }
- CheckBox {
- id: trackingEnabled
- text: qsTr("Enable") + translationManager.emptyString
+ Rectangle {
+ color: "white"
+ Layout.topMargin: parent.spacing
+ Layout.fillWidth: true
+ Layout.maximumWidth: mainLayout.qrCodeSize
+ Layout.preferredHeight: width
+ radius: 4
+
+ Image {
+ id: qrCode
+ anchors.fill: parent
+ anchors.margins: 6
+
+ smooth: false
+ fillMode: Image.PreserveAspectFit
+ source: "image://qrcode/" + makeQRCodeString()
+ MouseArea {
+ anchors.fill: parent
+ acceptedButtons: Qt.RightButton
+ onClicked: {
+ if (mouse.button == Qt.RightButton)
+ qrMenu.open()
+ }
+ onPressAndHold: qrFileDialog.open()
+ }
+ }
+
+ Menu {
+ id: qrMenu
+ title: "QrCode"
+ y: parent.height / 2
+
+ MenuItem {
+ text: qsTr("Save As") + translationManager.emptyString;
+ onTriggered: qrFileDialog.open()
+ }
+ }
+ }
}
- TextEdit {
- id: trackingLine
- readOnly: true
- width: mainLayout.editWidth
+ ColumnLayout {
+ id: trackingRow
+ Layout.alignment: Qt.AlignTop
Layout.fillWidth: true
- textFormat: Text.RichText
- text: ""
- selectByMouse: true
- color: 'white'
+ spacing: 32 * scaleRatio
+
+ LabelSubheader {
+ Layout.fillWidth: true
+ textFormat: Text.RichText
+ text: "<style type='text/css'>a {text-decoration: none; color: #FF6C3C; font-size: 14px;}</style>" +
+ qsTr("Tracking") +
+ "<font size='2'> </font><a href='#'>" +
+ qsTr("Help") + "</a>" +
+ translationManager.emptyString
+ onLinkActivated: {
+ trackingHowToUseDialog.title = qsTr("Tracking payments") + translationManager.emptyString;
+ trackingHowToUseDialog.text = qsTr(
+ "<p><font size='+2'>This is a simple sales tracker:</font></p>" +
+ "<p>Let your customer scan that QR code to make a payment (if that customer has software which " +
+ "supports QR code scanning).</p>" +
+ "<p>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.</p>" +
+ "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).</p>"
+ )
+ trackingHowToUseDialog.icon = StandardIcon.Information
+ trackingHowToUseDialog.open()
+ }
+ }
+
+ RowLayout {
+ Layout.fillWidth: true
+ Layout.minimumWidth: 200
+
+ CheckBox {
+ id: trackingEnabled
+ text: qsTr("Enable") + translationManager.emptyString
+ }
+ }
+
+ RowLayout {
+ Layout.fillWidth: true
+ Layout.minimumWidth: 200
+
+ TextEdit {
+ id: trackingLine
+ readOnly: true
+ Layout.fillWidth: true
+ textFormat: Text.RichText
+ text: ""
+ selectByMouse: true
+ color: 'white'
+ }
+ }
}
}
@@ -352,46 +432,17 @@ Rectangle {
title: "Please choose a name"
folder: shortcuts.pictures
selectExisting: false
- nameFilters: [ "Image (*.png)"]
+ nameFilters: ["Image (*.png)"]
onAccepted: {
- if( ! walletManager.saveQrCode(makeQRCodeString(), walletManager.urlToLocalPath(fileUrl))) {
+ if(!walletManager.saveQrCode(makeQRCodeString(), walletManager.urlToLocalPath(fileUrl))) {
console.log("Failed to save QrCode to file " + walletManager.urlToLocalPath(fileUrl) )
- trackingHowToUseDialog.title = qsTr("Save QrCode") + translationManager.emptyString;
+ trackingHowToUseDialog.title = qsTr("Save QrCode") + translationManager.emptyString;
trackingHowToUseDialog.text = qsTr("Failed to save QrCode to ") + walletManager.urlToLocalPath(fileUrl) + translationManager.emptyString;
trackingHowToUseDialog.icon = StandardIcon.Error
trackingHowToUseDialog.open()
}
}
}
- ColumnLayout {
- Menu {
- id: qrMenu
- title: "QrCode"
- MenuItem {
- text: qsTr("Save As") + translationManager.emptyString;
- onTriggered: qrFileDialog.open()
- }
- }
-
- Image {
- id: qrCode
- anchors.margins: 50 * scaleRatio
- Layout.fillWidth: true
- Layout.minimumHeight: mainLayout.qrCodeSize
- smooth: false
- fillMode: Image.PreserveAspectFit
- source: "image://qrcode/" + makeQRCodeString()
- MouseArea {
- anchors.fill: parent
- acceptedButtons: Qt.RightButton
- onClicked: {
- if (mouse.button == Qt.RightButton)
- qrMenu.popup()
- }
- onPressAndHold: qrFileDialog.open()
- }
- }
- }
}
Timer {