Permalink
Browse files

Merge pull request #1807

6fa805d qrscanner: update addressbook and transfer UI (mmbyday)
  • Loading branch information...
luigi1111 committed Feb 6, 2019
2 parents c7f3deb + 6fa805d commit b4e19cb3e857481878751bd491e601b31311de72
@@ -42,6 +42,7 @@ Item {
property string textColor: "#FFFFFF"
property int fontSize: 12 * scaleRatio
property alias text: inlineText.text
property alias buttonColor: rect.color
signal clicked()

function doClick() {
@@ -55,7 +56,7 @@ Item {
color: MoneroComponents.Style.buttonBackgroundColorDisabled
border.color: "black"
height: 28 * scaleRatio
width: inlineText.width + 22 * scaleRatio
width: inlineText.text ? (inlineText.width + 22) * scaleRatio : inlineButton.icon ? (inlineImage.width + 16) * scaleRatio : rect.height
radius: 4

anchors.top: parent.top
@@ -71,19 +72,26 @@ Item {
anchors.horizontalCenter: parent.horizontalCenter
}

Image {
id: inlineImage
visible: inlineButton.icon !== ""
anchors.centerIn: parent
source: inlineButton.icon
}

MouseArea {
id: buttonArea
cursorShape: rect.enabled ? Qt.PointingHandCursor : Qt.ArrowCursor
hoverEnabled: true
anchors.fill: parent
onClicked: doClick()
onEntered: {
rect.color = "#707070";
rect.color = buttonColor ? buttonColor : "#707070";
rect.opacity = 0.8;
}
onExited: {
rect.opacity = 1.0;
rect.color = "#808080";
rect.color = buttonColor ? buttonColor : "#808080";
}
}
}
@@ -83,6 +83,9 @@ ColumnLayout {
property alias addressValidation: input.addressValidation
property string backgroundColor: "" // mock

property alias inlineButton: inlineButtonId
property bool inlineButtonVisible: false

signal labelButtonClicked();
signal inputLabelLinkActivated();
signal editingFinished();
@@ -183,5 +186,14 @@ ColumnLayout {
anchors.fill: parent
visible: !item.borderDisabled
}

MoneroComponents.InlineButton {
id: inlineButtonId
visible: (inlineButtonId.text || inlineButtonId.icon) && inlineButtonVisible ? true : false
anchors.right: parent.right
anchors.rightMargin: 8 * scaleRatio
anchors.top: parent.top
anchors.topMargin: 4 * scaleRatio
}
}
}
BIN +2.51 KB images/qr.png
Binary file not shown.
BIN +5.26 KB images/qr@2x.png
Binary file not shown.
@@ -28,14 +28,16 @@

import QtQuick 2.0
import QtQuick.Layouts 1.1
import "../components"
import "../components" as MoneroComponents
import moneroComponents.AddressBook 1.0
import moneroComponents.AddressBookModel 1.0
import moneroComponents.Clipboard 1.0

ColumnLayout {
id: root
property var model
property bool selectAndSend: false
Clipboard { id: clipboard }

ColumnLayout {
Layout.margins: (isMobile ? 17 : 20) * scaleRatio
@@ -44,44 +46,37 @@ ColumnLayout {
spacing: 26 * scaleRatio
visible: !root.selectAndSend

RowLayout {
StandardButton {
id: qrfinderButton
text: qsTr("Qr Code") + translationManager.emptyString
visible : appWindow.qrScannerEnabled
enabled : visible
width: visible ? 60 * scaleRatio : 0
onClicked: {
cameraUi.state = "Capture"
cameraUi.qrcode_decoded.connect(updateFromQrCode)
}
}

LineEditMulti {
Layout.fillWidth: true;
id: addressLine
labelText: qsTr("Address") + translationManager.emptyString
error: true;
placeholderText: qsTr("4.. / 8..") + translationManager.emptyString
wrapMode: Text.WrapAnywhere
addressValidation: true
MoneroComponents.LineEditMulti {
id: addressLine
Layout.fillWidth: true
fontBold: true
labelText: qsTr("Address") + translationManager.emptyString
placeholderText: qsTr("4.. / 8..") + translationManager.emptyString
wrapMode: Text.WrapAnywhere
addressValidation: true
inlineButton.icon: "../images/qr.png"
inlineButton.buttonColor: MoneroComponents.Style.orange
inlineButton.onClicked: {
cameraUi.state = "Capture"
cameraUi.qrcode_decoded.connect(updateFromQrCode)
}
inlineButtonVisible : appWindow.qrScannerEnabled && !addressLine.text
}

LineEditMulti {
MoneroComponents.LineEditMulti {
id: paymentIdLine
visible: appWindow.persistentSettings.showPid
Layout.fillWidth: true;
Layout.fillWidth: true
labelText: qsTr("Payment ID <font size='2'>(Optional)</font>") + translationManager.emptyString
placeholderText: qsTr("Paste 64 hexadecimal characters") + translationManager.emptyString
wrapMode: Text.WrapAnywhere
// tipText: qsTr("<b>Payment ID</b><br/><br/>A unique user name used in<br/>the address book. It is not a<br/>transfer of information sent<br/>during the transfer")
// + translationManager.emptyString
}

LineEditMulti {
MoneroComponents.LineEditMulti {
id: descriptionLine
Layout.fillWidth: true;
Layout.fillWidth: true
labelText: qsTr("Description <font size='2'>(Optional)</font>") + translationManager.emptyString
placeholderText: qsTr("Give this entry a name or description") + translationManager.emptyString
wrapMode: Text.WrapAnywhere
@@ -91,7 +86,7 @@ ColumnLayout {
RowLayout {
id: addButton
Layout.bottomMargin: 17 * scaleRatio
StandardButton {
MoneroComponents.StandardButton {
text: qsTr("Add") + translationManager.emptyString
enabled: checkInformation(addressLine.text, paymentIdLine.text, appWindow.persistentSettings.nettype)

@@ -129,16 +124,16 @@ ColumnLayout {
NumberAnimation { duration: 200; easing.type: Easing.InQuad }
}

Scroll {
MoneroComponents.Scroll {
id: flickableScroll
anchors.right: table.right
anchors.rightMargin: -14
anchors.rightMargin: -14 * scaleRatio
anchors.top: table.top
anchors.bottom: table.bottom
flickable: table
}

AddressBookTable {
MoneroComponents.AddressBookTable {
id: table
anchors.left: parent.left
anchors.right: parent.right
@@ -179,7 +174,6 @@ ColumnLayout {
console.log("updateFromQrCode")
addressLine.text = address
paymentIdLine.text = payment_id
//amountLine.text = amount
descriptionLine.text = recipient_name + " " + tx_description
cameraUi.qrcode_decoded.disconnect(updateFromQrCode)
}
@@ -168,7 +168,7 @@ Rectangle {
Layout.topMargin: 12 * scaleRatio
text: qsTr("Transaction priority") + translationManager.emptyString
fontBold: false
fontSize: 16
fontSize: 16 * scaleRatio
}
// Note: workaround for translations in listElements
// ListElement: cannot use script for property value, so
@@ -235,24 +235,19 @@ Rectangle {
addressLine.text = clipboardText;
}
}
}

StandardButton {
id: qrfinderButton
text: qsTr("QR Code") + translationManager.emptyString
visible : appWindow.qrScannerEnabled
enabled : visible
width: visible ? 60 * scaleRatio : 0
onClicked: {
inlineButton.icon: "../images/qr.png"
inlineButton.buttonColor: MoneroComponents.Style.orange
inlineButton.onClicked: {
cameraUi.state = "Capture"
cameraUi.qrcode_decoded.connect(updateFromQrCode)
}
inlineButtonVisible : appWindow.qrScannerEnabled && !addressLine.text
}
}

StandardButton {
id: resolveButton
width: 80
width: 80 * scaleRatio
text: qsTr("Resolve") + translationManager.emptyString
visible: TxUtils.isValidOpenAliasAddress(addressLine.text)
enabled : visible
@@ -213,6 +213,8 @@
<file>components/RadioButton.qml</file>
<file>images/editIcon.png</file>
<file>images/editIcon@2x.png</file>
<file>images/qr.png</file>
<file>images/qr@2x.png</file>
<file>pages/settings/Settings.qml</file>
<file>pages/settings/SettingsWallet.qml</file>
<file>pages/settings/SettingsNode.qml</file>

0 comments on commit b4e19cb

Please sign in to comment.