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.receive_list = l
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
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):
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(_("View QR code"),lambda: self.show_address_qrcode(addr))
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")
menu.addAction(t, lambda: self.toggle_freeze(addr))
t = _("Unprioritize") if addr in self.wallet.prioritized_addresses else _("Prioritize")
@ -777,9 +790,9 @@ class ElectrumWindow(QMainWindow):
def update_receive_tab(self):
l = self.receive_list
l.clear()
l.setColumnHidden(0,not self.wallet.expert_mode)
l.setColumnHidden(3,not self.wallet.expert_mode)
l.setColumnHidden(4,not self.wallet.expert_mode)
l.setColumnHidden(0,not self.wallet.gui_detailed_view)
l.setColumnHidden(3,not self.wallet.gui_detailed_view)
l.setColumnHidden(4,not self.wallet.gui_detailed_view)
l.setColumnWidth(0, 50)
l.setColumnWidth(1, 310)
l.setColumnWidth(2, 250)
@ -790,7 +803,7 @@ class ElectrumWindow(QMainWindow):
is_red = False
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
label = self.wallet.labels.get(address,'')
@ -842,7 +855,7 @@ class ElectrumWindow(QMainWindow):
l = self.contacts_list
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(1, 330)
l.setColumnWidth(2, 100)
@ -1179,14 +1192,6 @@ class ElectrumWindow(QMainWindow):
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):
d = QDialog(self)
@ -1222,38 +1227,32 @@ class ElectrumWindow(QMainWindow):
grid.addWidget(nz_e, 3, 1)
nz_e.textChanged.connect(lambda: numbify(nz_e,True))
cb = QCheckBox(_('Expert mode'))
grid.addWidget(cb, 4, 0)
cb.setChecked(self.wallet.expert_mode)
usechange_cb = QCheckBox(_('Use change addresses'))
grid.addWidget(usechange_cb, 5, 0)
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:
usechange_cb = QCheckBox(_('Use change addresses'))
grid.addWidget(usechange_cb, 5, 0)
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)
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' \
+ _('Your current gap limit is') + ': %d'%self.wallet.gap_limit + '\n' \
+ _('Given the current status of your address sequence, the minimum gap limit you can use is: ') + '%d'%self.wallet.min_acceptable_gap() + '\n\n' \
+ _('Warning') + ': ' \
+ _('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'
gap_e = QLineEdit()
gap_e.setText("%d"% self.wallet.gap_limit)
grid.addWidget(QLabel(_('Gap limit')), 6, 0)
grid.addWidget(gap_e, 6, 1)
grid.addWidget(HelpButton(msg), 6, 2)
gap_e.textChanged.connect(lambda: numbify(nz_e,True))
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)
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' \
+ _('Your current gap limit is') + ': %d'%self.wallet.gap_limit + '\n' \
+ _('Given the current status of your address sequence, the minimum gap limit you can use is: ') + '%d'%self.wallet.min_acceptable_gap() + '\n\n' \
+ _('Warning') + ': ' \
+ _('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'
gap_e = QLineEdit()
gap_e.setText("%d"% self.wallet.gap_limit)
grid.addWidget(QLabel(_('Gap limit')), 6, 0)
grid.addWidget(gap_e, 6, 1)
grid.addWidget(HelpButton(msg), 6, 2)
gap_e.textChanged.connect(lambda: numbify(nz_e,True))
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))
d.setLayout(vbox)
@ -1286,27 +1285,23 @@ class ElectrumWindow(QMainWindow):
self.update_receive_tab()
self.wallet.save()
if self.wallet.expert_mode:
self.wallet.use_change = usechange_cb.isChecked()
try:
n = int(gap_e.text())
except:
self.wallet.use_change = usechange_cb.isChecked()
try:
n = int(gap_e.text())
except:
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'))
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.set_key("gui", str(gui.currentText()).lower())
cfg.save_config()
cfg = SimpleConfig()
cfg.set_key("gui", str(gui.currentText()).lower())
cfg.save_config()
self.set_expert_mode(cb.isChecked())
@staticmethod

View File

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