aboutsummaryrefslogtreecommitdiff
path: root/src/qt/bantablemodel.h
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/bantablemodel.h
parent28d0b3ec655d7cf2d2b231478f0ead67322cc5ec (diff)
parent7aac6db6eb6b54da62d5eaafe7f14585ea1ea34d (diff)
downloadbitcoin-e59d2a80f9167031521d882394a08b02fa9d0343.tar.xz
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/bantablemodel.h')
-rw-r--r--src/qt/bantablemodel.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/qt/bantablemodel.h b/src/qt/bantablemodel.h
new file mode 100644
index 0000000000..c21dd04e31
--- /dev/null
+++ b/src/qt/bantablemodel.h
@@ -0,0 +1,72 @@
+// Copyright (c) 2011-2013 The Bitcoin Core developers
+// Distributed under the MIT software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+#ifndef BITCOIN_QT_BANTABLEMODEL_H
+#define BITCOIN_QT_BANTABLEMODEL_H
+
+#include "net.h"
+
+#include <QAbstractTableModel>
+#include <QStringList>
+
+class ClientModel;
+class BanTablePriv;
+
+struct CCombinedBan {
+ CSubNet subnet;
+ CBanEntry banEntry;
+};
+
+class BannedNodeLessThan
+{
+public:
+ BannedNodeLessThan(int nColumn, Qt::SortOrder fOrder) :
+ column(nColumn), order(fOrder) {}
+ bool operator()(const CCombinedBan& left, const CCombinedBan& right) const;
+
+private:
+ int column;
+ Qt::SortOrder order;
+};
+
+/**
+ Qt model providing information about connected peers, similar to the
+ "getpeerinfo" RPC call. Used by the rpc console UI.
+ */
+class BanTableModel : public QAbstractTableModel
+{
+ Q_OBJECT
+
+public:
+ explicit BanTableModel(ClientModel *parent = 0);
+ void startAutoRefresh();
+ void stopAutoRefresh();
+
+ enum ColumnIndex {
+ Address = 0,
+ Bantime = 1
+ };
+
+ /** @name Methods overridden from QAbstractTableModel
+ @{*/
+ int rowCount(const QModelIndex &parent) const;
+ int columnCount(const QModelIndex &parent) const;
+ QVariant data(const QModelIndex &index, int role) const;
+ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+ QModelIndex index(int row, int column, const QModelIndex &parent) const;
+ Qt::ItemFlags flags(const QModelIndex &index) const;
+ void sort(int column, Qt::SortOrder order);
+ bool shouldShow();
+ /*@}*/
+
+public Q_SLOTS:
+ void refresh();
+
+private:
+ ClientModel *clientModel;
+ QStringList columns;
+ BanTablePriv *priv;
+};
+
+#endif // BITCOIN_QT_BANTABLEMODEL_H