From 9945e0926c88b9a12448e7e8bad240c62c0a5d64 Mon Sep 17 00:00:00 2001 From: Maran Date: Fri, 31 May 2013 13:45:59 +0200 Subject: [PATCH] Implemented all menu triggers --- gui/gui_classic.py | 70 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 61 insertions(+), 9 deletions(-) diff --git a/gui/gui_classic.py b/gui/gui_classic.py index efbf40b22..7b64edf5c 100644 --- a/gui/gui_classic.py +++ b/gui/gui_classic.py @@ -20,6 +20,7 @@ import sys, time, datetime, re, threading from i18n import _, set_language from electrum.util import print_error, print_msg import os.path, json, ast, traceback +import shutil try: @@ -309,50 +310,101 @@ class ElectrumWindow(QMainWindow): self.run_hook('init_gui') + def select_wallet_file(self): + file_name = self.getOpenFileName("Select your wallet file", "*.dat") + if not file_name: + return + else: + self.load_wallet(file_name) + + # TODO: I rather import this from the lite gui, is that possible? + def backup_wallet(self): + try: + folderName = QFileDialog.getExistingDirectory(QWidget(), _('Select folder to save a copy of your wallet to'), os.path.expanduser('~/')) + if folderName: + # TODO: Can we get the current wallet file instead of bruteforcing the default one? + sourceFile = util.user_dir() + '/electrum.dat' + shutil.copy2(sourceFile, str(folderName)) + QMessageBox.information(None,"Wallet backup created", _("A copy of your wallet file was created in")+" '%s'" % str(folderName)) + except (IOError, os.error), reason: + QMessageBox.critical(None,"Unable to create backup", _("Electrum was unable to copy your wallet file to the specified location.")+"\n" + str(reason)) def init_menubar(self): menubar = QMenuBar() electrum_menu = menubar.addMenu(_("&File")) + open_wallet_action = electrum_menu.addAction(_("Open wallet")) + open_wallet_action.triggered.connect(self.select_wallet_file) + preferences_name = _("Preferences") if sys.platform == 'darwin': preferences_name = _("Electrum preferences") # Settings / Preferences are all reserved keywords in OSX using this as work around preferences_menu = electrum_menu.addAction(preferences_name) + preferences_menu.triggered.connect(self.settings_dialog) electrum_menu.addSeparator() accounts_menu = electrum_menu.addMenu(_("&Accounts")) - accounts_menu.addAction(_("All accounts")) - accounts_menu.addAction(_("Main account")) - accounts_menu.addAction(_("Imported keys")) + all_accounts = accounts_menu.addAction(_("All accounts")) + all_accounts.triggered.connect(lambda: self.change_account(_("All accounts"))) + + main_account = accounts_menu.addAction(_("Main account")) + main_account.triggered.connect(lambda: self.change_account(_("Main account"))) + + imported_account = accounts_menu.addAction(_("Imported keys")) + imported_account.triggered.connect(lambda: self.change_account(_("Imported keys"))) raw_transaction_menu = electrum_menu.addMenu(_("&Load raw transaction")) + raw_transaction_file = raw_transaction_menu.addAction(_("&From file")) + raw_transaction_file.triggered.connect(self.do_process_from_file) + raw_transaction_text = raw_transaction_menu.addAction(_("&From text")) + raw_transaction_text.triggered.connect(self.do_process_from_text) electrum_menu.addSeparator() quit_item = electrum_menu.addAction(_("&Close")) + quit_item.triggered.connect(self.close) wallet_menu = menubar.addMenu(_("&Wallet")) wallet_backup = wallet_menu.addAction(_("&Create backup")) - show_seed = wallet_menu.addAction(_("&Show seed")) - chnage_password = wallet_menu.addAction(_("&Password")) + wallet_backup.triggered.connect(self.backup_wallet) + + show_menu = wallet_menu.addMenu(_("Show")) + + if self.wallet.seed: + show_seed = show_menu.addAction(_("&Seed")) + show_seed.triggered.connect(self.show_seed_dialog) + + show_mpk = show_menu.addAction(_("&Master Public Key")) + show_mpk.triggered.connect(self.show_master_public_key) + wallet_menu.addSeparator() new_contact = wallet_menu.addAction(_("&New contact")) + new_contact.triggered.connect(self.new_contact_dialog) import_menu = menubar.addMenu(_("&Import")) in_labels = import_menu.addAction(_("&Labels")) - in_private_keys = import_menu.addAction(_("&Private key")) + in_labels.triggered.connect(self.do_import_labels) + + in_private_keys = import_menu.addAction(_("&Private keys")) + in_private_keys.triggered.connect(self.do_import_privkey) export_menu = menubar.addMenu(_("&Export")) ex_private_keys = export_menu.addAction(_("&Private keys")) + ex_private_keys.triggered.connect(self.do_export_privkeys) + ex_history = export_menu.addAction(_("&History")) + ex_history.triggered.connect(self.do_export_history) + ex_labels = export_menu.addAction(_("&Labels")) + ex_labels.triggered.connect(self.do_export_labels) help_menu = menubar.addMenu(_("&Help")) - help_menu.addAction(_("&About")) - help_menu.addAction(_("&Documentation")) # http://electrum.org/documentation.html - help_menu.addAction(_("&Official website")) + doc_open = help_menu.addAction(_("&Documentation")) + doc_open.triggered.connect(lambda: webbrowser.open("http://electrum.org/documentation.html")) + web_open = help_menu.addAction(_("&Official website")) + web_open.triggered.connect(lambda: webbrowser.open("http://electrum.org")) self.setMenuBar(menubar)