From 125247df8138cb2c4e5d6f5eaa612e98d1e25498 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Fri, 14 Jul 2017 12:53:35 +0200 Subject: [PATCH] fix unicode path issue #2269 --- gui/qt/installwizard.py | 6 ++++-- gui/qt/main_window.py | 11 ++++++++--- lib/base_wizard.py | 2 +- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/gui/qt/installwizard.py b/gui/qt/installwizard.py index a9107508d..ae8a21458 100644 --- a/gui/qt/installwizard.py +++ b/gui/qt/installwizard.py @@ -174,7 +174,8 @@ class InstallWizard(QDialog, MessageBoxMixin, BaseWizard): self.name_e.setText(path) def on_filename(filename): - path = os.path.join(wallet_folder, unicode(filename)) + filename = unicode(filename) + path = os.path.join(wallet_folder, filename.encode('utf8')) try: self.storage = WalletStorage(path) except IOError: @@ -204,7 +205,8 @@ class InstallWizard(QDialog, MessageBoxMixin, BaseWizard): button.clicked.connect(on_choose) self.name_e.textChanged.connect(on_filename) - self.name_e.setText(os.path.basename(self.storage.path)) + n = os.path.basename(self.storage.path) + self.name_e.setText(n.decode('utf8')) while True: if self.storage.file_exists() and not self.storage.is_encrypted(): diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py index d60724fd2..f2c1b13be 100644 --- a/gui/qt/main_window.py +++ b/gui/qt/main_window.py @@ -352,7 +352,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): def watching_only_changed(self): title = 'Electrum %s - %s' % (self.wallet.electrum_version, - self.wallet.basename()) + self.wallet.basename().decode('utf8')) extra = [self.wallet.storage.get('wallet_type', '?')] if self.wallet.is_watching_only(): self.warn_if_watching_only() @@ -397,7 +397,12 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): self.show_critical(_("Electrum was unable to copy your wallet file to the specified location.") + "\n" + str(reason), title=_("Unable to create backup")) def update_recently_visited(self, filename): + filename = filename.decode('utf8') recent = self.config.get('recently_open', []) + try: + sorted(recent) + except: + recent = [] if filename in recent: recent.remove(filename) recent.insert(0, filename) @@ -407,7 +412,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): for i, k in enumerate(sorted(recent)): b = os.path.basename(k) def loader(k): - return lambda: self.gui_object.new_window(k) + return lambda: self.gui_object.new_window(k.encode('utf8')) self.recently_visited_menu.addAction(b, loader(k)).setShortcut(QKeySequence("Ctrl+%d"%(i+1))) self.recently_visited_menu.setEnabled(len(recent)) @@ -693,7 +698,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): text = _("Not connected") icon = QIcon(":icons/status_disconnected.png") - self.tray.setToolTip("%s (%s)" % (text, self.wallet.basename())) + self.tray.setToolTip("%s (%s)" % (text, self.wallet.basename().decode('utf8'))) self.balance_label.setText(text) self.status_button.setIcon( icon ) diff --git a/lib/base_wizard.py b/lib/base_wizard.py index 31cb426f7..d9513c9bd 100644 --- a/lib/base_wizard.py +++ b/lib/base_wizard.py @@ -73,7 +73,7 @@ class BaseWizard(object): def new(self): name = os.path.basename(self.storage.path) - title = _("Create '%s'"%name) + title = _("Create") + ' ' + name.decode('utf8') message = '\n'.join([ _("What kind of wallet do you want to create?") ])