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
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
2 changed files with
5 additions and
3 deletions
-
electrum/gui/kivy/main_window.py
-
electrum/qrscanner.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: |
|
|
|
|
|
@ -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 |
|
|
|