From d6a65a06a701935a185b37dfe7a1db062cc003e6 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Sat, 11 Mar 2023 17:47:01 +0100 Subject: [PATCH] Qt: move remaining menu items that are tab specific to tab toolbars: history, addresses, contacts --- electrum/gui/qt/address_list.py | 10 +++++---- electrum/gui/qt/contact_list.py | 14 ++++++++----- electrum/gui/qt/history_list.py | 37 +++++++++++++++++++-------------- electrum/gui/qt/main_window.py | 15 ------------- electrum/gui/qt/util.py | 14 ++----------- 5 files changed, 38 insertions(+), 52 deletions(-) diff --git a/electrum/gui/qt/address_list.py b/electrum/gui/qt/address_list.py index 79e63a1ae..ab9c5ca65 100644 --- a/electrum/gui/qt/address_list.py +++ b/electrum/gui/qt/address_list.py @@ -109,7 +109,12 @@ class AddressList(MyTreeView): self.sortByColumn(self.Columns.TYPE, Qt.AscendingOrder) def create_toolbar(self, config): - return self.create_toolbar_with_buttons(config) + toolbar = self.create_toolbar_with_menu('', [ + (_("&Filter"), lambda: self.toggle_toolbar(self.config)), + ]) + hbox = self.create_toolbar_buttons() + toolbar.insertLayout(1, hbox) + return toolbar def get_toolbar_buttons(self): return QLabel(_("Filter:")), self.change_button, self.used_button @@ -119,9 +124,6 @@ class AddressList(MyTreeView): self.show_used = AddressUsageStateFilter.ALL # type: AddressUsageStateFilter self.update() - def save_toolbar_state(self, state, config): - config.set_key('show_toolbar_addresses', state) - def refresh_headers(self): fx = self.parent.fx if fx and fx.get_fiat_address_config(): diff --git a/electrum/gui/qt/contact_list.py b/electrum/gui/qt/contact_list.py index 02fdc621d..33cc23029 100644 --- a/electrum/gui/qt/contact_list.py +++ b/electrum/gui/qt/contact_list.py @@ -75,11 +75,7 @@ class ContactList(MyTreeView): for s_idx in self.selected_in_column(self.Columns.NAME): sel_key = self.model().itemFromIndex(s_idx).data(self.ROLE_CONTACT_KEY) selected_keys.append(sel_key) - if not selected_keys or not idx.isValid(): - menu.addAction(_("New contact"), lambda: self.parent.new_contact_dialog()) - menu.addAction(_("Import file"), lambda: self.parent.import_contacts()) - menu.addAction(_("Export file"), lambda: self.parent.export_contacts()) - else: + if selected_keys and idx.isValid(): column_title = self.model().horizontalHeaderItem(column).text() column_data = '\n'.join(self.model().itemFromIndex(s_idx).text() for s_idx in self.selected_in_column(column)) @@ -131,3 +127,11 @@ class ContactList(MyTreeView): if col != self.Columns.NAME: return None return self.get_role_data_from_coordinate(row, col, role=self.ROLE_CONTACT_KEY) + + def create_toolbar(self, config): + toolbar = self.create_toolbar_with_menu('', [ + (_("&New contact"), self.parent.new_contact_dialog), + (_("Import"), lambda: self.parent.import_contacts()), + (_("Export"), lambda: self.parent.export_contacts()), + ]) + return toolbar diff --git a/electrum/gui/qt/history_list.py b/electrum/gui/qt/history_list.py index b1d7dd239..eff2d7a40 100644 --- a/electrum/gui/qt/history_list.py +++ b/electrum/gui/qt/history_list.py @@ -483,7 +483,15 @@ class HistoryList(MyTreeView, AcceptFileDragDrop): self.start_date = None self.end_date = None self.years = [] - self.create_toolbar_buttons() + self.period_combo = QComboBox() + self.start_button = QPushButton('-') + self.start_button.pressed.connect(self.select_start_date) + self.start_button.setEnabled(False) + self.end_button = QPushButton('-') + self.end_button.pressed.connect(self.select_end_date) + self.end_button.setEnabled(False) + self.period_combo.addItems([_('All'), _('Custom')]) + self.period_combo.activated.connect(self.on_combo) self.wallet = self.parent.wallet # type: Abstract_Wallet self.sortByColumn(HistoryColumns.STATUS, Qt.AscendingOrder) self.setRootIsDecorated(True) @@ -520,18 +528,18 @@ class HistoryList(MyTreeView, AcceptFileDragDrop): self.hide_rows() def create_toolbar(self, config): - return self.create_toolbar_with_buttons(config) - - def create_toolbar_buttons(self): - self.period_combo = QComboBox() - self.start_button = QPushButton('-') - self.start_button.pressed.connect(self.select_start_date) - self.start_button.setEnabled(False) - self.end_button = QPushButton('-') - self.end_button.pressed.connect(self.select_end_date) - self.end_button.setEnabled(False) - self.period_combo.addItems([_('All'), _('Custom')]) - self.period_combo.activated.connect(self.on_combo) + toolbar = self.create_toolbar_with_menu('', [ + (_("&Filter Period"), lambda: self.toggle_toolbar(self.config)), + (_("&Summary"), self.show_summary), + (_("&Plot"), self.plot_history_dialog), + (_("&Export"), self.export_history_dialog), + ]) + hbox = self.create_toolbar_buttons() + toolbar.insertLayout(1, hbox) + return toolbar + + def toggle_filter(self): + pass def get_toolbar_buttons(self): return self.period_combo, self.start_button, self.end_button @@ -541,9 +549,6 @@ class HistoryList(MyTreeView, AcceptFileDragDrop): self.end_date = None self.hide_rows() - def save_toolbar_state(self, state, config): - config.set_key('show_toolbar_history', state) - def select_start_date(self): self.start_date = self.select_date(self.start_button) self.hide_rows() diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py index 5dbf657e6..8b7e6ed64 100644 --- a/electrum/gui/qt/main_window.py +++ b/electrum/gui/qt/main_window.py @@ -691,20 +691,9 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger, QtEventListener): self.import_address_menu = wallet_menu.addAction(_("Import addresses"), self.import_addresses) wallet_menu.addSeparator() - 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.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) - contacts_menu = wallet_menu.addMenu(_("Contacts")) - contacts_menu.addAction(_("&New"), self.new_contact_dialog) - contacts_menu.addAction(_("Import"), lambda: self.import_contacts()) - contacts_menu.addAction(_("Export"), lambda: self.export_contacts()) wallet_menu.addSeparator() wallet_menu.addAction(_("Find"), self.toggle_search).setShortcut(QKeySequence("Ctrl+F")) @@ -1048,8 +1037,6 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger, QtEventListener): self.history_model.set_view(self.history_list) l.searchable_list = l tab = self.create_list_tab(self.history_list) - toolbar_shown = bool(self.config.get('show_toolbar_history', False)) - l.show_toolbar(toolbar_shown) return tab def show_address(self, addr: str, *, parent: QWidget = None): @@ -1347,8 +1334,6 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger, QtEventListener): from .address_list import AddressList self.address_list = AddressList(self) tab = self.create_list_tab(self.address_list) - toolbar_shown = bool(self.config.get('show_toolbar_addresses', False)) - self.address_list.show_toolbar(toolbar_shown) return tab def create_utxo_tab(self): diff --git a/electrum/gui/qt/util.py b/electrum/gui/qt/util.py index 5b09741a8..ddcadadfa 100644 --- a/electrum/gui/qt/util.py +++ b/electrum/gui/qt/util.py @@ -745,18 +745,13 @@ class MyTreeView(QTreeView): def create_toolbar(self, config): return - def create_toolbar_with_buttons(self, config=None): + def create_toolbar_buttons(self): hbox = QHBoxLayout() buttons = self.get_toolbar_buttons() for b in buttons: b.setVisible(False) hbox.addWidget(b) - hide_button = QPushButton('x') - hide_button.setVisible(False) - hide_button.pressed.connect(lambda: self.show_toolbar(False, config)) - self.toolbar_buttons = buttons + (hide_button,) - hbox.addStretch() - hbox.addWidget(hide_button) + self.toolbar_buttons = buttons return hbox def create_toolbar_with_menu(self, title, menu_items): @@ -775,15 +770,10 @@ class MyTreeView(QTreeView): toolbar.addWidget(toolbar_button) return toolbar - 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(state) if not state: