diff --git a/pages/Transfer.qml b/pages/Transfer.qml
index d00bbf30..2d31430d 100644
--- a/pages/Transfer.qml
+++ b/pages/Transfer.qml
@@ -51,7 +51,33 @@ Rectangle {
property alias transferHeight2: advancedLayout.height
property int mixin: 10 // (ring size 11)
property string warningContent: ""
- property string sendButtonWarning: ""
+ property string sendButtonWarning: {
+ // Currently opened wallet is not view-only
+ if (appWindow.viewOnly) {
+ return qsTr("Wallet is view-only and sends are not possible. Unless key images are imported, " +
+ "the balance reflects only incoming but not outgoing transactions.") + translationManager.emptyString;
+ }
+
+ // There are sufficient unlocked funds available
+ if (walletManager.amountFromString(amountLine.text) > appWindow.getUnlockedBalance()) {
+ return qsTr("Amount is more than unlocked balance.") + translationManager.emptyString;
+ }
+
+ if (addressLine.text)
+ {
+ // Address is valid
+ if (!TxUtils.checkAddress(addressLine.text, appWindow.persistentSettings.nettype)) {
+ return qsTr("Address is invalid.") + translationManager.emptyString;
+ }
+
+ // Amount is nonzero
+ if (!amountLine.text || parseFloat(amountLine.text) <= 0) {
+ return qsTr("Enter an amount.") + translationManager.emptyString;
+ }
+ }
+
+ return "";
+ }
property string startLinkText: qsTr(" (Start daemon)") + translationManager.emptyString
property bool warningLongPidDescription: descriptionLine.text.match(/^[0-9a-f]{64}$/i)
@@ -88,7 +114,6 @@ Rectangle {
addressLine.text = ""
setPaymentId("");
amountLine.text = ""
- root.sendButtonWarning = ""
setDescription("");
priorityDropdown.currentIndex = 0
updatePriorityDropdown()
@@ -413,9 +438,7 @@ Rectangle {
rightIconInactive: "qrc:///images/rightArrowInactive.png"
Layout.topMargin: 4
text: qsTr("Send") + translationManager.emptyString
- enabled: {
- updateSendButton()
- }
+ enabled: !sendButtonWarningBox.visible && !warningContent && addressLine.text && !paymentIdWarningBox.visible
onClicked: {
console.log("Transfer: paymentClicked")
var priority = priorityModelV5.get(priorityDropdown.currentIndex).priority
@@ -729,49 +752,4 @@ Rectangle {
if(typeof amount !== 'undefined')
amountLine.text = amount;
}
-
- function updateSendButton(){
- // reset message
- root.sendButtonWarning = "";
-
- // Currently opened wallet is not view-only
- if(appWindow.viewOnly){
- root.sendButtonWarning = qsTr("Wallet is view-only and sends are not possible. Unless key images are imported, " +
- "the balance reflects only incoming but not outgoing transactions.") + translationManager.emptyString;
- return false;
- }
-
- // There are sufficient unlocked funds available
- if(walletManager.amountFromString(amountLine.text) > appWindow.getUnlockedBalance()){
- root.sendButtonWarning = qsTr("Amount is more than unlocked balance.") + translationManager.emptyString;
- return false;
- }
-
- // There is no warning box displayed
- if(root.warningContent !== ""){
- return false;
- }
-
- if (addressLine.text == "") {
- return false;
- }
-
- // Address is valid
- if(!TxUtils.checkAddress(addressLine.text, appWindow.persistentSettings.nettype)){
- root.sendButtonWarning = qsTr("Address is invalid.") + translationManager.emptyString;
- return false;
- }
-
- // Amount is nonzero
- if (!amountLine.text || parseFloat(amountLine.text) <= 0) {
- root.sendButtonWarning = qsTr("Enter an amount.") + translationManager.emptyString;
- return false;
- }
-
- if (paymentIdWarningBox.visible) {
- return false;
- }
-
- return true;
- }
}