electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit ca84ca00cac2e7dca1fd5c70b410a67f8dbf4d57
parent f6e627798a575a5d028c61c22f09f008bd93d3f3
Author: ThomasV <thomasv@electrum.org>
Date:   Thu,  1 Mar 2018 16:58:03 +0100

Merge pull request #3994 from SomberNight/save_toolbar_state

persist history and addresses toolbars (qt)
Diffstat:
Mgui/qt/address_list.py | 3+++
Mgui/qt/history_list.py | 3+++
Mgui/qt/main_window.py | 16+++++++++++-----
Mgui/qt/util.py | 22+++++++++++++++++-----
4 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/gui/qt/address_list.py b/gui/qt/address_list.py @@ -58,6 +58,9 @@ class AddressList(MyTreeWidget): self.show_used = 0 self.update() + def save_toolbar_state(self, state, config): + config.set_key('show_toolbar_addresses', state) + def refresh_headers(self): headers = [_('Type'), _('Address'), _('Label'), _('Balance')] fx = self.parent.fx diff --git a/gui/qt/history_list.py b/gui/qt/history_list.py @@ -125,6 +125,9 @@ class HistoryList(MyTreeWidget, AcceptFileDragDrop): self.end_timestamp = None self.update() + def save_toolbar_state(self, state, config): + config.set_key('show_toolbar_history', state) + def select_start_date(self): self.start_timestamp = self.select_date(self.start_button) self.update() diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py @@ -475,13 +475,13 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): self.import_address_menu = wallet_menu.addAction(_("Import addresses"), self.import_addresses) wallet_menu.addSeparator() - history_menu = wallet_menu.addMenu(_("&Addresses")) - history_menu.addAction(_("&Filter"), lambda: self.address_list.show_toolbar(True)) + addresses_menu = wallet_menu.addMenu(_("&Addresses")) + addresses_menu.addAction(_("&Filter"), lambda: self.address_list.toggle_toolbar(self.config)) labels_menu = wallet_menu.addMenu(_("&Labels")) labels_menu.addAction(_("&Import"), self.do_import_labels) labels_menu.addAction(_("&Export"), self.do_export_labels) history_menu = wallet_menu.addMenu(_("&History")) - history_menu.addAction(_("&Filter"), lambda: self.history_list.show_toolbar(True)) + history_menu.addAction(_("&Filter"), lambda: self.history_list.toggle_toolbar(self.config)) history_menu.addAction(_("&Summary"), self.history_list.show_summary) history_menu.addAction(_("&Plot"), self.history_list.plot_history_dialog) history_menu.addAction(_("&Export"), self.history_list.export_history_dialog) @@ -754,7 +754,10 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): from .history_list import HistoryList self.history_list = l = HistoryList(self) l.searchable_list = l - return self.create_list_tab(l, l.create_toolbar()) + toolbar = l.create_toolbar(self.config) + toolbar_shown = self.config.get('show_toolbar_history', False) + l.show_toolbar(toolbar_shown) + return self.create_list_tab(l, toolbar) def show_address(self, addr): from . import address_dialog @@ -1745,7 +1748,10 @@ 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.create_toolbar()) + toolbar = l.create_toolbar(self.config) + toolbar_shown = self.config.get('show_toolbar_addresses', False) + l.show_toolbar(toolbar_shown) + return self.create_list_tab(l, toolbar) def create_utxo_tab(self): from .utxo_list import UTXOList diff --git a/gui/qt/util.py b/gui/qt/util.py @@ -406,6 +406,7 @@ class MyTreeWidget(QTreeWidget): self.current_filter = "" self.setRootIsDecorated(False) # remove left margin + self.toolbar_shown = False def update_headers(self, headers): self.setColumnCount(len(headers)) @@ -522,7 +523,7 @@ class MyTreeWidget(QTreeWidget): item.setHidden(all([item.text(column).lower().find(p) == -1 for column in columns])) - def create_toolbar(self): + def create_toolbar(self, config=None): hbox = QHBoxLayout() buttons = self.get_toolbar_buttons() for b in buttons: @@ -530,18 +531,29 @@ class MyTreeWidget(QTreeWidget): hbox.addWidget(b) hide_button = QPushButton('x') hide_button.setVisible(False) - hide_button.pressed.connect(lambda: self.show_toolbar(False)) + hide_button.pressed.connect(lambda: self.show_toolbar(False, config)) self.toolbar_buttons = buttons + (hide_button,) hbox.addStretch() hbox.addWidget(hide_button) return hbox - def show_toolbar(self, x): + def save_toolbar_state(self, state, config): + pass # implemented in subclasses + + def show_toolbar(self, state, config=None): + if state == self.toolbar_shown: + return + self.toolbar_shown = state + if config: + self.save_toolbar_state(state, config) for b in self.toolbar_buttons: - b.setVisible(x) - if not x: + b.setVisible(state) + if not state: self.on_hide_toolbar() + def toggle_toolbar(self, config=None): + self.show_toolbar(not self.toolbar_shown, config) + class ButtonsWidget(QWidget):