Skip to content

Commit

Permalink
qml: remove editmode toggle, now enabled only on amount-less invoices
Browse files Browse the repository at this point in the history
  • Loading branch information
accumulator committed Mar 17, 2023
1 parent c3a0f9c commit 24a3d6e
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 48 deletions.
69 changes: 21 additions & 48 deletions electrum/gui/qml/components/InvoiceDialog.qml
Original file line number Diff line number Diff line change
Expand Up @@ -169,26 +169,35 @@ 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
text: Config.formatSats(invoice.amount, false)
}

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
Expand All @@ -197,32 +206,29 @@ 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
}

}

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
Expand All @@ -239,6 +245,7 @@ ElDialog {
text: Config.baseUnit
color: Material.accentColor
}

Switch {
id: amountMax
Layout.fillWidth: true
Expand Down Expand Up @@ -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()
}
}

}
Expand Down Expand Up @@ -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()
Expand All @@ -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
Expand Down
3 changes: 3 additions & 0 deletions electrum/gui/qml/qeinvoice.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ def recipient(self, recipient: str):
self.canPay = False
self._recipient = recipient
self._lnurlData = None
self.amountOverride = QEAmount()
if recipient:
self.validateRecipient(recipient)
self.recipientChanged.emit()
Expand Down Expand Up @@ -327,6 +328,8 @@ def set_status_timer(self):
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):
Expand Down

0 comments on commit 24a3d6e

Please sign in to comment.