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);
|
unitDisplayControl = new UnitDisplayStatusBarControl(platformStyle);
|
||||||
labelWalletEncryptionIcon = new QLabel();
|
labelWalletEncryptionIcon = new QLabel();
|
||||||
labelWalletHDStatusIcon = new QLabel();
|
labelWalletHDStatusIcon = new QLabel();
|
||||||
connectionsControl = new NetworkToggleStatusBarControl();
|
connectionsControl = new GUIUtil::ClickableLabel();
|
||||||
labelBlocksIcon = new QLabel();
|
labelBlocksIcon = new QLabel();
|
||||||
if(enableWallet)
|
if(enableWallet)
|
||||||
{
|
{
|
||||||
|
@ -244,6 +244,8 @@ BitcoinGUI::BitcoinGUI(const PlatformStyle *_platformStyle, const NetworkStyle *
|
||||||
// Subscribe to notifications from core
|
// Subscribe to notifications from core
|
||||||
subscribeToCoreSignals();
|
subscribeToCoreSignals();
|
||||||
|
|
||||||
|
connect(connectionsControl, SIGNAL(clicked(QPoint)), this, SLOT(toggleNetworkActive()));
|
||||||
|
|
||||||
modalOverlay = new ModalOverlay(this->centralWidget());
|
modalOverlay = new ModalOverlay(this->centralWidget());
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
if(enableWallet)
|
if(enableWallet)
|
||||||
|
@ -490,7 +492,6 @@ void BitcoinGUI::setClientModel(ClientModel *_clientModel)
|
||||||
}
|
}
|
||||||
#endif // ENABLE_WALLET
|
#endif // ENABLE_WALLET
|
||||||
unitDisplayControl->setOptionsModel(_clientModel->getOptionsModel());
|
unitDisplayControl->setOptionsModel(_clientModel->getOptionsModel());
|
||||||
connectionsControl->setClientModel(_clientModel);
|
|
||||||
|
|
||||||
OptionsModel* optionsModel = _clientModel->getOptionsModel();
|
OptionsModel* optionsModel = _clientModel->getOptionsModel();
|
||||||
if(optionsModel)
|
if(optionsModel)
|
||||||
|
@ -517,7 +518,6 @@ void BitcoinGUI::setClientModel(ClientModel *_clientModel)
|
||||||
walletFrame->setClientModel(nullptr);
|
walletFrame->setClientModel(nullptr);
|
||||||
#endif // ENABLE_WALLET
|
#endif // ENABLE_WALLET
|
||||||
unitDisplayControl->setOptionsModel(nullptr);
|
unitDisplayControl->setOptionsModel(nullptr);
|
||||||
connectionsControl->setClientModel(nullptr);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1171,6 +1171,13 @@ void BitcoinGUI::unsubscribeFromCoreSignals()
|
||||||
uiInterface.ThreadSafeQuestion.disconnect(boost::bind(ThreadSafeMessageBox, this, _1, _3, _4));
|
uiInterface.ThreadSafeQuestion.disconnect(boost::bind(ThreadSafeMessageBox, this, _1, _3, _4));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BitcoinGUI::toggleNetworkActive()
|
||||||
|
{
|
||||||
|
if (clientModel) {
|
||||||
|
clientModel->setNetworkActive(!clientModel->getNetworkActive());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
UnitDisplayStatusBarControl::UnitDisplayStatusBarControl(const PlatformStyle *platformStyle) :
|
UnitDisplayStatusBarControl::UnitDisplayStatusBarControl(const PlatformStyle *platformStyle) :
|
||||||
optionsModel(0),
|
optionsModel(0),
|
||||||
menu(0)
|
menu(0)
|
||||||
|
@ -1244,16 +1251,3 @@ void UnitDisplayStatusBarControl::onMenuSelection(QAction* action)
|
||||||
optionsModel->setDisplayUnit(action->data());
|
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 RPCConsole;
|
||||||
class SendCoinsRecipient;
|
class SendCoinsRecipient;
|
||||||
class UnitDisplayStatusBarControl;
|
class UnitDisplayStatusBarControl;
|
||||||
class NetworkToggleStatusBarControl;
|
|
||||||
class WalletFrame;
|
class WalletFrame;
|
||||||
class WalletModel;
|
class WalletModel;
|
||||||
class HelpMessageDialog;
|
class HelpMessageDialog;
|
||||||
|
@ -86,7 +85,7 @@ private:
|
||||||
UnitDisplayStatusBarControl *unitDisplayControl;
|
UnitDisplayStatusBarControl *unitDisplayControl;
|
||||||
QLabel *labelWalletEncryptionIcon;
|
QLabel *labelWalletEncryptionIcon;
|
||||||
QLabel *labelWalletHDStatusIcon;
|
QLabel *labelWalletHDStatusIcon;
|
||||||
NetworkToggleStatusBarControl *connectionsControl;
|
QLabel *connectionsControl;
|
||||||
QLabel *labelBlocksIcon;
|
QLabel *labelBlocksIcon;
|
||||||
QLabel *progressBarLabel;
|
QLabel *progressBarLabel;
|
||||||
QProgressBar *progressBar;
|
QProgressBar *progressBar;
|
||||||
|
@ -238,6 +237,9 @@ private Q_SLOTS:
|
||||||
/** When hideTrayIcon setting is changed in OptionsModel hide or show the icon accordingly. */
|
/** When hideTrayIcon setting is changed in OptionsModel hide or show the icon accordingly. */
|
||||||
void setTrayIconVisible(bool);
|
void setTrayIconVisible(bool);
|
||||||
|
|
||||||
|
/** Toggle networking */
|
||||||
|
void toggleNetworkActive();
|
||||||
|
|
||||||
void showModalOverlay();
|
void showModalOverlay();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -270,17 +272,4 @@ private Q_SLOTS:
|
||||||
void onMenuSelection(QAction* action);
|
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
|
#endif // BITCOIN_QT_BITCOINGUI_H
|
||||||
|
|
|
@ -55,6 +55,7 @@
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QTextDocument> // for Qt::mightBeRichText
|
#include <QTextDocument> // for Qt::mightBeRichText
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
|
#include <QMouseEvent>
|
||||||
|
|
||||||
#if QT_VERSION < 0x050000
|
#if QT_VERSION < 0x050000
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
|
@ -986,4 +987,10 @@ QString formateNiceTimeOffset(qint64 secs)
|
||||||
}
|
}
|
||||||
return timeBehindText;
|
return timeBehindText;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ClickableLabel::mousePressEvent(QMouseEvent *event)
|
||||||
|
{
|
||||||
|
Q_EMIT clicked(event->pos());
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace GUIUtil
|
} // namespace GUIUtil
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
#include <QProgressBar>
|
#include <QProgressBar>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QTableView>
|
#include <QTableView>
|
||||||
|
#include <QLabel>
|
||||||
|
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
|
|
||||||
|
@ -215,6 +216,19 @@ namespace GUIUtil
|
||||||
typedef QProgressBar ProgressBar;
|
typedef QProgressBar ProgressBar;
|
||||||
#endif
|
#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
|
} // namespace GUIUtil
|
||||||
|
|
||||||
#endif // BITCOIN_QT_GUIUTIL_H
|
#endif // BITCOIN_QT_GUIUTIL_H
|
||||||
|
|
Loading…
Reference in a new issue