replace expert mode with a button for gui_detailed_view

This commit is contained in:
thomasv 2012-10-11 12:56:57 +02:00
parent da9351260c
commit 596bddbf7e
2 changed files with 61 additions and 66 deletions

View File

@ -690,8 +690,21 @@ class ElectrumWindow(QMainWindow):
self.connect(l, SIGNAL('itemChanged(QTreeWidgetItem*, int)'), lambda a,b: self.address_label_changed(a,b,l,1,2)) self.connect(l, SIGNAL('itemChanged(QTreeWidgetItem*, int)'), lambda a,b: self.address_label_changed(a,b,l,1,2))
self.receive_list = l self.receive_list = l
self.receive_buttons_hbox = hbox self.receive_buttons_hbox = hbox
self.details_button = EnterButton(self.details_button_text(), self.toggle_detailed_view)
hbox.addWidget(self.details_button)
hbox.addStretch(1)
return w return w
def details_button_text(self):
return _('Hide details') if self.wallet.gui_detailed_view else _('Show details')
def toggle_detailed_view(self):
self.wallet.gui_detailed_view = not self.wallet.gui_detailed_view
self.details_button.setText(self.details_button_text())
self.wallet.save()
self.update_receive_tab()
self.update_contacts_tab()
def create_contacts_tab(self): def create_contacts_tab(self):
l,w,hbox = self.create_list_tab([_('Address'), _('Label'), _('Tx')]) l,w,hbox = self.create_list_tab([_('Address'), _('Label'), _('Tx')])
@ -718,7 +731,7 @@ class ElectrumWindow(QMainWindow):
menu.addAction(_("Copy to Clipboard"), lambda: self.app.clipboard().setText(addr)) menu.addAction(_("Copy to Clipboard"), lambda: self.app.clipboard().setText(addr))
menu.addAction(_("View QR code"),lambda: self.show_address_qrcode(addr)) menu.addAction(_("View QR code"),lambda: self.show_address_qrcode(addr))
menu.addAction(_("Edit label"), lambda: self.edit_label(True)) menu.addAction(_("Edit label"), lambda: self.edit_label(True))
if self.wallet.expert_mode: if self.wallet.gui_detailed_view:
t = _("Unfreeze") if addr in self.wallet.frozen_addresses else _("Freeze") t = _("Unfreeze") if addr in self.wallet.frozen_addresses else _("Freeze")
menu.addAction(t, lambda: self.toggle_freeze(addr)) menu.addAction(t, lambda: self.toggle_freeze(addr))
t = _("Unprioritize") if addr in self.wallet.prioritized_addresses else _("Prioritize") t = _("Unprioritize") if addr in self.wallet.prioritized_addresses else _("Prioritize")
@ -777,9 +790,9 @@ class ElectrumWindow(QMainWindow):
def update_receive_tab(self): def update_receive_tab(self):
l = self.receive_list l = self.receive_list
l.clear() l.clear()
l.setColumnHidden(0,not self.wallet.expert_mode) l.setColumnHidden(0,not self.wallet.gui_detailed_view)
l.setColumnHidden(3,not self.wallet.expert_mode) l.setColumnHidden(3,not self.wallet.gui_detailed_view)
l.setColumnHidden(4,not self.wallet.expert_mode) l.setColumnHidden(4,not self.wallet.gui_detailed_view)
l.setColumnWidth(0, 50) l.setColumnWidth(0, 50)
l.setColumnWidth(1, 310) l.setColumnWidth(1, 310)
l.setColumnWidth(2, 250) l.setColumnWidth(2, 250)
@ -790,7 +803,7 @@ class ElectrumWindow(QMainWindow):
is_red = False is_red = False
for address in self.wallet.all_addresses(): for address in self.wallet.all_addresses():
if self.wallet.is_change(address) and not self.wallet.expert_mode: if self.wallet.is_change(address) and not self.wallet.gui_detailed_view:
continue continue
label = self.wallet.labels.get(address,'') label = self.wallet.labels.get(address,'')
@ -842,7 +855,7 @@ class ElectrumWindow(QMainWindow):
l = self.contacts_list l = self.contacts_list
l.clear() l.clear()
l.setColumnHidden(2, not self.wallet.expert_mode) l.setColumnHidden(2, not self.wallet.gui_detailed_view)
l.setColumnWidth(0, 350) l.setColumnWidth(0, 350)
l.setColumnWidth(1, 330) l.setColumnWidth(1, 330)
l.setColumnWidth(2, 100) l.setColumnWidth(2, 100)
@ -1179,14 +1192,6 @@ class ElectrumWindow(QMainWindow):
return True return True
def set_expert_mode(self, b):
self.wallet.expert_mode = b
self.wallet.save()
self.update_receive_tab()
self.update_contacts_tab()
# if self.wallet.seed:
# self.nochange_cb.setHidden(not self.wallet.expert_mode)
def settings_dialog(self): def settings_dialog(self):
d = QDialog(self) d = QDialog(self)
@ -1222,38 +1227,32 @@ class ElectrumWindow(QMainWindow):
grid.addWidget(nz_e, 3, 1) grid.addWidget(nz_e, 3, 1)
nz_e.textChanged.connect(lambda: numbify(nz_e,True)) nz_e.textChanged.connect(lambda: numbify(nz_e,True))
cb = QCheckBox(_('Expert mode')) usechange_cb = QCheckBox(_('Use change addresses'))
grid.addWidget(cb, 4, 0) grid.addWidget(usechange_cb, 5, 0)
cb.setChecked(self.wallet.expert_mode) usechange_cb.setChecked(self.wallet.use_change)
grid.addWidget(HelpButton(_('Using a change addresses makes it more difficult for other people to track your transactions. ')), 5, 2)
if self.wallet.expert_mode: msg = _('The gap limit is the maximal number of contiguous unused addresses in your sequence of receiving addresses.') + '\n' \
+ _('You may increase it if you need more receiving addresses.') + '\n\n' \
usechange_cb = QCheckBox(_('Use change addresses')) + _('Your current gap limit is') + ': %d'%self.wallet.gap_limit + '\n' \
grid.addWidget(usechange_cb, 5, 0) + _('Given the current status of your address sequence, the minimum gap limit you can use is: ') + '%d'%self.wallet.min_acceptable_gap() + '\n\n' \
usechange_cb.setChecked(self.wallet.use_change) + _('Warning') + ': ' \
grid.addWidget(HelpButton(_('Using a change addresses makes it more difficult for other people to track your transactions. ')), 5, 2) + _('The gap limit parameter must be provided in order to recover your wallet from seed.') + ' ' \
+ _('Do not modify it if you do not understand what you are doing, or if you expect to recover your wallet without knowing it!') + '\n\n'
msg = _('The gap limit is the maximal number of contiguous unused addresses in your sequence of receiving addresses.') + '\n' \ gap_e = QLineEdit()
+ _('You may increase it if you need more receiving addresses.') + '\n\n' \ gap_e.setText("%d"% self.wallet.gap_limit)
+ _('Your current gap limit is') + ': %d'%self.wallet.gap_limit + '\n' \ grid.addWidget(QLabel(_('Gap limit')), 6, 0)
+ _('Given the current status of your address sequence, the minimum gap limit you can use is: ') + '%d'%self.wallet.min_acceptable_gap() + '\n\n' \ grid.addWidget(gap_e, 6, 1)
+ _('Warning') + ': ' \ grid.addWidget(HelpButton(msg), 6, 2)
+ _('The gap limit parameter must be provided in order to recover your wallet from seed.') + ' ' \ gap_e.textChanged.connect(lambda: numbify(nz_e,True))
+ _('Do not modify it if you do not understand what you are doing, or if you expect to recover your wallet without knowing it!') + '\n\n'
gap_e = QLineEdit() gui = QComboBox()
gap_e.setText("%d"% self.wallet.gap_limit) gui.addItems(['Lite', 'Qt'])
grid.addWidget(QLabel(_('Gap limit')), 6, 0) cfg = SimpleConfig()
grid.addWidget(gap_e, 6, 1) gui.setCurrentIndex(gui.findText(cfg.config["gui"].capitalize()))
grid.addWidget(HelpButton(msg), 6, 2) grid.addWidget(QLabel(_('Default GUI') + ':'), 7, 0)
gap_e.textChanged.connect(lambda: numbify(nz_e,True)) grid.addWidget(gui, 7, 1)
grid.addWidget(HelpButton(_('Select which GUI mode to use at start up. ')), 7, 2)
gui = QComboBox()
gui.addItems(['Lite', 'Qt'])
cfg = SimpleConfig()
gui.setCurrentIndex(gui.findText(cfg.config["gui"].capitalize()))
grid.addWidget(QLabel(_('Default GUI') + ':'), 7, 0)
grid.addWidget(gui, 7, 1)
grid.addWidget(HelpButton(_('Select which GUI mode to use at start up. ')), 7, 2)
vbox.addLayout(ok_cancel_buttons(d)) vbox.addLayout(ok_cancel_buttons(d))
d.setLayout(vbox) d.setLayout(vbox)
@ -1286,27 +1285,23 @@ class ElectrumWindow(QMainWindow):
self.update_receive_tab() self.update_receive_tab()
self.wallet.save() self.wallet.save()
if self.wallet.expert_mode: self.wallet.use_change = usechange_cb.isChecked()
try:
self.wallet.use_change = usechange_cb.isChecked() n = int(gap_e.text())
except:
try: QMessageBox.warning(self, _('Error'), _('Invalid value'), _('OK'))
n = int(gap_e.text()) return
except: if self.wallet.gap_limit != n:
r = self.wallet.change_gap_limit(n)
if r:
self.update_receive_tab()
else:
QMessageBox.warning(self, _('Error'), _('Invalid value'), _('OK')) QMessageBox.warning(self, _('Error'), _('Invalid value'), _('OK'))
return
if self.wallet.gap_limit != n:
r = self.wallet.change_gap_limit(n)
if r:
self.update_receive_tab()
else:
QMessageBox.warning(self, _('Error'), _('Invalid value'), _('OK'))
cfg = SimpleConfig() cfg = SimpleConfig()
cfg.set_key("gui", str(gui.currentText()).lower()) cfg.set_key("gui", str(gui.currentText()).lower())
cfg.save_config() cfg.save_config()
self.set_expert_mode(cb.isChecked())
@staticmethod @staticmethod

