URI: 
       treplace expert mode with a button for gui_detailed_view - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 596bddbf7e716df80645ce878ac2ffcc90f864f4
   DIR parent da9351260c68b6ce6cf0685ce5ebb85e34bd1cb4
  HTML Author: thomasv <thomasv@gitorious>
       Date:   Thu, 11 Oct 2012 12:56:57 +0200
       
       replace expert mode with a button for gui_detailed_view
       
       Diffstat:
         M lib/gui_qt.py                       |     123 +++++++++++++++----------------
         M lib/wallet.py                       |       6 +++---
       
       2 files changed, 62 insertions(+), 67 deletions(-)
       ---
   DIR diff --git a/lib/gui_qt.py b/lib/gui_qt.py
       t@@ -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')])
       t@@ -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")
       t@@ -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)
       t@@ -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,'')
       t@@ -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) 
       t@@ -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)
       t@@ -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)
       -
       -        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)
       +        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)
                
                vbox.addLayout(ok_cancel_buttons(d))
                d.setLayout(vbox) 
       t@@ -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 
   DIR diff --git a/lib/wallet.py b/lib/wallet.py
       t@@ -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
       t@@ -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,
       t@@ -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')