From aabd9f01ee1b847e761e91a10326f1bd234647ac Mon Sep 17 00:00:00 2001 From: SomberNight Date: Thu, 15 Mar 2018 20:03:12 +0100 Subject: [PATCH] wizard hw devices: only scan once --- lib/base_wizard.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/base_wizard.py b/lib/base_wizard.py index b9f792e92..a7fc27f65 100644 --- a/lib/base_wizard.py +++ b/lib/base_wizard.py @@ -202,14 +202,19 @@ class BaseWizard(object): # scan devices devices = [] devmgr = self.plugins.device_manager - for name, description, plugin in support: - try: - # FIXME: side-effect: unpaired_device_info sets client.handler - u = devmgr.unpaired_device_infos(None, plugin) - except: - devmgr.print_error("error", name) - continue - devices += list(map(lambda x: (name, x), u)) + try: + scanned_devices = devmgr.scan_devices() + except BaseException as e: + devmgr.print_error('error scanning devices: {}'.format(e)) + else: + for name, description, plugin in support: + try: + # FIXME: side-effect: unpaired_device_info sets client.handler + u = devmgr.unpaired_device_infos(None, plugin, devices=scanned_devices) + except BaseException as e: + devmgr.print_error('error getting device infos for {}: {}'.format(name, e)) + continue + devices += list(map(lambda x: (name, x), u)) if not devices: msg = ''.join([ _('No hardware device detected.') + '\n',