|
|
@ -297,7 +297,8 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): |
|
|
|
title += ' [%s]' % (_('watching only')) |
|
|
|
self.setWindowTitle(title) |
|
|
|
self.password_menu.setEnabled(self.wallet.can_change_password()) |
|
|
|
self.import_menu.setVisible(self.wallet.can_import()) |
|
|
|
self.import_privkey_menu.setVisible(self.wallet.can_import_privkey()) |
|
|
|
self.import_address_menu.setVisible(self.wallet.can_import_address()) |
|
|
|
self.export_menu.setEnabled(self.wallet.can_export()) |
|
|
|
|
|
|
|
def warn_if_watching_only(self): |
|
|
@ -395,8 +396,9 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): |
|
|
|
|
|
|
|
self.private_keys_menu = wallet_menu.addMenu(_("&Private keys")) |
|
|
|
self.private_keys_menu.addAction(_("&Sweep"), self.sweep_key_dialog) |
|
|
|
self.import_menu = self.private_keys_menu.addAction(_("&Import"), self.do_import_privkey) |
|
|
|
self.import_privkey_menu = self.private_keys_menu.addAction(_("&Import"), self.do_import_privkey) |
|
|
|
self.export_menu = self.private_keys_menu.addAction(_("&Export"), self.export_privkeys_dialog) |
|
|
|
self.import_address_menu = wallet_menu.addAction(_("Import addresses"), self.import_addresses) |
|
|
|
wallet_menu.addAction(_("&Export History"), self.export_history_dialog) |
|
|
|
wallet_menu.addAction(_("Search"), self.toggle_search).setShortcut(QKeySequence("Ctrl+S")) |
|
|
|
wallet_menu.addAction(_("Addresses"), self.toggle_addresses_tab).setShortcut(QKeySequence("Ctrl+A")) |
|
|
@ -1408,9 +1410,9 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): |
|
|
|
self.contact_list = l = ContactList(self) |
|
|
|
return self.create_list_tab(l) |
|
|
|
|
|
|
|
def delete_imported_key(self, addr): |
|
|
|
def remove_address(self, addr): |
|
|
|
if self.question(_("Do you want to remove")+" %s "%addr +_("from your wallet?")): |
|
|
|
self.wallet.delete_imported_key(addr) |
|
|
|
self.wallet.delete_address(addr) |
|
|
|
self.address_list.update() |
|
|
|
self.history_list.update() |
|
|
|
|
|
|
@ -2196,34 +2198,39 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): |
|
|
|
self.warn_if_watching_only() |
|
|
|
self.show_transaction(tx) |
|
|
|
|
|
|
|
|
|
|
|
@protected |
|
|
|
def do_import_privkey(self, password): |
|
|
|
if not self.wallet.keystore.can_import(): |
|
|
|
return |
|
|
|
text = text_dialog(self, _('Import private keys'), _("Enter private keys")+':', _("Import")) |
|
|
|
def _do_import(self, title, msg, func): |
|
|
|
text = text_dialog(self, title, msg + ' :', _('Import')) |
|
|
|
if not text: |
|
|
|
return |
|
|
|
text = str(text).split() |
|
|
|
badkeys = [] |
|
|
|
addrlist = [] |
|
|
|
for key in text: |
|
|
|
bad = [] |
|
|
|
good = [] |
|
|
|
for key in str(text).split(): |
|
|
|
try: |
|
|
|
addr = self.wallet.import_key(key, password) |
|
|
|
addr = func(key) |
|
|
|
good.append(addr) |
|
|
|
except BaseException as e: |
|
|
|
badkeys.append(key) |
|
|
|
bad.append(key) |
|
|
|
continue |
|
|
|
if not addr: |
|
|
|
badkeys.append(key) |
|
|
|
else: |
|
|
|
addrlist.append(addr) |
|
|
|
if addrlist: |
|
|
|
self.show_message(_("The following addresses were added") + ':\n' + '\n'.join(addrlist)) |
|
|
|
if badkeys: |
|
|
|
self.show_critical(_("The following inputs could not be imported") + ':\n'+ '\n'.join(badkeys)) |
|
|
|
if good: |
|
|
|
self.show_message(_("The following addresses were added") + ':\n' + '\n'.join(good)) |
|
|
|
if bad: |
|
|
|
self.show_critical(_("The following inputs could not be imported") + ':\n'+ '\n'.join(bad)) |
|
|
|
self.address_list.update() |
|
|
|
self.history_list.update() |
|
|
|
|
|
|
|
def import_addresses(self): |
|
|
|
if not self.wallet.can_import_address(): |
|
|
|
return |
|
|
|
title, msg = _('Import addresses'), _("Enter addresses") |
|
|
|
self._do_import(title, msg, self.wallet.import_address) |
|
|
|
|
|
|
|
@protected |
|
|
|
def do_import_privkey(self, password): |
|
|
|
if not self.wallet.can_import_privkey(): |
|
|
|
return |
|
|
|
title, msg = _('Import private keys'), _("Enter private keys") |
|
|
|
self._do_import(title, msg, lambda x: self.wallet.import_key(x, password)) |
|
|
|
|
|
|
|
|
|
|
|
def settings_dialog(self): |
|
|
|
self.need_restart = False |
|
|
|