Browse Source

invoices and requests lists: move import/export menus into local toolbars

master
ThomasV 3 years ago
parent
commit
1a0a52f9b6
  1. 1
      electrum/gui/qt/invoice_list.py
  2. 6
      electrum/gui/qt/main_window.py
  3. 12
      electrum/gui/qt/receive_tab.py
  4. 1
      electrum/gui/qt/request_list.py
  5. 9
      electrum/gui/qt/send_tab.py
  6. 16
      electrum/gui/qt/util.py

1
electrum/gui/qt/invoice_list.py

@ -134,7 +134,6 @@ class InvoiceList(MyTreeView):
def hide_if_empty(self):
b = self.std_model.rowCount() > 0
self.setVisible(b)
self.send_tab.invoices_label.setVisible(b)
def create_menu(self, position):
wallet = self.wallet

6
electrum/gui/qt/main_window.py

@ -705,12 +705,6 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger, QtEventListener):
contacts_menu.addAction(_("&New"), self.new_contact_dialog)
contacts_menu.addAction(_("Import"), lambda: self.import_contacts())
contacts_menu.addAction(_("Export"), lambda: self.export_contacts())
invoices_menu = wallet_menu.addMenu(_("Invoices"))
invoices_menu.addAction(_("Import"), lambda: self.import_invoices())
invoices_menu.addAction(_("Export"), lambda: self.export_invoices())
requests_menu = wallet_menu.addMenu(_("Requests"))
requests_menu.addAction(_("Import"), lambda: self.import_requests())
requests_menu.addAction(_("Export"), lambda: self.export_requests())
wallet_menu.addSeparator()
wallet_menu.addAction(_("Find"), self.toggle_search).setShortcut(QKeySequence("Ctrl+F"))

12
electrum/gui/qt/receive_tab.py

@ -168,12 +168,14 @@ class ReceiveTab(QWidget, MessageBoxMixin, Logger):
self.receive_tabs.setSizePolicy(receive_tabs_sp)
self.receive_tabs.setVisible(False)
self.receive_requests_label = QLabel(_('Receive queue'))
# with QDarkStyle, this label may partially cover the qrcode widget.
# setMaximumWidth prevents that
self.receive_requests_label.setMaximumWidth(400)
from .request_list import RequestList
self.request_list = RequestList(self)
self.toolbar = self.request_list.create_toolbar_with_menu(
_('Requests'),
[
(_("Import requests"), self.window.import_requests),
(_("Export requests"), self.window.export_requests),
])
# layout
vbox_g = QVBoxLayout()
@ -188,7 +190,7 @@ class ReceiveTab(QWidget, MessageBoxMixin, Logger):
vbox = QVBoxLayout(self)
vbox.addLayout(hbox)
vbox.addStretch()
vbox.addWidget(self.receive_requests_label)
vbox.addLayout(self.toolbar)
vbox.addWidget(self.request_list)
vbox.setStretchFactor(hbox, 40)
vbox.setStretchFactor(self.request_list, 60)

1
electrum/gui/qt/request_list.py

@ -167,7 +167,6 @@ class RequestList(MyTreeView):
def hide_if_empty(self):
b = self.std_model.rowCount() > 0
self.setVisible(b)
self.receive_tab.receive_requests_label.setVisible(b)
if not b:
# list got hidden, so selected item should also be cleared:
self.item_changed(None)

9
electrum/gui/qt/send_tab.py

@ -146,9 +146,14 @@ class SendTab(QWidget, MessageBoxMixin, Logger):
self.set_onchain(False)
self.invoices_label = QLabel(_('Send queue'))
from .invoice_list import InvoiceList
self.invoice_list = InvoiceList(self)
self.toolbar = self.invoice_list.create_toolbar_with_menu(
_('Invoices'),
[
(_("Import invoices"), self.window.import_invoices),
(_("Export invoices"), self.window.export_invoices),
])
vbox0 = QVBoxLayout()
vbox0.addLayout(grid)
@ -159,7 +164,7 @@ class SendTab(QWidget, MessageBoxMixin, Logger):
vbox = QVBoxLayout(self)
vbox.addLayout(hbox)
vbox.addStretch(1)
vbox.addWidget(self.invoices_label)
vbox.addLayout(self.toolbar)
vbox.addWidget(self.invoice_list)
vbox.setStretchFactor(self.invoice_list, 1000)
self.searchable_list = self.invoice_list

16
electrum/gui/qt/util.py

@ -756,6 +756,22 @@ class MyTreeView(QTreeView):
hbox.addWidget(hide_button)
return hbox
def create_toolbar_with_menu(self, title, menu_items):
menu = QMenu()
menu.setToolTipsVisible(True)
for k, v in menu_items:
menu.addAction(k, v)
toolbar_button = QToolButton()
toolbar_button.setIcon(read_QIcon("preferences.png"))
toolbar_button.setMenu(menu)
toolbar_button.setPopupMode(QToolButton.InstantPopup)
toolbar_button.setFocusPolicy(Qt.NoFocus)
toolbar = QHBoxLayout()
toolbar.addWidget(QLabel(title))
toolbar.addStretch()
toolbar.addWidget(toolbar_button)
return toolbar
def save_toolbar_state(self, state, config):
pass # implemented in subclasses

Loading…
Cancel
Save