URI: 
       tdisable setting widgets when setting is not modifiable. - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 65b13b88f4cf820bb5be6babf1581694f7c8111f
   DIR parent ef2f832116db89c19fb9d74cb9763b7bdb347a5f
  HTML Author: thomasv <thomasv@gitorious>
       Date:   Fri, 12 Oct 2012 17:40:37 +0200
       
       disable setting widgets when setting is not modifiable.
       
       Diffstat:
         M lib/gui_qt.py                       |      25 ++++++++++++++++++-------
         M lib/simple_config.py                |       4 ++--
         M lib/wallet.py                       |       9 +++++----
       
       3 files changed, 25 insertions(+), 13 deletions(-)
       ---
   DIR diff --git a/lib/gui_qt.py b/lib/gui_qt.py
       t@@ -1215,6 +1215,7 @@ class ElectrumWindow(QMainWindow):
        
                fee_e = QLineEdit()
                fee_e.setText("%s"% str( Decimal( self.wallet.fee)/100000000 ) )
       +        if not self.config.is_modifiable('fee'): fee_e.setEnabled(False)
                grid.addWidget(QLabel(_('Transaction fee')), 2, 0)
                grid.addWidget(fee_e, 2, 1)
                msg = _('Fee per transaction input. Transactions involving multiple inputs tend to require a higher fee.') + ' ' \
       t@@ -1229,11 +1230,13 @@ class ElectrumWindow(QMainWindow):
                grid.addWidget(HelpButton(msg), 3, 2)
                grid.addWidget(nz_e, 3, 1)
                nz_e.textChanged.connect(lambda: numbify(nz_e,True))
       +        if not self.config.is_modifiable('num_zeros'): nz_e.setEnabled(False)
        
                usechange_cb = QCheckBox(_('Use change addresses'))
                grid.addWidget(usechange_cb, 5, 0)
                usechange_cb.setChecked(self.wallet.use_change)
                grid.addWidget(HelpButton(_('Using change addresses makes it more difficult for other people to track your transactions. ')), 5, 2)
       +        if not self.config.is_modifiable('use_change'): usechange_cb.setEnabled(False)
        
                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' \
       t@@ -1248,12 +1251,15 @@ class ElectrumWindow(QMainWindow):
                grid.addWidget(gap_e, 6, 1)
                grid.addWidget(HelpButton(msg), 6, 2)
                gap_e.textChanged.connect(lambda: numbify(nz_e,True))
       +        if not self.config.is_modifiable('gap_limit'): gap_e.setEnabled(False)
                
       -        gui = QComboBox()
       -        gui.addItems(['Lite', 'Qt', 'Gtk'])
       -        gui.setCurrentIndex(gui.findText(self.config.get("gui","lite").capitalize()))
       +        gui_combo = QComboBox()
       +        gui_combo.addItems(['Lite', 'Qt', 'Gtk'])
       +        gui_combo.setCurrentIndex(gui_combo.findText(self.config.get("gui","lite").capitalize()))
       +        if not self.config.is_modifiable('gui'): gui_combo.setEnabled(False)
       +
                grid.addWidget(QLabel(_('Default GUI') + ':'), 7, 0)
       -        grid.addWidget(gui, 7, 1)
       +        grid.addWidget(gui_combo, 7, 1)
                grid.addWidget(HelpButton(_('Select which GUI mode to use at start up. ')), 7, 2)
                
                vbox.addLayout(ok_cancel_buttons(d))
       t@@ -1283,24 +1289,29 @@ class ElectrumWindow(QMainWindow):
        
                if self.wallet.num_zeros != nz:
                    self.wallet.num_zeros = nz
       +            self.config.set_key('num_zeros', nz, True)
                    self.update_history_tab()
                    self.update_receive_tab()
       -            self.wallet.save()
        
       -        self.wallet.use_change = usechange_cb.isChecked()
       +        if self.wallet.use_change != usechange_cb.isChecked():
       +            self.wallet.use_change = usechange_cb.isChecked()
       +            self.config.set_key('use_change', self.wallet.use_change, True)
       +        
                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()
       +                self.config.set_key('gap_limit', self.wallet.gap_limit, True)
                    else:
                        QMessageBox.warning(self, _('Error'), _('Invalid value'), _('OK'))
                            
       -        self.config.set_key("gui", str(gui.currentText()).lower(), True)
       +        self.config.set_key("gui", str(gui_combo.currentText()).lower(), True)
        
        
        
   DIR diff --git a/lib/simple_config.py b/lib/simple_config.py
       t@@ -61,8 +61,8 @@ class SimpleConfig:
                    if save: self.save_user_config()
        
                elif self.system_config.get(key):
       -            self.system_config[key] = value
       -            print "Warning: cannot save '%s' because it is set in the system configuration file"%key
       +            if str(self.system_config[key]) != str(value):
       +                print "Warning: not changing '%s' because it was set in the system configuration"%key
        
                elif self.wallet_config.get(key):
                    self.wallet_config[key] = value
   DIR diff --git a/lib/wallet.py b/lib/wallet.py
       t@@ -285,6 +285,7 @@ class Wallet:
                self.addressbook           = config.get('contacts', [])           # outgoing addresses, for payments
                self.imported_keys         = config.get('imported_keys',{})
        
       +
                # not saved
                self.receipt = None          # next receipt
                self.tx_history = {}
       t@@ -967,7 +968,7 @@ class Wallet:
                if addr in self.all_addresses() and addr not in self.frozen_addresses:
                    self.unprioritize(addr)
                    self.frozen_addresses.append(addr)
       -            self.save()
       +            self.config.set_key('frozen_addresses', self.frozen_addresses, True)
                    return True
                else:
                    return False
       t@@ -975,7 +976,7 @@ class Wallet:
            def unfreeze(self,addr):
                if addr in self.all_addresses() and addr in self.frozen_addresses:
                    self.frozen_addresses.remove(addr)
       -            self.save()
       +            self.config.set_key('frozen_addresses', self.frozen_addresses, True)
                    return True
                else:
                    return False
       t@@ -984,7 +985,7 @@ class Wallet:
                if addr in self.all_addresses() and addr not in self.prioritized_addresses:
                    self.unfreeze(addr)
                    self.prioritized_addresses.append(addr)
       -            self.save()
       +            self.config.set_key('prioritized_addresses', self.prioritized_addresses, True)
                    return True
                else:
                    return False
       t@@ -992,7 +993,7 @@ class Wallet:
            def unprioritize(self,addr):
                if addr in self.all_addresses() and addr in self.prioritized_addresses:
                    self.prioritized_addresses.remove(addr)
       -            self.save()
       +            self.config.set_key('prioritized_addresses', self.prioritized_addresses, True)
                    return True
                else:
                    return False