1
0

new icons to show hardware wallet pairing in status bar

This commit is contained in:
ThomasV
2016-08-27 11:30:53 +02:00
parent 62b47ca3b3
commit b07d3466c0
9 changed files with 27 additions and 10 deletions

View File

@@ -3,7 +3,8 @@ from keepkey import KeepKeyPlugin
class Plugin(qt_plugin_class(KeepKeyPlugin)):
icon_file = ":icons/keepkey.png"
icon_paired = ":icons/keepkey.png"
icon_unpaired = ":icons/keepkey_unpaired.png"
@classmethod
def pin_matrix_widget_class(self):

View File

@@ -353,7 +353,3 @@ class TrezorCompatiblePlugin(HW_PluginBase):
def get_tx(self, tx_hash):
tx = self.prev_tx[tx_hash]
return self.electrum_tx_to_txtype(tx)
@staticmethod
def is_valid_seed(seed):
return True

View File

@@ -3,7 +3,8 @@ from trezor import TrezorPlugin
class Plugin(qt_plugin_class(TrezorPlugin)):
icon_file = ":icons/trezor.png"
icon_unpaired = ":icons/trezor_unpaired.png"
icon_paired = ":icons/trezor.png"
@classmethod
def pin_matrix_widget_class(self):

View File

@@ -193,15 +193,26 @@ def qt_plugin_class(base_plugin_class):
for keystore in wallet.get_keystores():
if type(keystore) != self.keystore_class:
continue
tooltip = self.device + ' ' + keystore.label
button = StatusBarButton(QIcon(self.icon_file), tooltip,
tooltip = self.device + ' ' + (keystore.label or '')
button = StatusBarButton(QIcon(self.icon_unpaired), tooltip,
partial(self.settings_dialog, window, keystore))
window.statusBar().addPermanentWidget(button)
keystore.handler = self.create_handler(window)
handler = self.create_handler(window)
handler.button = button
keystore.handler = handler
keystore.thread = TaskThread(window, window.on_error)
# Trigger a pairing
keystore.thread.add(partial(self.get_client, keystore))
window.connect(window, SIGNAL('keystore_status'), self._update_status)
def update_status(self, handler, paired):
handler.win.emit(SIGNAL('keystore_status'), handler, paired)
def _update_status(self, handler, paired):
icon = self.icon_paired if paired else self.icon_unpaired
handler.button.setIcon(QIcon(icon))
@hook
def receive_menu(self, menu, addrs, wallet):
if type(wallet) is not Standard_Wallet:
@@ -222,7 +233,10 @@ def qt_plugin_class(base_plugin_class):
forgotten their PIN or it is in bootloader mode.'''
device_id = self.device_manager().xpub_id(keystore.xpub)
if not device_id:
info = self.device_manager().select_device(keystore.handler, self, keystore)
try:
info = self.device_manager().select_device(self, keystore.handler, keystore)
except UserCancelled:
return
device_id = info.device.id_
return device_id