Browse Source

qml: remove editmode toggle, now enabled only on amount-less invoices

master
Sander van Grieken 3 years ago
parent
commit
24a3d6e10f
  1. 69
      electrum/gui/qml/components/InvoiceDialog.qml
  2. 3
      electrum/gui/qml/qeinvoice.py

69
electrum/gui/qml/components/InvoiceDialog.qml

@ -169,17 +169,26 @@ ElDialog {
columns: 2
Label {
visible: invoice.amount.isMax
Layout.columnSpan: 2
Layout.fillWidth: true
visible: invoice.amount.isMax
font.pixelSize: constants.fontSizeXLarge
font.bold: true
Layout.fillWidth: true
text: qsTr('All on-chain funds')
}
Label {
Layout.columnSpan: 2
Layout.fillWidth: true
visible: invoice.amount.isEmpty
font.pixelSize: constants.fontSizeXLarge
color: constants.mutedForeground
text: qsTr('not specified')
}
Label {
Layout.alignment: Qt.AlignRight
visible: !invoice.amount.isMax
visible: !invoice.amount.isMax && !invoice.amount.isEmpty
font.pixelSize: constants.fontSizeXLarge
font.family: FixedFont
font.bold: true
@ -187,8 +196,8 @@ ElDialog {
}
Label {
visible: !invoice.amount.isMax
Layout.fillWidth: true
visible: !invoice.amount.isMax && !invoice.amount.isEmpty
text: Config.baseUnit
color: Material.accentColor
font.pixelSize: constants.fontSizeXLarge
@ -197,15 +206,15 @@ ElDialog {
Label {
id: fiatValue
Layout.alignment: Qt.AlignRight
visible: Daemon.fx.enabled && !invoice.amount.isMax
visible: Daemon.fx.enabled && !invoice.amount.isMax && !invoice.amount.isEmpty
text: Daemon.fx.fiatValue(invoice.amount, false)
font.pixelSize: constants.fontSizeMedium
color: constants.mutedForeground
}
Label {
visible: Daemon.fx.enabled && !invoice.amount.isMax
Layout.fillWidth: true
visible: Daemon.fx.enabled && !invoice.amount.isMax && !invoice.amount.isEmpty
text: Daemon.fx.fiatCurrency
font.pixelSize: constants.fontSizeMedium
color: constants.mutedForeground
@ -213,16 +222,13 @@ ElDialog {
}
ToolButton {
visible: !amountContainer.editmode
icon.source: '../../icons/pen.png'
icon.color: 'transparent'
onClicked: enterAmountEdit()
}
GridLayout {
visible: amountContainer.editmode
Layout.fillWidth: true
visible: amountContainer.editmode
enabled: !(invoice.status == Invoice.Expired && invoice.amount.isEmpty)
columns: 3
BtcField {
id: amountBtc
fiatfield: amountFiat
@ -239,6 +245,7 @@ ElDialog {
text: Config.baseUnit
color: Material.accentColor
}
Switch {
id: amountMax
Layout.fillWidth: true
@ -266,20 +273,6 @@ ElDialog {
color: Material.accentColor
}
}
ToolButton {
Layout.fillWidth: false
visible: amountContainer.editmode
icon.source: '../../icons/confirmed.png'
icon.color: 'transparent'
onClicked: applyAmountEdit()
}
ToolButton {
Layout.fillWidth: false
visible: amountContainer.editmode
icon.source: '../../icons/closebutton.png'
icon.color: 'transparent'
onClicked: cancelAmountEdit()
}
}
}
@ -434,8 +427,6 @@ ElDialog {
icon.source: '../../icons/confirmed.png'
enabled: invoice.invoiceType != Invoice.Invalid && invoice.canPay
onClicked: {
if (amountContainer.editmode)
applyAmountEdit()
if (invoice_key == '') // save invoice if not retrieved from key
invoice.save_invoice()
dialog.close()
@ -446,29 +437,11 @@ ElDialog {
}
function enterAmountEdit() {
amountBtc.text = invoice.amount.satsInt == 0 ? '' : Config.formatSats(invoice.amount)
amountMax.checked = invoice.amount.isMax
amountContainer.editmode = true
amountBtc.focus = true
}
function applyAmountEdit() {
amountContainer.editmode = false
invoice.amount = amountMax.checked ? MAX : Config.unitsToSats(amountBtc.text)
invoiceAmountChanged()
}
function cancelAmountEdit() {
amountContainer.editmode = false
invoice.amountOverride.clear()
}
Component.onCompleted: {
if (invoice_key != '') {
invoice.initFromKey(invoice_key)
}
if (invoice.amount.isEmpty) {
if (invoice.amount.isEmpty && !invoice.status == Invoice.Expired) {
amountContainer.editmode = true
} else if (invoice.amount.isMax) {
amountMax.checked = true

3
electrum/gui/qml/qeinvoice.py

@ -179,6 +179,7 @@ class QEInvoiceParser(QEInvoice):
self.canPay = False
self._recipient = recipient
self._lnurlData = None
self.amountOverride = QEAmount()
if recipient:
self.validateRecipient(recipient)
self.recipientChanged.emit()
@ -327,6 +328,8 @@ class QEInvoiceParser(QEInvoice):
if interval > 0:
self._timer.setInterval(interval) # msec
self._timer.start()
else:
self.determine_can_pay() # status went to PR_EXPIRED
@pyqtSlot()
def updateStatusString(self):

Loading…
Cancel
Save