def load_wallet(self: Union['QtPluginBase', HW_PluginBase], wallet: 'Abstract_Wallet', window: ElectrumSysWindow): relevant_keystores = [ keystore for keystore in wallet.get_keystores() if isinstance(keystore, self.keystore_class) ] if not relevant_keystores: return for keystore in relevant_keystores: if not self.libraries_available: message = keystore.plugin.get_library_not_available_message() window.show_error(message) return tooltip = self.device + '\n' + (keystore.label or 'unnamed') cb = partial(self._on_status_bar_button_click, window=window, keystore=keystore) button = StatusBarButton(read_QIcon(self.icon_unpaired), tooltip, cb) button.icon_paired = self.icon_paired button.icon_unpaired = self.icon_unpaired window.statusBar().addPermanentWidget(button) handler = self.create_handler(window) handler.button = button keystore.handler = handler keystore.thread = TaskThread(window, on_error=partial( self.on_task_thread_error, window, keystore)) self.add_show_address_on_hw_device_button_for_receive_addr( wallet, keystore, window) # Trigger pairings def trigger_pairings(): devmgr = self.device_manager() devices = devmgr.scan_devices() # first pair with all devices that can be auto-selected for keystore in relevant_keystores: try: self.get_client(keystore=keystore, force_pair=True, allow_user_interaction=False, devices=devices) except UserCancelled: pass # now do manual selections for keystore in relevant_keystores: try: self.get_client(keystore=keystore, force_pair=True, allow_user_interaction=True, devices=devices) except UserCancelled: pass some_keystore = relevant_keystores[0] some_keystore.thread.add(trigger_pairings)
def transaction_dialog(self, dialog: 'TxDialog'): b = QPushButton() b.setIcon(read_QIcon("speaker.png")) def handler(): blob = dialog.tx.serialize() self._send(parent=dialog, blob=blob) b.clicked.connect(handler) dialog.sharing_buttons.insert(-1, b)
def load_wallet(self, wallet: 'Abstract_Wallet', window: 'ElectrumSysWindow'): if not isinstance(wallet, self.wallet_class): return wallet.handler_2fa = HandlerTwoFactor(self, window) if wallet.can_sign_without_server(): msg = ' '.join([ _('This wallet was restored from seed, and it contains two master private keys.'), _('Therefore, two-factor authentication is disabled.') ]) action = lambda: window.show_message(msg) else: action = partial(self.settings_dialog, window) button = StatusBarButton(read_QIcon("trustedcoin-status.png"), _("TrustedCoin"), action) window.statusBar().addPermanentWidget(button) self.start_request_thread(window.wallet)
def _update_status(self, paired): if hasattr(self, 'button'): button = self.button icon_name = button.icon_paired if paired else button.icon_unpaired button.setIcon(read_QIcon(icon_name))
def create_status_bar(self, parent): b = StatusBarButton(read_QIcon('revealer.png'), "Revealer " + _("Visual Cryptography Plugin"), partial(self.setup_dialog, parent)) parent.addPermanentWidget(b)