aboutsummaryrefslogtreecommitdiff
path: root/src/qt/clientmodel.cpp
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2015-09-22 13:39:14 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2015-09-22 13:39:38 +0200
commite59d2a80f9167031521d882394a08b02fa9d0343 (patch)
tree650f9d9153d617e7f0b0cbd417902d3feec18be2 /src/qt/clientmodel.cpp
parent28d0b3ec655d7cf2d2b231478f0ead67322cc5ec (diff)
parent7aac6db6eb6b54da62d5eaafe7f14585ea1ea34d (diff)
Merge pull request #6315
7aac6db [QT] dump banlist to disk in case of ban/unban over QT (Jonas Schnelli) 7f90ea7 [QA] adabt QT_NO_KEYWORDS for QT ban implementation (Jonas Schnelli) 07f70b2 [QA] fix netbase tests because of new CSubNet::ToString() output (Jonas Schnelli) 4ed0510 [Qt] call DumpBanlist() when baning unbaning nodes (Philip Kaufmann) be89292 [Qt] reenabling hotkeys for ban context menu, use different words (Jonas Schnelli) b1189cf [Qt] adapt QT ban option to banlist.dat changes (Jonas Schnelli) 65abe91 [Qt] add sorting for bantable (Philip Kaufmann) 51654de [Qt] bantable polish (Philip Kaufmann) cdd72cd [Qt] simplify ban list signal handling (Philip Kaufmann) 43c1f5b [Qt] remove unused timer-code from banlistmodel.cpp (Jonas Schnelli) e2b8028 net: Fix CIDR notation in ToString() (Wladimir J. van der Laan) 9e521c1 [Qt] polish ban table (Philip Kaufmann) 607809f net: use CIDR notation in CSubNet::ToString() (Jonas Schnelli) 53caec6 [Qt] bantable overhaul (Jonas Schnelli) f0bcbc4 [Qt] bantable fix timestamp 64bit issue (Jonas Schnelli) 6135309 [Qt] banlist, UI optimizing and better signal handling (Jonas Schnelli) 770ca79 [Qt] add context menu with unban option to ban table (Jonas Schnelli) 5f42132 [Qt] add ui signal for banlist changes (Jonas Schnelli) ad204df [Qt] add banlist table below peers table (Jonas Schnelli) 50f0908 [Qt] add ban functions to peers window (Jonas Schnelli)
Diffstat (limited to 'src/qt/clientmodel.cpp')
-rw-r--r--src/qt/clientmodel.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/qt/clientmodel.cpp b/src/qt/clientmodel.cpp
index 97d6711560..0900a35cc4 100644
--- a/src/qt/clientmodel.cpp
+++ b/src/qt/clientmodel.cpp
@@ -4,6 +4,7 @@
#include "clientmodel.h"
+#include "bantablemodel.h"
#include "guiconstants.h"
#include "peertablemodel.h"
@@ -26,6 +27,7 @@ ClientModel::ClientModel(OptionsModel *optionsModel, QObject *parent) :
QObject(parent),
optionsModel(optionsModel),
peerTableModel(0),
+ banTableModel(0),
cachedNumBlocks(0),
cachedBlockDate(QDateTime()),
cachedReindexing(0),
@@ -33,6 +35,7 @@ ClientModel::ClientModel(OptionsModel *optionsModel, QObject *parent) :
pollTimer(0)
{
peerTableModel = new PeerTableModel(this);
+ banTableModel = new BanTableModel(this);
pollTimer = new QTimer(this);
connect(pollTimer, SIGNAL(timeout()), this, SLOT(updateTimer()));
pollTimer->start(MODEL_UPDATE_DELAY);
@@ -176,6 +179,11 @@ PeerTableModel *ClientModel::getPeerTableModel()
return peerTableModel;
}
+BanTableModel *ClientModel::getBanTableModel()
+{
+ return banTableModel;
+}
+
QString ClientModel::formatFullVersion() const
{
return QString::fromStdString(FormatFullVersion());
@@ -206,6 +214,11 @@ QString ClientModel::formatClientStartupTime() const
return QDateTime::fromTime_t(nClientStartupTime).toString();
}
+void ClientModel::updateBanlist()
+{
+ banTableModel->refresh();
+}
+
// Handlers for core signals
static void ShowProgress(ClientModel *clientmodel, const std::string &title, int nProgress)
{
@@ -230,12 +243,19 @@ static void NotifyAlertChanged(ClientModel *clientmodel, const uint256 &hash, Ch
Q_ARG(int, status));
}
+static void BannedListChanged(ClientModel *clientmodel)
+{
+ qDebug() << QString("%1: Requesting update for peer banlist").arg(__func__);
+ QMetaObject::invokeMethod(clientmodel, "updateBanlist", Qt::QueuedConnection);
+}
+
void ClientModel::subscribeToCoreSignals()
{
// Connect signals to client
uiInterface.ShowProgress.connect(boost::bind(ShowProgress, this, _1, _2));
uiInterface.NotifyNumConnectionsChanged.connect(boost::bind(NotifyNumConnectionsChanged, this, _1));
uiInterface.NotifyAlertChanged.connect(boost::bind(NotifyAlertChanged, this, _1, _2));
+ uiInterface.BannedListChanged.connect(boost::bind(BannedListChanged, this));
}
void ClientModel::unsubscribeFromCoreSignals()
@@ -244,4 +264,5 @@ void ClientModel::unsubscribeFromCoreSignals()
uiInterface.ShowProgress.disconnect(boost::bind(ShowProgress, this, _1, _2));
uiInterface.NotifyNumConnectionsChanged.disconnect(boost::bind(NotifyNumConnectionsChanged, this, _1));
uiInterface.NotifyAlertChanged.disconnect(boost::bind(NotifyAlertChanged, this, _1, _2));
+ uiInterface.BannedListChanged.disconnect(boost::bind(BannedListChanged, this));
}