Browse Source

kivy: scan_qr_non_android: handle user closing window

handle user closing window without scanning a qr code
(i.e. cancelling scan)
patch-4
SomberNight 4 years ago
parent
commit
bc5ec96387
No known key found for this signature in database GPG Key ID: B33B5F232C6271E9
  1. 5
      electrum/gui/kivy/main_window.py
  2. 3
      electrum/qrscanner.py

5
electrum/gui/kivy/main_window.py

@ -444,7 +444,7 @@ class ElectrumWindow(App, Logger):
self.show_error("invoice error:" + pr.error)
self.send_screen.do_clear()
def on_qr(self, data):
def on_qr(self, data: str):
from electrum.bitcoin import is_address
data = data.strip()
if is_address(data):
@ -548,7 +548,8 @@ class ElectrumWindow(App, Logger):
try:
video_dev = self.electrum_config.get_video_device()
data = qrscanner.scan_barcode(video_dev)
on_complete(data)
if data is not None:
on_complete(data)
except UserFacingException as e:
self.show_error(e)
except BaseException as e:

3
electrum/qrscanner.py

@ -26,6 +26,7 @@
import os
import sys
import ctypes
from typing import Optional
from .util import UserFacingException
from .i18n import _
@ -53,7 +54,7 @@ except BaseException as e1:
_logger.error(f"failed to load zbar. exceptions: {[e1,e2]!r}")
def scan_barcode_ctypes(device='', timeout=-1, display=True, threaded=False):
def scan_barcode_ctypes(device='', timeout=-1, display=True, threaded=False) -> Optional[str]:
if libzbar is None:
raise UserFacingException("Cannot start QR scanner: zbar not available.")
libzbar.zbar_symbol_get_data.restype = ctypes.c_char_p

Loading…
Cancel
Save