From d89f9846b9b8331cc8bb5f5a97fe0c679bc5947f Mon Sep 17 00:00:00 2001 From: SomberNight Date: Wed, 10 Jan 2024 20:37:42 +0000 Subject: [PATCH] qt/qrreader(zbar): don't call callback if user closes camera window - without this, in send tab paytoedit, try_payment_identifier will get called and it will error https://github.com/spesmilo/electrum/blob/df1b9a223c77f4597a75df4e040754a58185151f/electrum/gui/qt/paytoedit.py#L153 - also, in all text fields this used to result in clearing the current text (but now it is kept instead) --- electrum/gui/qt/qrreader/__init__.py | 3 +++ electrum/gui/qt/util.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/electrum/gui/qt/qrreader/__init__.py b/electrum/gui/qt/qrreader/__init__.py index 9dd7ada95..a3a3f5072 100644 --- a/electrum/gui/qt/qrreader/__init__.py +++ b/electrum/gui/qt/qrreader/__init__.py @@ -105,6 +105,9 @@ def _scan_qrcode_using_zbar( else: success = True error = "" + if data is None: + # probably user cancelled + success = False callback(success, error, data) diff --git a/electrum/gui/qt/util.py b/electrum/gui/qt/util.py index f24fa57a9..beb2d547f 100644 --- a/electrum/gui/qt/util.py +++ b/electrum/gui/qt/util.py @@ -672,7 +672,7 @@ class GenericInputHandler: ) -> None: if setText is None: setText = self.setText - def cb(success: bool, error: str, data): + def cb(success: bool, error: str, data: Optional[str]): if not success: if error: show_error(error)