View File

@ -304,7 +304,7 @@ class Wallet:
self.authorities = {} # trusted addresses self.authorities = {} # trusted addresses
self.frozen_addresses = [] self.frozen_addresses = []
self.prioritized_addresses = [] self.prioritized_addresses = []
self.expert_mode = False self.gui_detailed_view = False
self.receipts = {} # signed URIs self.receipts = {} # signed URIs
self.receipt = None # next receipt self.receipt = None # next receipt
@ -654,7 +654,7 @@ class Wallet:
'num_zeros': self.num_zeros, 'num_zeros': self.num_zeros,
'frozen_addresses': self.frozen_addresses, 'frozen_addresses': self.frozen_addresses,
'prioritized_addresses': self.prioritized_addresses, 'prioritized_addresses': self.prioritized_addresses,
'expert_mode': self.expert_mode, 'gui_detailed_view': self.gui_detailed_view,
'gap_limit': self.gap_limit, 'gap_limit': self.gap_limit,
'debug_server': self.debug_server, 'debug_server': self.debug_server,
'conversion_currency': self.conversion_currency, 'conversion_currency': self.conversion_currency,
@ -699,7 +699,7 @@ class Wallet:
self.num_zeros = d.get('num_zeros', 0) self.num_zeros = d.get('num_zeros', 0)
self.frozen_addresses = d.get('frozen_addresses', []) self.frozen_addresses = d.get('frozen_addresses', [])
self.prioritized_addresses = d.get('prioritized_addresses', []) self.prioritized_addresses = d.get('prioritized_addresses', [])
self.expert_mode = d.get('expert_mode', False) self.gui_detailed_view = d.get('gui_detailed_view', False)
self.gap_limit = d.get('gap_limit', 5) self.gap_limit = d.get('gap_limit', 5)
self.debug_server = d.get('debug_server', False) self.debug_server = d.get('debug_server', False)
self.conversion_currency = d.get('conversion_currency', 'USD') self.conversion_currency = d.get('conversion_currency', 'USD')