From c397f84fed33cd941859837237eb6b82f5acc414 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Fri, 11 Jul 2014 19:29:18 +0200 Subject: [PATCH] simplified dialog for new file name --- gui/qt/main_window.py | 16 ++++++++++++---- gui/qt/util.py | 16 ++++++++++++++++ 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py index 1715139..c8575b0 100644 --- a/gui/qt/main_window.py +++ b/gui/qt/main_window.py @@ -75,7 +75,7 @@ PR_ERROR = 4 # could not parse from electrum import ELECTRUM_VERSION import re -from util import * +from util import MyTreeWidget, HelpButton, EnterButton, line_dialog, text_dialog, ok_cancel_buttons, close_button def format_status(x): @@ -286,12 +286,20 @@ class ElectrumWindow(QMainWindow): import installwizard wallet_folder = os.path.dirname(self.wallet.storage.path) - filename = unicode( QFileDialog.getSaveFileName(self, _('Enter a new file name'), wallet_folder) ) + i = 1 + while True: + filename = "wallet_%d"%i + if filename in os.listdir(wallet_folder): + i += 1 + else: + break + + filename = line_dialog(self, _('New Wallet'), _('Enter file name') + ':', _('OK'), filename) if not filename: return - filename = os.path.join(wallet_folder, filename) - storage = WalletStorage({'wallet_path': filename}) + full_path = os.path.join(wallet_folder, filename) + storage = WalletStorage({'wallet_path': full_path}) if storage.file_exists: QMessageBox.critical(None, "Error", _("File exists")) return diff --git a/gui/qt/util.py b/gui/qt/util.py index 6d83871..c021e8b 100644 --- a/gui/qt/util.py +++ b/gui/qt/util.py @@ -110,6 +110,22 @@ def ok_cancel_buttons(dialog, ok_label=_("OK") ): hbox, b = ok_cancel_buttons2(dialog, ok_label) return hbox +def line_dialog(parent, title, label, ok_label, default=None): + dialog = QDialog(parent) + dialog.setMinimumWidth(500) + dialog.setWindowTitle(title) + dialog.setModal(1) + l = QVBoxLayout() + dialog.setLayout(l) + l.addWidget(QLabel(label)) + txt = QLineEdit() + if default: + txt.setText(default) + l.addWidget(txt) + l.addLayout(ok_cancel_buttons(dialog, ok_label)) + if dialog.exec_(): + return unicode(txt.text()) + def text_dialog(parent, title, label, ok_label, default=None): from qrtextedit import QRTextEdit dialog = QDialog(parent) -- 1.7.1