qt: Replace NetworkToggleStatusBarControl with generic ClickableLabel
Generalize the clickable label functionality. We will use this to add similar functionality to the sync icon.
This commit is contained in:
parent
bc121b0eb1
commit
827d9a3be8
4 changed files with 35 additions and 31 deletions
|
@ -199,7 +199,7 @@ BitcoinGUI::BitcoinGUI(const PlatformStyle *_platformStyle, const NetworkStyle *
|
|||
unitDisplayControl = new UnitDisplayStatusBarControl(platformStyle);
|
||||
labelWalletEncryptionIcon = new QLabel();
|
||||
labelWalletHDStatusIcon = new QLabel();
|
||||
connectionsControl = new NetworkToggleStatusBarControl();
|
||||
connectionsControl = new GUIUtil::ClickableLabel();
|
||||
labelBlocksIcon = new QLabel();
|
||||
if(enableWallet)
|
||||
{
|
||||
|
@ -244,6 +244,8 @@ BitcoinGUI::BitcoinGUI(const PlatformStyle *_platformStyle, const NetworkStyle *
|
|||
// Subscribe to notifications from core
|
||||
subscribeToCoreSignals();
|
||||
|
||||
connect(connectionsControl, SIGNAL(clicked(QPoint)), this, SLOT(toggleNetworkActive()));
|
||||
|
||||
modalOverlay = new ModalOverlay(this->centralWidget());
|
||||
#ifdef ENABLE_WALLET
|
||||
if(enableWallet)
|
||||
|
@ -490,7 +492,6 @@ void BitcoinGUI::setClientModel(ClientModel *_clientModel)
|
|||
}
|
||||
#endif // ENABLE_WALLET
|
||||
unitDisplayControl->setOptionsModel(_clientModel->getOptionsModel());
|
||||
connectionsControl->setClientModel(_clientModel);
|
||||
|
||||
OptionsModel* optionsModel = _clientModel->getOptionsModel();
|
||||
if(optionsModel)
|
||||
|
@ -517,7 +518,6 @@ void BitcoinGUI::setClientModel(ClientModel *_clientModel)
|
|||
walletFrame->setClientModel(nullptr);
|
||||
#endif // ENABLE_WALLET
|
||||
unitDisplayControl->setOptionsModel(nullptr);
|
||||
connectionsControl->setClientModel(nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1171,6 +1171,13 @@ void BitcoinGUI::unsubscribeFromCoreSignals()
|
|||
uiInterface.ThreadSafeQuestion.disconnect(boost::bind(ThreadSafeMessageBox, this, _1, _3, _4));
|
||||
}
|
||||
|
||||
void BitcoinGUI::toggleNetworkActive()
|
||||
{
|
||||
if (clientModel) {
|
||||
clientModel->setNetworkActive(!clientModel->getNetworkActive());
|
||||
}
|
||||
}
|
||||
|
||||
UnitDisplayStatusBarControl::UnitDisplayStatusBarControl(const PlatformStyle *platformStyle) :
|
||||
optionsModel(0),
|
||||
menu(0)
|
||||
|
@ -1244,16 +1251,3 @@ void UnitDisplayStatusBarControl::onMenuSelection(QAction* action)
|
|||
optionsModel->setDisplayUnit(action->data());
|
||||
}
|
||||
}
|
||||
|
||||
void NetworkToggleStatusBarControl::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
if (clientModel) {
|
||||
clientModel->setNetworkActive(!clientModel->getNetworkActive());
|
||||
}
|
||||
}
|
||||
|
||||
/** Lets the control know about the Client Model */
|
||||
void NetworkToggleStatusBarControl::setClientModel(ClientModel *_clientModel)
|
||||
{
|
||||
this->clientModel = _clientModel;
|
||||
}
|
||||
|
|
|
@ -26,7 +26,6 @@ class PlatformStyle;
|
|||
class RPCConsole;
|
||||
class SendCoinsRecipient;
|
||||
class UnitDisplayStatusBarControl;
|
||||
class NetworkToggleStatusBarControl;
|
||||
class WalletFrame;
|
||||
class WalletModel;
|
||||
class HelpMessageDialog;
|
||||
|
@ -86,7 +85,7 @@ private:
|
|||
UnitDisplayStatusBarControl *unitDisplayControl;
|
||||
QLabel *labelWalletEncryptionIcon;
|
||||
QLabel *labelWalletHDStatusIcon;
|
||||
NetworkToggleStatusBarControl *connectionsControl;
|
||||
QLabel *connectionsControl;
|
||||
QLabel *labelBlocksIcon;
|
||||
QLabel *progressBarLabel;
|
||||
QProgressBar *progressBar;
|
||||
|
@ -238,6 +237,9 @@ private Q_SLOTS:
|
|||
/** When hideTrayIcon setting is changed in OptionsModel hide or show the icon accordingly. */
|
||||
void setTrayIconVisible(bool);
|
||||
|
||||
/** Toggle networking */
|
||||
void toggleNetworkActive();
|
||||
|
||||
void showModalOverlay();
|
||||
};
|
||||
|
||||
|
@ -270,17 +272,4 @@ private Q_SLOTS:
|
|||
void onMenuSelection(QAction* action);
|
||||
};
|
||||
|
||||
class NetworkToggleStatusBarControl : public QLabel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
void setClientModel(ClientModel *clientModel);
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
|
||||
private:
|
||||
ClientModel *clientModel;
|
||||
};
|
||||
|
||||
#endif // BITCOIN_QT_BITCOINGUI_H
|
||||
|
|
|
@ -55,6 +55,7 @@
|
|||
#include <QSettings>
|
||||
#include <QTextDocument> // for Qt::mightBeRichText
|
||||
#include <QThread>
|
||||
#include <QMouseEvent>
|
||||
|
||||
#if QT_VERSION < 0x050000
|
||||
#include <QUrl>
|
||||
|
@ -986,4 +987,10 @@ QString formateNiceTimeOffset(qint64 secs)
|
|||
}
|
||||
return timeBehindText;
|
||||
}
|
||||
|
||||
void ClickableLabel::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
Q_EMIT clicked(event->pos());
|
||||
}
|
||||
|
||||
} // namespace GUIUtil
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include <QProgressBar>
|
||||
#include <QString>
|
||||
#include <QTableView>
|
||||
#include <QLabel>
|
||||
|
||||
#include <boost/filesystem.hpp>
|
||||
|
||||
|
@ -215,6 +216,19 @@ namespace GUIUtil
|
|||
typedef QProgressBar ProgressBar;
|
||||
#endif
|
||||
|
||||
class ClickableLabel : public QLabel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_SIGNALS:
|
||||
/** Emitted when the label is clicked. The relative mouse coordinates of the click are
|
||||
* passed to the signal.
|
||||
*/
|
||||
void clicked(const QPoint& point);
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
};
|
||||
|
||||
} // namespace GUIUtil
|
||||
|
||||
#endif // BITCOIN_QT_GUIUTIL_H
|
||||
|
|
Loading…
Reference in a new issue