aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2021-05-01 22:50:56 +0300
committerHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2021-05-08 09:51:07 +0300
commitd29ea72393ac1d9b32a6976062e9c9fb75876295 (patch)
tree4e0d4afd098cde7f00a2e39da93add396cfba8fe /src
parentd22e7ee93313b13365bd14a5fffeb055cff4dcd2 (diff)
downloadbitcoin-d29ea72393ac1d9b32a6976062e9c9fb75876295.tar.xz
gui: Add access to the Peers tab from the network icon
Diffstat (limited to 'src')
-rw-r--r--src/qt/bitcoingui.cpp36
-rw-r--r--src/qt/bitcoingui.h6
2 files changed, 32 insertions, 10 deletions
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index 3e29d8e132..45807a2098 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -43,6 +43,7 @@
#include <QAction>
#include <QApplication>
#include <QComboBox>
+#include <QCursor>
#include <QDateTime>
#include <QDragEnterEvent>
#include <QListWidget>
@@ -199,9 +200,6 @@ BitcoinGUI::BitcoinGUI(interfaces::Node& node, const PlatformStyle *_platformSty
// Subscribe to notifications from core
subscribeToCoreSignals();
- connect(connectionsControl, &GUIUtil::ClickableLabel::clicked, [this] {
- m_node.setNetworkActive(!m_node.getNetworkActive());
- });
connect(labelProxyIcon, &GUIUtil::ClickableLabel::clicked, [this] {
openOptionsDialogWithTab(OptionsDialog::TAB_NETWORK);
});
@@ -586,7 +584,10 @@ void BitcoinGUI::setClientModel(ClientModel *_clientModel, interfaces::BlockAndH
createTrayIconMenu();
// Keep up to date with client
- updateNetworkState();
+ setNetworkActive(m_node.getNetworkActive());
+ connect(connectionsControl, &GUIUtil::ClickableLabel::clicked, [this] {
+ GUIUtil::PopupMenu(m_network_context_menu, QCursor::pos());
+ });
connect(_clientModel, &ClientModel::numConnectionsChanged, this, &BitcoinGUI::setNumConnections);
connect(_clientModel, &ClientModel::networkActiveChanged, this, &BitcoinGUI::setNetworkActive);
@@ -915,14 +916,18 @@ void BitcoinGUI::updateNetworkState()
QString tooltip;
if (m_node.getNetworkActive()) {
- tooltip = tr("%n active connection(s) to Bitcoin network", "", count) + QString(".<br>") + tr("Click to disable network activity.");
+ //: A substring of the tooltip.
+ tooltip = tr("%n active connection(s) to Bitcoin network.", "", count);
} else {
- tooltip = tr("Network activity disabled.") + QString("<br>") + tr("Click to enable network activity again.");
+ //: A substring of the tooltip.
+ tooltip = tr("Network activity disabled.");
icon = ":/icons/network_disabled";
}
// Don't word-wrap this (fixed-width) tooltip
- tooltip = QString("<nobr>") + tooltip + QString("</nobr>");
+ tooltip = QLatin1String("<nobr>") + tooltip + QLatin1String("<br>") +
+ //: A substring of the tooltip. "More actions" are available via the context menu.
+ tr("Click for more actions.") + QLatin1String("</nobr>");
connectionsControl->setToolTip(tooltip);
connectionsControl->setPixmap(platformStyle->SingleColorIcon(icon).pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));
@@ -933,9 +938,24 @@ void BitcoinGUI::setNumConnections(int count)
updateNetworkState();
}
-void BitcoinGUI::setNetworkActive(bool networkActive)
+void BitcoinGUI::setNetworkActive(bool network_active)
{
updateNetworkState();
+ m_network_context_menu->clear();
+ m_network_context_menu->addAction(
+ //: A context menu item. The "Peers tab" is an element of the "Node window".
+ tr("Show Peers tab"),
+ [this] {
+ rpcConsole->setTabFocus(RPCConsole::TabTypes::PEERS);
+ showDebugWindow();
+ });
+ m_network_context_menu->addAction(
+ network_active ?
+ //: A context menu item.
+ tr("Disable network activity") :
+ //: A context menu item. The network activity was disabled previously.
+ tr("Enable network activity"),
+ [this, new_state = !network_active] { m_node.setNetworkActive(new_state); });
}
void BitcoinGUI::updateHeadersSyncProgressLabel()
diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h
index 147f19e68d..332f6dc65c 100644
--- a/src/qt/bitcoingui.h
+++ b/src/qt/bitcoingui.h
@@ -16,6 +16,7 @@
#include <QLabel>
#include <QMainWindow>
#include <QMap>
+#include <QMenu>
#include <QPoint>
#include <QSystemTrayIcon>
@@ -50,7 +51,6 @@ QT_BEGIN_NAMESPACE
class QAction;
class QComboBox;
class QDateTime;
-class QMenu;
class QProgressBar;
class QProgressDialog;
QT_END_NAMESPACE
@@ -174,6 +174,8 @@ private:
HelpMessageDialog* helpMessageDialog = nullptr;
ModalOverlay* modalOverlay = nullptr;
+ QMenu* m_network_context_menu = new QMenu(this);
+
#ifdef Q_OS_MAC
CAppNapInhibitor* m_app_nap_inhibitor = nullptr;
#endif
@@ -221,7 +223,7 @@ public Q_SLOTS:
/** Set number of connections shown in the UI */
void setNumConnections(int count);
/** Set network state shown in the UI */
- void setNetworkActive(bool networkActive);
+ void setNetworkActive(bool network_active);
/** Set number of blocks and last block date shown in the UI */
void setNumBlocks(int count, const QDateTime& blockDate, double nVerificationProgress, bool headers, SynchronizationState sync_state);