URI: 
       treceive tab: 3 separate view mode - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit c586c5552832ee99b1a1f6c6e196e4b05b3be237
   DIR parent 74a8a5f77ac6c13170b8f88a1dffc003294a5085
  HTML Author: thomasv <thomasv@gitorious>
       Date:   Thu, 29 Nov 2012 10:19:54 +0100
       
       receive tab: 3 separate view mode
       
       Diffstat:
         M lib/gui_qt.py                       |      72 +++++++++++++------------------
       
       1 file changed, 30 insertions(+), 42 deletions(-)
       ---
   DIR diff --git a/lib/gui_qt.py b/lib/gui_qt.py
       t@@ -281,7 +281,7 @@ class ElectrumWindow(QMainWindow):
                self.wallet.interface.register_callback('disconnected', self.update_callback)
                self.wallet.interface.register_callback('disconnecting', self.update_callback)
        
       -        self.detailed_view = config.get('qt_detailed_view', False)
       +        self.receive_tab_mode = config.get('qt_receive_tab_mode', 0)
        
                self.qr_window = None
                self.funds_error = False
       t@@ -298,6 +298,7 @@ class ElectrumWindow(QMainWindow):
                tabs.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
                self.setCentralWidget(tabs)
                self.create_status_bar()
       +        self.toggle_QR_window(self.receive_tab_mode == 2)
        
                g = self.config.get("winpos-qt",[100, 100, 840, 400])
                self.setGeometry(g[0], g[1], g[2], g[3])
       t@@ -849,38 +850,27 @@ class ElectrumWindow(QMainWindow):
                self.connect(l, SIGNAL('currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)'), lambda a,b: self.recv_changed(a))
                self.receive_list = l
                self.receive_buttons_hbox = hbox
       -        self.qr_button = EnterButton(self.qr_button_text(), self.toggle_QR_window)
       -        hbox.addWidget(self.qr_button)
       -        self.print_button = EnterButton(_("Print QR"), self.print_qr)
       -        self.print_button.setHidden(True)
       -        hbox.addWidget(self.print_button)
       -
       -        self.details_button = EnterButton(self.details_button_text(), self.toggle_detailed_view)
       -        hbox.addWidget(self.details_button)
       +        view_combo = QComboBox()
       +        view_combo.addItems(['Simple View', 'Detailed View', 'Point of Sale'])
       +        view_combo.setCurrentIndex(self.receive_tab_mode)
       +        hbox.addWidget(view_combo)
       +        view_combo.currentIndexChanged.connect(self.receive_tab_set_mode)
                hbox.addStretch(1)
                return w
        
       +
            def print_qr(self):
                if self.qr_window:
                    self.qr_window.do_save()
                    self.show_message(_("QR code saved to file") + " " + self.qr_window.filename)
        
        
       -    def details_button_text(self):
       -        return _('Hide details') if self.detailed_view else _('Show details')
       -
       -    def qr_button_text(self):
       -        return _('Hide QR') if self.qr_window and self.qr_window.isVisible() else _('Show QR')
       -
       -
       -    def toggle_detailed_view(self):
       -        self.detailed_view = not self.detailed_view
       -        self.config.set_key('qt_detailed_view', self.detailed_view, True)
       -
       -        self.details_button.setText(self.details_button_text())
       +    def receive_tab_set_mode(self, i):
       +        self.receive_tab_mode = i
       +        self.config.set_key('qt_receive_tab_mode', self.receive_tab_mode, True)
                self.wallet.save()
                self.update_receive_tab()
       -        self.update_contacts_tab()
       +        self.toggle_QR_window(self.receive_tab_mode == 2)
        
        
            def create_contacts_tab(self):
       t@@ -906,8 +896,9 @@ class ElectrumWindow(QMainWindow):
                addr = unicode(item.text(1))
                menu = QMenu()
                menu.addAction(_("Copy to clipboard"), lambda: self.app.clipboard().setText(addr))
       -        if self.qr_window and self.qr_window.isVisible():
       +        if self.receive_tab_mode == 2:
                    menu.addAction(_("Request amount"), lambda: self.edit_amount())
       +            menu.addAction(_("Print QR"), self.print_qr)
                menu.addAction(_("Edit label"), lambda: self.edit_label(True))
                menu.addAction(_("Sign message"), lambda: self.sign_message(addr))
        
       t@@ -993,10 +984,10 @@ class ElectrumWindow(QMainWindow):
                l = self.receive_list
                
                l.clear()
       -        l.setColumnHidden(0, not self.detailed_view)
       -        l.setColumnHidden(3, self.qr_window is None or not self.qr_window.isVisible())
       -        l.setColumnHidden(4, not self.detailed_view)
       -        l.setColumnHidden(5, not self.detailed_view)
       +        l.setColumnHidden(0, not self.receive_tab_mode == 1)
       +        l.setColumnHidden(3, not self.receive_tab_mode == 2)
       +        l.setColumnHidden(4, not self.receive_tab_mode == 1)
       +        l.setColumnHidden(5, not self.receive_tab_mode == 1)
                l.setColumnWidth(0, 50)
                l.setColumnWidth(1, 310) 
                l.setColumnWidth(2, 200)
       t@@ -1008,7 +999,7 @@ class ElectrumWindow(QMainWindow):
                is_red = False
                for address in self.wallet.all_addresses():
        
       -            if self.wallet.is_change(address) and not self.detailed_view:
       +            if self.wallet.is_change(address) and self.receive_tab_mode != 1:
                        continue
        
                    n = 0 
       t@@ -1058,7 +1049,6 @@ class ElectrumWindow(QMainWindow):
        
                l = self.contacts_list
                l.clear()
       -        l.setColumnHidden(2, not self.detailed_view)
                l.setColumnWidth(0, 350) 
                l.setColumnWidth(1, 330)
                l.setColumnWidth(2, 100) 
       t@@ -1288,11 +1278,10 @@ class ElectrumWindow(QMainWindow):
                d.exec_()
        
                
       -    def toggle_QR_window(self):
       -        if not self.qr_window:
       +    def toggle_QR_window(self, show):
       +        if show and not self.qr_window:
                    self.qr_window = QR_Window()
                    self.qr_window.setVisible(True)
       -            #print self.qr_window.isVisible()
                    self.qr_window_geometry = self.qr_window.geometry()
                    item = self.receive_list.currentItem()
                    if item:
       t@@ -1300,17 +1289,16 @@ class ElectrumWindow(QMainWindow):
                        label = self.wallet.labels.get(address)
                        amount = self.wallet.requested_amounts.get(address)
                        self.qr_window.set_content( address, label, amount )
       -                self.update_receive_tab()
       -        else:
       -            if self.qr_window.isVisible():
       -                self.qr_window_geometry = self.qr_window.geometry()
       -                self.qr_window.setVisible(False)
       -            else:
       -                self.qr_window.setVisible(True)
       -                self.qr_window.setGeometry(self.qr_window_geometry)
        
       -        self.qr_button.setText(self.qr_button_text())
       -        self.print_button.setHidden(self.qr_window is None or not self.qr_window.isVisible())
       +        elif show and self.qr_window and not self.qr_window.isVisible():
       +            self.qr_window.setVisible(True)
       +            self.qr_window.setGeometry(self.qr_window_geometry)
       +
       +        elif not show and self.qr_window and self.qr_window.isVisible():
       +            self.qr_window_geometry = self.qr_window.geometry()
       +            self.qr_window.setVisible(False)
       +
       +        #self.print_button.setHidden(self.qr_window is None or not self.qr_window.isVisible())
                self.receive_list.setColumnHidden(3, self.qr_window is None or not self.qr_window.isVisible())
                self.receive_list.setColumnWidth(2, 200)