forked from Public/monero-gui
Transfer - mobile redesign
This commit is contained in:
@@ -71,10 +71,10 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function updateMixin() {
|
function updateMixin() {
|
||||||
var fillLevel = privacyLevelItem.fillLevel
|
var fillLevel = (isMobile) ? privacyLevelItemSmall.fillLevel : privacyLevelItem.fillLevel
|
||||||
var mixin = scaleValueToMixinCount(fillLevel)
|
var mixin = scaleValueToMixinCount(fillLevel)
|
||||||
print ("PrivacyLevel changed:" + fillLevel)
|
console.log("PrivacyLevel changed:" + fillLevel)
|
||||||
print ("mixin count: " + mixin)
|
console.log("mixin count: " + mixin)
|
||||||
privacyLabel.text = qsTr("Privacy level (ringsize %1)").arg(mixin+1) + translationManager.emptyString
|
privacyLabel.text = qsTr("Privacy level (ringsize %1)").arg(mixin+1) + translationManager.emptyString
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,297 +107,226 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
ColumnLayout {
|
||||||
id: pageRoot
|
id: pageRoot
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.topMargin: 20
|
anchors.margins: 17 * scaleRatio
|
||||||
height: 400
|
spacing: 0
|
||||||
|
|
||||||
Label {
|
GridLayout {
|
||||||
id: amountLabel
|
columns: (isMobile)? 1 : 2
|
||||||
anchors.left: parent.left
|
Layout.fillWidth: true
|
||||||
anchors.top: parent.top
|
|
||||||
anchors.leftMargin: 17
|
|
||||||
anchors.rightMargin: 17
|
|
||||||
anchors.topMargin: 17
|
|
||||||
text: qsTr("Amount") + translationManager.emptyString
|
|
||||||
fontSize: 14
|
|
||||||
}
|
|
||||||
|
|
||||||
Label {
|
ColumnLayout {
|
||||||
id: transactionPriority
|
Layout.fillWidth: true
|
||||||
anchors.top: parent.top
|
Label {
|
||||||
anchors.topMargin: 17
|
id: amountLabel
|
||||||
fontSize: 14
|
text: qsTr("Amount") + translationManager.emptyString
|
||||||
x: (parent.width - 17) / 2 + 17
|
}
|
||||||
text: qsTr("Transaction priority") + translationManager.emptyString
|
|
||||||
}
|
RowLayout {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
id: amountRow
|
||||||
|
Layout.minimumWidth: 200
|
||||||
|
Item {
|
||||||
|
visible: !isMobile
|
||||||
|
width: 37 * scaleRatio
|
||||||
|
height: 37 * scaleRatio
|
||||||
|
|
||||||
|
Image {
|
||||||
|
anchors.centerIn: parent
|
||||||
|
source: "../images/moneroIcon.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Amount input
|
||||||
|
LineEdit {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
id: amountLine
|
||||||
|
placeholderText: qsTr("") + translationManager.emptyString
|
||||||
|
width:100
|
||||||
|
validator: DoubleValidator {
|
||||||
|
bottom: 0.0
|
||||||
|
top: 18446744.073709551615
|
||||||
|
decimals: 12
|
||||||
|
notation: DoubleValidator.StandardNotation
|
||||||
|
locale: "C"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
StandardButton {
|
||||||
|
id: amountAllButton
|
||||||
|
width: 60 * scaleRatio
|
||||||
|
text: qsTr("All") + translationManager.emptyString
|
||||||
|
shadowReleasedColor: "#FF4304"
|
||||||
|
shadowPressedColor: "#B32D00"
|
||||||
|
releasedColor: "#FF6C3C"
|
||||||
|
pressedColor: "#FF4304"
|
||||||
|
enabled : true
|
||||||
|
onClicked: amountLine.text = "(all)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Row {
|
}
|
||||||
id: amountRow
|
|
||||||
anchors.top: amountLabel.bottom
|
|
||||||
anchors.topMargin: 5
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.leftMargin: 7
|
|
||||||
width: (parent.width - 17) / 2 + 10
|
|
||||||
Item {
|
|
||||||
width: 37
|
|
||||||
height: 37
|
|
||||||
|
|
||||||
Image {
|
ColumnLayout {
|
||||||
anchors.centerIn: parent
|
Layout.fillWidth: true
|
||||||
source: "../images/moneroIcon.png"
|
Label {
|
||||||
|
id: transactionPriority
|
||||||
|
text: qsTr("Transaction priority") + translationManager.emptyString
|
||||||
|
}
|
||||||
|
// Note: workaround for translations in listElements
|
||||||
|
// ListElement: cannot use script for property value, so
|
||||||
|
// code like this wont work:
|
||||||
|
// ListElement { column1: qsTr("LOW") + translationManager.emptyString ; column2: ""; priority: PendingTransaction.Priority_Low }
|
||||||
|
// For translations to work, the strings need to be listed in
|
||||||
|
// the file components/StandardDropdown.qml too.
|
||||||
|
|
||||||
|
// Priorities before v5
|
||||||
|
ListModel {
|
||||||
|
id: priorityModel
|
||||||
|
|
||||||
|
ListElement { column1: qsTr("Low (x1 fee)") ; column2: ""; priority: PendingTransaction.Priority_Low }
|
||||||
|
ListElement { column1: qsTr("Medium (x20 fee)") ; column2: ""; priority: PendingTransaction.Priority_Medium }
|
||||||
|
ListElement { column1: qsTr("High (x166 fee)") ; column2: ""; priority: PendingTransaction.Priority_High }
|
||||||
|
}
|
||||||
|
|
||||||
|
// Priorites after v5
|
||||||
|
ListModel {
|
||||||
|
id: priorityModelV5
|
||||||
|
|
||||||
|
ListElement { column1: qsTr("Slow (x0.25 fee)") ; column2: ""; priority: 1}
|
||||||
|
ListElement { column1: qsTr("Default (x1 fee)") ; column2: ""; priority: 2 }
|
||||||
|
ListElement { column1: qsTr("Fast (x5 fee)") ; column2: ""; priority: 3 }
|
||||||
|
ListElement { column1: qsTr("Fastest (x41.5 fee)") ; column2: ""; priority: 4 }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
StandardDropdown {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
id: priorityDropdown
|
||||||
|
shadowReleasedColor: "#FF4304"
|
||||||
|
shadowPressedColor: "#B32D00"
|
||||||
|
releasedColor: "#FF6C3C"
|
||||||
|
pressedColor: "#FF4304"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Amount input
|
// Make sure dropdown is on top
|
||||||
LineEdit {
|
z: parent.z + 1
|
||||||
id: amountLine
|
}
|
||||||
placeholderText: qsTr("") + translationManager.emptyString
|
|
||||||
width: parent.width - 37 - 17 - 60
|
ColumnLayout {
|
||||||
validator: DoubleValidator {
|
Layout.fillWidth: true
|
||||||
bottom: 0.0
|
Label {
|
||||||
top: 18446744.073709551615
|
id: addressLabel
|
||||||
decimals: 12
|
textFormat: Text.RichText
|
||||||
notation: DoubleValidator.StandardNotation
|
text: qsTr("<style type='text/css'>a {text-decoration: none; color: #FF6C3C; font-size: 14px;}</style>\
|
||||||
locale: "C"
|
Address <font size='2'> ( Paste in or select from </font> <a href='#'>Address book</a><font size='2'> )</font>")
|
||||||
|
+ translationManager.emptyString
|
||||||
|
|
||||||
|
onLinkActivated: appWindow.showPageRequest("AddressBook")
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
// recipient address input
|
||||||
|
RowLayout {
|
||||||
|
id: addressLineRow
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
StandardButton {
|
||||||
|
id: qrfinderButton
|
||||||
|
text: qsTr("QR Code") + translationManager.emptyString
|
||||||
|
shadowReleasedColor: "#FF4304"
|
||||||
|
shadowPressedColor: "#B32D00"
|
||||||
|
releasedColor: "#FF6C3C"
|
||||||
|
pressedColor: "#FF4304"
|
||||||
|
visible : appWindow.qrScannerEnabled
|
||||||
|
enabled : visible
|
||||||
|
width: visible ? 60 * scaleRatio : 0
|
||||||
|
onClicked: {
|
||||||
|
cameraUi.state = "Capture"
|
||||||
|
cameraUi.qrcode_decoded.connect(updateFromQrCode)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
LineEdit {
|
||||||
|
id: addressLine
|
||||||
StandardButton {
|
Layout.fillWidth: true
|
||||||
id: amountAllButton
|
anchors.topMargin: 5 * scaleRatio
|
||||||
//anchors.left: amountLine.right
|
placeholderText: "4..."
|
||||||
//anchors.top: amountLine.top
|
// validator: RegExpValidator { regExp: /[0-9A-Fa-f]{95}/g }
|
||||||
//anchors.bottom: amountLine.bottom
|
|
||||||
width: 60
|
|
||||||
text: qsTr("All") + translationManager.emptyString
|
|
||||||
shadowReleasedColor: "#FF4304"
|
|
||||||
shadowPressedColor: "#B32D00"
|
|
||||||
releasedColor: "#FF6C3C"
|
|
||||||
pressedColor: "#FF4304"
|
|
||||||
enabled : true
|
|
||||||
onClicked: amountLine.text = "(all)"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Note: workaround for translations in listElements
|
|
||||||
// ListElement: cannot use script for property value, so
|
|
||||||
// code like this wont work:
|
|
||||||
// ListElement { column1: qsTr("LOW") + translationManager.emptyString ; column2: ""; priority: PendingTransaction.Priority_Low }
|
|
||||||
// For translations to work, the strings need to be listed in
|
|
||||||
// the file components/StandardDropdown.qml too.
|
|
||||||
|
|
||||||
// Priorities before v5
|
|
||||||
ListModel {
|
|
||||||
id: priorityModel
|
|
||||||
|
|
||||||
ListElement { column1: qsTr("Low (x1 fee)") ; column2: ""; priority: PendingTransaction.Priority_Low }
|
|
||||||
ListElement { column1: qsTr("Medium (x20 fee)") ; column2: ""; priority: PendingTransaction.Priority_Medium }
|
|
||||||
ListElement { column1: qsTr("High (x166 fee)") ; column2: ""; priority: PendingTransaction.Priority_High }
|
|
||||||
}
|
|
||||||
|
|
||||||
// Priorites after v5
|
|
||||||
ListModel {
|
|
||||||
id: priorityModelV5
|
|
||||||
|
|
||||||
ListElement { column1: qsTr("Slow (x0.25 fee)") ; column2: ""; priority: 1}
|
|
||||||
ListElement { column1: qsTr("Default (x1 fee)") ; column2: ""; priority: 2 }
|
|
||||||
ListElement { column1: qsTr("Fast (x5 fee)") ; column2: ""; priority: 3 }
|
|
||||||
ListElement { column1: qsTr("Fastest (x41.5 fee)") ; column2: ""; priority: 4 }
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
StandardDropdown {
|
|
||||||
id: priorityDropdown
|
|
||||||
anchors.top: transactionPriority.bottom
|
|
||||||
anchors.right: parent.right
|
|
||||||
anchors.rightMargin: 17
|
|
||||||
anchors.topMargin: 5
|
|
||||||
anchors.left: transactionPriority.left
|
|
||||||
shadowReleasedColor: "#FF4304"
|
|
||||||
shadowPressedColor: "#B32D00"
|
|
||||||
releasedColor: "#FF6C3C"
|
|
||||||
pressedColor: "#FF4304"
|
|
||||||
z: 1
|
|
||||||
}
|
|
||||||
|
|
||||||
Label {
|
|
||||||
id: addressLabel
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.right: parent.right
|
|
||||||
anchors.top: amountRow.bottom
|
|
||||||
anchors.leftMargin: 17
|
|
||||||
anchors.rightMargin: 17
|
|
||||||
anchors.topMargin: 30
|
|
||||||
fontSize: 14
|
|
||||||
textFormat: Text.RichText
|
|
||||||
text: qsTr("<style type='text/css'>a {text-decoration: none; color: #FF6C3C; font-size: 14px;}</style>\
|
|
||||||
Address <font size='2'> ( Paste in or select from </font> <a href='#'>Address book</a><font size='2'> )</font>")
|
|
||||||
+ translationManager.emptyString
|
|
||||||
|
|
||||||
onLinkActivated: appWindow.showPageRequest("AddressBook")
|
|
||||||
}
|
|
||||||
// recipient address input
|
|
||||||
RowLayout {
|
|
||||||
id: addressLineRow
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.right: parent.right
|
|
||||||
anchors.top: addressLabel.bottom
|
|
||||||
|
|
||||||
StandardButton {
|
|
||||||
id: qrfinderButton
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.leftMargin: 17
|
|
||||||
anchors.topMargin: 5
|
|
||||||
text: qsTr("QR Code") + translationManager.emptyString
|
|
||||||
shadowReleasedColor: "#FF4304"
|
|
||||||
shadowPressedColor: "#B32D00"
|
|
||||||
releasedColor: "#FF6C3C"
|
|
||||||
pressedColor: "#FF4304"
|
|
||||||
visible : appWindow.qrScannerEnabled
|
|
||||||
enabled : visible
|
|
||||||
width: visible ? 60 : 0
|
|
||||||
onClicked: {
|
|
||||||
cameraUi.state = "Capture"
|
|
||||||
cameraUi.qrcode_decoded.connect(updateFromQrCode)
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
LineEdit {
|
|
||||||
id: addressLine
|
|
||||||
anchors.left: qrfinderButton.right
|
|
||||||
anchors.right: resolveButton.left
|
|
||||||
//anchors.leftMargin: 17
|
|
||||||
anchors.topMargin: 5
|
|
||||||
placeholderText: "4..."
|
|
||||||
// validator: RegExpValidator { regExp: /[0-9A-Fa-f]{95}/g }
|
|
||||||
}
|
|
||||||
|
|
||||||
StandardButton {
|
StandardButton {
|
||||||
id: resolveButton
|
id: resolveButton
|
||||||
anchors.right: parent.right
|
width: 60 * scaleRatio
|
||||||
anchors.leftMargin: 17
|
text: qsTr("Resolve") + translationManager.emptyString
|
||||||
anchors.topMargin: 17
|
shadowReleasedColor: "#FF4304"
|
||||||
anchors.rightMargin: 17
|
shadowPressedColor: "#B32D00"
|
||||||
width: 60
|
releasedColor: "#FF6C3C"
|
||||||
text: qsTr("Resolve") + translationManager.emptyString
|
pressedColor: "#FF4304"
|
||||||
shadowReleasedColor: "#FF4304"
|
enabled : isValidOpenAliasAddress(addressLine.text)
|
||||||
shadowPressedColor: "#B32D00"
|
onClicked: {
|
||||||
releasedColor: "#FF6C3C"
|
var result = walletManager.resolveOpenAlias(addressLine.text)
|
||||||
pressedColor: "#FF4304"
|
if (result) {
|
||||||
enabled : isValidOpenAliasAddress(addressLine.text)
|
var parts = result.split("|")
|
||||||
onClicked: {
|
if (parts.length == 2) {
|
||||||
var result = walletManager.resolveOpenAlias(addressLine.text)
|
var address_ok = walletManager.addressValid(parts[1], appWindow.persistentSettings.testnet)
|
||||||
if (result) {
|
if (parts[0] === "true") {
|
||||||
var parts = result.split("|")
|
if (address_ok) {
|
||||||
if (parts.length == 2) {
|
addressLine.text = parts[1]
|
||||||
var address_ok = walletManager.addressValid(parts[1], appWindow.persistentSettings.testnet)
|
addressLine.cursorPosition = 0
|
||||||
if (parts[0] === "true") {
|
}
|
||||||
if (address_ok) {
|
else
|
||||||
addressLine.text = parts[1]
|
oa_message(qsTr("No valid address found at this OpenAlias address"))
|
||||||
addressLine.cursorPosition = 0
|
} else if (parts[0] === "false") {
|
||||||
}
|
if (address_ok) {
|
||||||
else
|
addressLine.text = parts[1]
|
||||||
oa_message(qsTr("No valid address found at this OpenAlias address"))
|
addressLine.cursorPosition = 0
|
||||||
} else if (parts[0] === "false") {
|
oa_message(qsTr("Address found, but the DNSSEC signatures could not be verified, so this address may be spoofed"))
|
||||||
if (address_ok) {
|
} else {
|
||||||
addressLine.text = parts[1]
|
oa_message(qsTr("No valid address found at this OpenAlias address, but the DNSSEC signatures could not be verified, so this may be spoofed"))
|
||||||
addressLine.cursorPosition = 0
|
}
|
||||||
oa_message(qsTr("Address found, but the DNSSEC signatures could not be verified, so this address may be spoofed"))
|
} else {
|
||||||
|
oa_message(qsTr("Internal error"))
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
oa_message(qsTr("No valid address found at this OpenAlias address, but the DNSSEC signatures could not be verified, so this may be spoofed"))
|
oa_message(qsTr("Internal error"))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
oa_message(qsTr("Internal error"))
|
oa_message(qsTr("No address found"))
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
oa_message(qsTr("Internal error"))
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
oa_message(qsTr("No address found"))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: paymentIdLabel
|
id: paymentIdLabel
|
||||||
anchors.left: parent.left
|
text: qsTr("Payment ID <font size='2'>( Optional )</font>") + translationManager.emptyString
|
||||||
anchors.right: parent.right
|
}
|
||||||
anchors.top: addressLineRow.bottom
|
|
||||||
anchors.leftMargin: 17
|
|
||||||
anchors.rightMargin: 17
|
|
||||||
anchors.topMargin: 17
|
|
||||||
fontSize: 14
|
|
||||||
text: qsTr("Payment ID <font size='2'>( Optional )</font>") + translationManager.emptyString
|
|
||||||
}
|
|
||||||
|
|
||||||
// payment id input
|
// payment id input
|
||||||
LineEdit {
|
LineEdit {
|
||||||
id: paymentIdLine
|
id: paymentIdLine
|
||||||
anchors.left: parent.left
|
placeholderText: qsTr("16 or 64 hexadecimal characters") + translationManager.emptyString
|
||||||
anchors.right: parent.right
|
Layout.fillWidth: true
|
||||||
anchors.top: paymentIdLabel.bottom
|
}
|
||||||
anchors.leftMargin: 17
|
|
||||||
anchors.rightMargin: 17
|
|
||||||
anchors.topMargin: 5
|
|
||||||
placeholderText: qsTr("16 or 64 hexadecimal characters") + translationManager.emptyString
|
|
||||||
// validator: DoubleValidator { top: 0.0 }
|
|
||||||
}
|
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: descriptionLabel
|
text: qsTr("Description <font size='2'>( Optional )</font>")
|
||||||
anchors.left: parent.left
|
+ translationManager.emptyString
|
||||||
anchors.right: parent.right
|
}
|
||||||
anchors.top: paymentIdLine.bottom
|
|
||||||
anchors.leftMargin: 17
|
|
||||||
anchors.rightMargin: 17
|
|
||||||
anchors.topMargin: 17
|
|
||||||
fontSize: 14
|
|
||||||
text: qsTr("Description <font size='2'>( Optional )</font>")
|
|
||||||
+ translationManager.emptyString
|
|
||||||
}
|
|
||||||
|
|
||||||
LineEdit {
|
LineEdit {
|
||||||
id: descriptionLine
|
id: descriptionLine
|
||||||
anchors.left: parent.left
|
placeholderText: qsTr("Saved to local wallet history") + translationManager.emptyString
|
||||||
anchors.right: parent.right
|
Layout.fillWidth: true
|
||||||
anchors.top: descriptionLabel.bottom
|
}
|
||||||
anchors.leftMargin: 17
|
|
||||||
anchors.rightMargin: 17
|
|
||||||
anchors.topMargin: 5
|
|
||||||
placeholderText: qsTr("Saved to local wallet history") + translationManager.emptyString
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkInformation(amount, address, payment_id, testnet) {
|
|
||||||
address = address.trim()
|
|
||||||
payment_id = payment_id.trim()
|
|
||||||
|
|
||||||
var amount_ok = amount.length > 0
|
|
||||||
var address_ok = walletManager.addressValid(address, testnet)
|
|
||||||
var payment_id_ok = payment_id.length == 0 || walletManager.paymentIdValid(payment_id)
|
|
||||||
var ipid = walletManager.paymentIdFromAddress(address, testnet)
|
|
||||||
if (ipid.length > 0 && payment_id.length > 0)
|
|
||||||
payment_id_ok = false
|
|
||||||
|
|
||||||
addressLine.error = !address_ok
|
|
||||||
amountLine.error = !amount_ok
|
|
||||||
paymentIdLine.error = !payment_id_ok
|
|
||||||
|
|
||||||
return amount_ok && address_ok && payment_id_ok
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
RowLayout {
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.top: descriptionLine.bottom
|
|
||||||
anchors.leftMargin: 17
|
|
||||||
anchors.topMargin: 17
|
|
||||||
|
|
||||||
StandardButton {
|
StandardButton {
|
||||||
id: sendButton
|
id: sendButton
|
||||||
|
Layout.bottomMargin: 17 * scaleRatio
|
||||||
|
Layout.topMargin: 17 * scaleRatio
|
||||||
text: qsTr("Send") + translationManager.emptyString
|
text: qsTr("Send") + translationManager.emptyString
|
||||||
shadowReleasedColor: "#FF4304"
|
shadowReleasedColor: "#FF4304"
|
||||||
shadowPressedColor: "#B32D00"
|
shadowPressedColor: "#B32D00"
|
||||||
@@ -418,6 +347,23 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function checkInformation(amount, address, payment_id, testnet) {
|
||||||
|
address = address.trim()
|
||||||
|
payment_id = payment_id.trim()
|
||||||
|
|
||||||
|
var amount_ok = amount.length > 0
|
||||||
|
var address_ok = walletManager.addressValid(address, testnet)
|
||||||
|
var payment_id_ok = payment_id.length == 0 || walletManager.paymentIdValid(payment_id)
|
||||||
|
var ipid = walletManager.paymentIdFromAddress(address, testnet)
|
||||||
|
if (ipid.length > 0 && payment_id.length > 0)
|
||||||
|
payment_id_ok = false
|
||||||
|
|
||||||
|
addressLine.error = !address_ok
|
||||||
|
amountLine.error = !amount_ok
|
||||||
|
paymentIdLine.error = !payment_id_ok
|
||||||
|
|
||||||
|
return amount_ok && address_ok && payment_id_ok
|
||||||
|
}
|
||||||
|
|
||||||
} // pageRoot
|
} // pageRoot
|
||||||
|
|
||||||
@@ -482,10 +428,20 @@ Rectangle {
|
|||||||
|
|
||||||
|
|
||||||
PrivacyLevel {
|
PrivacyLevel {
|
||||||
visible: persistentSettings.transferShowAdvanced
|
visible: persistentSettings.transferShowAdvanced && !isMobile
|
||||||
id: privacyLevelItem
|
id: privacyLevelItem
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
anchors.rightMargin: 17 * scaleRatio
|
||||||
|
onFillLevelChanged: updateMixin()
|
||||||
|
}
|
||||||
|
|
||||||
|
PrivacyLevelSmall {
|
||||||
|
visible: persistentSettings.transferShowAdvanced && isMobile
|
||||||
|
id: privacyLevelItemSmall
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.rightMargin: 17 * scaleRatio
|
||||||
onFillLevelChanged: updateMixin()
|
onFillLevelChanged: updateMixin()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -722,6 +678,7 @@ Rectangle {
|
|||||||
statusText.text = qsTr("Waiting on daemon synchronization to finish")
|
statusText.text = qsTr("Waiting on daemon synchronization to finish")
|
||||||
} else {
|
} else {
|
||||||
// everything OK, enable transfer page
|
// everything OK, enable transfer page
|
||||||
|
// Light wallet is always ready
|
||||||
pageRoot.enabled = true;
|
pageRoot.enabled = true;
|
||||||
statusText.text = "";
|
statusText.text = "";
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user