Exemple #1
0
 def load_wallet(self: Union['QtPluginBase', HW_PluginBase],
                 wallet: 'Abstract_Wallet', window: ElectrumWindow):
     for keystore in wallet.get_keystores():
         if not isinstance(keystore, self.keystore_class):
             continue
         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.show_settings_dialog, window, 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 a pairing
         keystore.thread.add(partial(self.get_client, keystore))
Exemple #2
0
    def transaction_dialog(self, dialog):
        b = QPushButton()
        b.setIcon(read_QIcon("speaker.png"))

        def handler():
            blob = json.dumps(dialog.tx.as_dict())
            self._send(parent=dialog, blob=blob)
        b.clicked.connect(handler)
        dialog.sharing_buttons.insert(-1, b)
Exemple #3
0
    def transaction_dialog(self, dialog):
        b = QPushButton()
        b.setIcon(read_QIcon("speaker.png"))

        def handler():
            blob = json.dumps(dialog.tx.as_dict())
            self._send(parent=dialog, blob=blob)
        b.clicked.connect(handler)
        dialog.sharing_buttons.insert(-1, b)
Exemple #4
0
    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)
Exemple #5
0
    def load_wallet(self: Union['QtPluginBase', HW_PluginBase], wallet: 'Abstract_Wallet', window: ElectrumWindow):
        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)
Exemple #6
0
 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))
Exemple #7
0
 def create_status_bar(self, parent):
     b = StatusBarButton(read_QIcon('revealer.png'), "Revealer "+_("secret backup utility"),
                         partial(self.setup_dialog, parent))
     parent.addPermanentWidget(b)