better code organization
function parameters should be lowercase Fix crash on invalid labels import Added invoice exporting and reduced duplicate code Better exception handling removed json module import some more cleanup Cleaned up some stuff Added exporting contacts
This commit is contained in:
@@ -61,7 +61,7 @@ from .fee_slider import FeeSlider
|
||||
|
||||
from .util import *
|
||||
|
||||
from electrum.util import profiler
|
||||
from electrum.util import profiler, export_meta, import_meta
|
||||
|
||||
class StatusBarButton(QPushButton):
|
||||
def __init__(self, icon, tooltip, func):
|
||||
@@ -484,8 +484,10 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
|
||||
contacts_menu = wallet_menu.addMenu(_("Contacts"))
|
||||
contacts_menu.addAction(_("&New"), self.new_contact_dialog)
|
||||
contacts_menu.addAction(_("Import"), lambda: self.contact_list.import_contacts())
|
||||
contacts_menu.addAction(_("Export"), lambda: self.contact_list.export_contacts())
|
||||
invoices_menu = wallet_menu.addMenu(_("Invoices"))
|
||||
invoices_menu.addAction(_("Import"), lambda: self.invoice_list.import_invoices())
|
||||
invoices_menu.addAction(_("Export"), lambda: self.invoice_list.export_invoices())
|
||||
|
||||
wallet_menu.addSeparator()
|
||||
wallet_menu.addAction(_("Find"), self.toggle_search).setShortcut(QKeySequence("Ctrl+F"))
|
||||
@@ -2417,29 +2419,23 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
|
||||
f.write(json.dumps(pklist, indent = 4))
|
||||
|
||||
def do_import_labels(self):
|
||||
labelsFile = self.getOpenFileName(_("Open labels file"), "*.json")
|
||||
if not labelsFile: return
|
||||
try:
|
||||
with open(labelsFile, 'r') as f:
|
||||
data = f.read()
|
||||
for key, value in json.loads(data).items():
|
||||
self.wallet.set_label(key, value)
|
||||
self.show_message(_("Your labels were imported from") + " '%s'" % str(labelsFile))
|
||||
except (IOError, os.error) as reason:
|
||||
self.show_critical(_("Electrum was unable to import your labels.") + "\n" + str(reason))
|
||||
self.address_list.update()
|
||||
self.history_list.update()
|
||||
def import_labels(path):
|
||||
#TODO: Import labels validation
|
||||
def import_labels_validate(data):
|
||||
return data
|
||||
def import_labels_assign(data):
|
||||
for key, value in data.items():
|
||||
self.wallet.set_label(key, value)
|
||||
import_meta(path, import_labels_validate, import_labels_assign)
|
||||
def on_import():
|
||||
self.address_list.update()
|
||||
self.history_list.update()
|
||||
import_meta_gui(self, _('labels'), import_labels, on_import)
|
||||
|
||||
def do_export_labels(self):
|
||||
labels = self.wallet.labels
|
||||
try:
|
||||
fileName = self.getSaveFileName(_("Select file to save your labels"), 'electrum_labels.json', "*.json")
|
||||
if fileName:
|
||||
with open(fileName, 'w+') as f:
|
||||
json.dump(labels, f, indent=4, sort_keys=True)
|
||||
self.show_message(_("Your labels were exported to") + " '%s'" % str(fileName))
|
||||
except (IOError, os.error) as reason:
|
||||
self.show_critical(_("Electrum was unable to export your labels.") + "\n" + str(reason))
|
||||
def export_labels(filename):
|
||||
export_meta(self.wallet.labels, filename)
|
||||
export_meta_gui(self, _('labels'), export_labels)
|
||||
|
||||
def sweep_key_dialog(self):
|
||||
d = WindowModalDialog(self, title=_('Sweep private keys'))
|
||||
|
||||
Reference in New Issue
Block a user