Browse Source

Qt: move remaining menu items that are tab specific to tab toolbars: history, addresses, contacts

master
ThomasV 3 years ago
parent
commit
d6a65a06a7
  1. 10
      electrum/gui/qt/address_list.py
  2. 14
      electrum/gui/qt/contact_list.py
  3. 37
      electrum/gui/qt/history_list.py
  4. 15
      electrum/gui/qt/main_window.py
  5. 14
      electrum/gui/qt/util.py

10
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():

14
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

37
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()

15
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):

14
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:

Loading…
Cancel
Save