Merge pull request #1807

6fa805d qrscanner: update addressbook and transfer UI (mmbyday)
This commit is contained in:
luigi1111 2019-02-06 15:59:10 -06:00
commit b4e19cb3e8
No known key found for this signature in database
GPG key ID: F4ACA0183641E010
7 changed files with 56 additions and 45 deletions

View file

@ -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,6 +72,13 @@ 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
@ -78,12 +86,12 @@ Item {
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";
}
}
}

View file

@ -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
images/qr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
images/qr@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View file

@ -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,34 +46,27 @@ 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
@ -79,9 +74,9 @@ ColumnLayout {
// + 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)
}

View file

@ -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

View file

@ -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>