Merge #14573: qt: Add Window menu
95a5a9fcc
qt: Remove ellipsis from sending/receiving addresses (João Barbosa)a96c0df35
qt: Add Window menu (João Barbosa)9ea38d022
qt: Allow to inspect RPCConsole tabs (João Barbosa) Pull request description: Overall this PR does the following: - add top level menu Window - add Minimize and Zoom actions to Window menu - move Sending/Receiving address to Window - remove Help->Debug window - add one menu entry for each debug window tab This removes the access to address book from the File menu. With wallet support: <img width="522" alt="screenshot 2018-12-11 at 00 33 05" src="https://user-images.githubusercontent.com/3534524/49770451-5bec0800-fcdc-11e8-91d6-f8f850ead92d.png"> Without wallet support: <img width="593" alt="screenshot 2018-12-11 at 12 55 21" src="https://user-images.githubusercontent.com/3534524/49802183-19f6ac80-fd44-11e8-9973-36fcfb4f129e.png"> Tree-SHA512: 4fb03702efe18df7bae33950e462940162abe634c55d0214b8920812127b763234cc9b73f27b3702502a37b6d49bdd6c50b7c8d9a3daea75cecb0136556dd1ea
This commit is contained in:
commit
dba0f4c5c7
3 changed files with 70 additions and 9 deletions
|
@ -56,6 +56,7 @@
|
||||||
#include <QToolBar>
|
#include <QToolBar>
|
||||||
#include <QUrlQuery>
|
#include <QUrlQuery>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
#include <QWindow>
|
||||||
|
|
||||||
#include <boost/bind.hpp>
|
#include <boost/bind.hpp>
|
||||||
|
|
||||||
|
@ -324,9 +325,9 @@ void BitcoinGUI::createActions()
|
||||||
// initially disable the debug window menu item
|
// initially disable the debug window menu item
|
||||||
openRPCConsoleAction->setEnabled(false);
|
openRPCConsoleAction->setEnabled(false);
|
||||||
|
|
||||||
usedSendingAddressesAction = new QAction(platformStyle->TextColorIcon(":/icons/address-book"), tr("&Sending addresses..."), this);
|
usedSendingAddressesAction = new QAction(platformStyle->TextColorIcon(":/icons/address-book"), tr("&Sending addresses"), this);
|
||||||
usedSendingAddressesAction->setStatusTip(tr("Show the list of used sending addresses and labels"));
|
usedSendingAddressesAction->setStatusTip(tr("Show the list of used sending addresses and labels"));
|
||||||
usedReceivingAddressesAction = new QAction(platformStyle->TextColorIcon(":/icons/address-book"), tr("&Receiving addresses..."), this);
|
usedReceivingAddressesAction = new QAction(platformStyle->TextColorIcon(":/icons/address-book"), tr("&Receiving addresses"), this);
|
||||||
usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels"));
|
usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels"));
|
||||||
|
|
||||||
openAction = new QAction(platformStyle->TextColorIcon(":/icons/open"), tr("Open &URI..."), this);
|
openAction = new QAction(platformStyle->TextColorIcon(":/icons/open"), tr("Open &URI..."), this);
|
||||||
|
@ -385,9 +386,6 @@ void BitcoinGUI::createMenuBar()
|
||||||
file->addAction(signMessageAction);
|
file->addAction(signMessageAction);
|
||||||
file->addAction(verifyMessageAction);
|
file->addAction(verifyMessageAction);
|
||||||
file->addSeparator();
|
file->addSeparator();
|
||||||
file->addAction(usedSendingAddressesAction);
|
|
||||||
file->addAction(usedReceivingAddressesAction);
|
|
||||||
file->addSeparator();
|
|
||||||
}
|
}
|
||||||
file->addAction(quitAction);
|
file->addAction(quitAction);
|
||||||
|
|
||||||
|
@ -400,11 +398,59 @@ void BitcoinGUI::createMenuBar()
|
||||||
}
|
}
|
||||||
settings->addAction(optionsAction);
|
settings->addAction(optionsAction);
|
||||||
|
|
||||||
QMenu *help = appMenuBar->addMenu(tr("&Help"));
|
QMenu* window_menu = appMenuBar->addMenu(tr("&Window"));
|
||||||
if(walletFrame)
|
|
||||||
{
|
QAction* minimize_action = window_menu->addAction(tr("Minimize"), [] {
|
||||||
help->addAction(openRPCConsoleAction);
|
qApp->focusWindow()->showMinimized();
|
||||||
|
}, QKeySequence(Qt::CTRL + Qt::Key_M));
|
||||||
|
|
||||||
|
connect(qApp, &QApplication::focusWindowChanged, [minimize_action] (QWindow* window) {
|
||||||
|
minimize_action->setEnabled(window != nullptr && (window->flags() & Qt::Dialog) != Qt::Dialog && window->windowState() != Qt::WindowMinimized);
|
||||||
|
});
|
||||||
|
|
||||||
|
#ifdef Q_OS_MAC
|
||||||
|
QAction* zoom_action = window_menu->addAction(tr("Zoom"), [] {
|
||||||
|
QWindow* window = qApp->focusWindow();
|
||||||
|
if (window->windowState() != Qt::WindowMaximized) {
|
||||||
|
window->showMaximized();
|
||||||
|
} else {
|
||||||
|
window->showNormal();
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(qApp, &QApplication::focusWindowChanged, [zoom_action] (QWindow* window) {
|
||||||
|
zoom_action->setEnabled(window != nullptr);
|
||||||
|
});
|
||||||
|
#else
|
||||||
|
QAction* restore_action = window_menu->addAction(tr("Restore"), [] {
|
||||||
|
qApp->focusWindow()->showNormal();
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(qApp, &QApplication::focusWindowChanged, [restore_action] (QWindow* window) {
|
||||||
|
restore_action->setEnabled(window != nullptr);
|
||||||
|
});
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (walletFrame) {
|
||||||
|
window_menu->addSeparator();
|
||||||
|
window_menu->addAction(tr("Main Window"), [this] {
|
||||||
|
GUIUtil::bringToFront(this);
|
||||||
|
});
|
||||||
|
|
||||||
|
window_menu->addSeparator();
|
||||||
|
window_menu->addAction(usedSendingAddressesAction);
|
||||||
|
window_menu->addAction(usedReceivingAddressesAction);
|
||||||
|
}
|
||||||
|
|
||||||
|
window_menu->addSeparator();
|
||||||
|
for (RPCConsole::TabTypes tab_type : rpcConsole->tabs()) {
|
||||||
|
window_menu->addAction(rpcConsole->tabTitle(tab_type), [this, tab_type] {
|
||||||
|
rpcConsole->setTabFocus(tab_type);
|
||||||
|
showDebugWindow();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu *help = appMenuBar->addMenu(tr("&Help"));
|
||||||
help->addAction(showHelpMessageAction);
|
help->addAction(showHelpMessageAction);
|
||||||
help->addSeparator();
|
help->addSeparator();
|
||||||
help->addAction(aboutAction);
|
help->addAction(aboutAction);
|
||||||
|
|
|
@ -1275,7 +1275,17 @@ void RPCConsole::showOrHideBanTableIfRequired()
|
||||||
ui->banHeading->setVisible(visible);
|
ui->banHeading->setVisible(visible);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RPCConsole::TabTypes RPCConsole::tabFocus() const
|
||||||
|
{
|
||||||
|
return (TabTypes) ui->tabWidget->currentIndex();
|
||||||
|
}
|
||||||
|
|
||||||
void RPCConsole::setTabFocus(enum TabTypes tabType)
|
void RPCConsole::setTabFocus(enum TabTypes tabType)
|
||||||
{
|
{
|
||||||
ui->tabWidget->setCurrentIndex(tabType);
|
ui->tabWidget->setCurrentIndex(tabType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString RPCConsole::tabTitle(TabTypes tab_type) const
|
||||||
|
{
|
||||||
|
return ui->tabWidget->tabText(tab_type);
|
||||||
|
}
|
||||||
|
|
|
@ -65,6 +65,11 @@ public:
|
||||||
TAB_PEERS = 3
|
TAB_PEERS = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
|
std::vector<TabTypes> tabs() const { return {TAB_INFO, TAB_CONSOLE, TAB_GRAPH, TAB_PEERS}; }
|
||||||
|
|
||||||
|
TabTypes tabFocus() const;
|
||||||
|
QString tabTitle(TabTypes tab_type) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool eventFilter(QObject* obj, QEvent *event);
|
virtual bool eventFilter(QObject* obj, QEvent *event);
|
||||||
void keyPressEvent(QKeyEvent *);
|
void keyPressEvent(QKeyEvent *);
|
||||||
|
|
Loading…
Reference in a new issue