diff --git a/electrum/gui/qml/components/ReceiveDialog.qml b/electrum/gui/qml/components/ReceiveDialog.qml index de42cc39c..b03e57c14 100644 --- a/electrum/gui/qml/components/ReceiveDialog.qml +++ b/electrum/gui/qml/components/ReceiveDialog.qml @@ -125,6 +125,7 @@ ElDialog { else if (_bip21uri != '') rootLayout.state = 'bip21uri' } + Config.preferredRequestType = rootLayout.state } } } @@ -348,7 +349,14 @@ ElDialog { id: request wallet: Daemon.currentWallet onDetailsChanged: { - if (bolt11) { + var req_type = Config.preferredRequestType + if (bolt11 && req_type == 'bolt11') { + rootLayout.state = 'bolt11' + } else if (bip21 && req_type == 'bip21uri') { + rootLayout.state = 'bip21uri' + } else if (req_type == 'address') { + rootLayout.state = 'address' + } else if (bolt11) { rootLayout.state = 'bolt11' } else if (bip21) { rootLayout.state = 'bip21uri' diff --git a/electrum/gui/qml/qeconfig.py b/electrum/gui/qml/qeconfig.py index 99fb74dee..ec0e354e5 100644 --- a/electrum/gui/qml/qeconfig.py +++ b/electrum/gui/qml/qeconfig.py @@ -167,6 +167,17 @@ class QEConfig(AuthMixin, QObject): self.config.set_key('trustedcoin_prepay', num_prepay) self.trustedcoinPrepayChanged.emit() + preferredRequestTypeChanged = pyqtSignal() + @pyqtProperty(str, notify=preferredRequestTypeChanged) + def preferredRequestType(self): + return self.config.get('preferred_request_type', 'bolt11') + + @preferredRequestType.setter + def preferredRequestType(self, preferred_request_type): + if preferred_request_type != self.config.get('preferred_request_type', 'bolt11'): + self.config.set_key('preferred_request_type', preferred_request_type) + self.preferredRequestTypeChanged.emit() + @pyqtSlot('qint64', result=str) @pyqtSlot('qint64', bool, result=str) @pyqtSlot(QEAmount, result=str)