URI: 
       tMerge pull request #3155 from bauerj/address-tab-combobox - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit b9309807d7f138c6ee001e55e1b90ae8d8104f0c
   DIR parent c1cf065c2d4cb7d6928d32118d3b28272b0a4099
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Mon, 30 Oct 2017 19:33:31 +0100
       
       Merge pull request #3155 from bauerj/address-tab-combobox
       
       Use combo box instead of buttons to filter address tab
       Diffstat:
         M gui/qt/address_list.py              |      45 +++++++++++++++-----------------
         M gui/qt/main_window.py               |       8 ++++----
       
       2 files changed, 25 insertions(+), 28 deletions(-)
       ---
   DIR diff --git a/gui/qt/address_list.py b/gui/qt/address_list.py
       t@@ -39,16 +39,18 @@ class AddressList(MyTreeWidget):
                self.refresh_headers()
                self.setSelectionMode(QAbstractItemView.ExtendedSelection)
                self.show_change = False
       -        self.show_used = 3
       -        self.change_button = QToolButton(self)
       -        self.used_button = QToolButton(self)
       -        self.change_button.clicked.connect(self.toggle_change)
       -        self.used_button.clicked.connect(self.toggle_used)
       -        self.set_change_button_text()
       -        self.set_used_button_text()
       -
       -    def get_buttons(self):
       -        return self.change_button, self.used_button
       +        self.show_used = 0
       +        self.change_button = QComboBox(self)
       +        self.change_button.currentIndexChanged.connect(self.toggle_change)
       +        for t in [_('Change'), _('Receiving')]:
       +            self.change_button.addItem(t)
       +        self.used_button = QComboBox(self)
       +        self.used_button.currentIndexChanged.connect(self.toggle_used)
       +        for t in [_('All'), _('Unused'), _('Funded'), _('Used')]:
       +            self.used_button.addItem(t)
       +
       +    def get_list_header(self):
       +        return QLabel(_("Filter:")), self.change_button, self.used_button
        
            def refresh_headers(self):
                headers = [ _('Address'), _('Label'), _('Balance')]
       t@@ -58,24 +60,19 @@ class AddressList(MyTreeWidget):
                headers.extend([_('Tx')])
                self.update_headers(headers)
        
       -    def toggle_change(self):
       -        self.show_change = not self.show_change
       -        self.set_change_button_text()
       +    def toggle_change(self, show):
       +        show = bool(show)
       +        if show == self.show_change:
       +            return
       +        self.show_change = show
                self.update()
        
       -    def set_change_button_text(self):
       -        s = [_('Receiving'), _('Change')]
       -        self.change_button.setText(s[self.show_change])
       -
       -    def toggle_used(self):
       -        self.show_used = (self.show_used + 1) % 4
       -        self.set_used_button_text()
       +    def toggle_used(self, state):
       +        if state == self.show_used:
       +            return
       +        self.show_used = state
                self.update()
        
       -    def set_used_button_text(self):
       -        s = [_('Unused'), _('Funded'), _('Used'), _('All')]
       -        self.used_button.setText(s[self.show_used])
       -
            def on_update(self):
                self.wallet = self.parent.wallet
                item = self.currentItem()
   DIR diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
       t@@ -1567,16 +1567,16 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
                self.utxo_list.update()
                self.update_fee()
        
       -    def create_list_tab(self, l, buttons=None):
       +    def create_list_tab(self, l, list_header=None):
                w = QWidget()
                w.searchable_list = l
                vbox = QVBoxLayout()
                w.setLayout(vbox)
                vbox.setContentsMargins(0, 0, 0, 0)
                vbox.setSpacing(0)
       -        if buttons:
       +        if list_header:
                    hbox = QHBoxLayout()
       -            for b in buttons:
       +            for b in list_header:
                        hbox.addWidget(b)
                    hbox.addStretch()
                    vbox.addLayout(hbox)
       t@@ -1586,7 +1586,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
            def create_addresses_tab(self):
                from .address_list import AddressList
                self.address_list = l = AddressList(self)
       -        return self.create_list_tab(l, l.get_buttons())
       +        return self.create_list_tab(l, l.get_list_header())
        
            def create_utxo_tab(self):
                from .utxo_list import UTXOList