invoices and requests lists: move import/export menus into local toolbars
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user