1
0

kivy: scan_qr_non_android: handle user closing window

handle user closing window without scanning a qr code
(i.e. cancelling scan)
This commit is contained in:
SomberNight
2021-06-25 14:25:01 +02:00
parent f1e77b6e43
commit bc5ec96387
2 changed files with 5 additions and 3 deletions

View File

@@ -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:

View File

@@ -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