PRCYCoin  2.0.0.7rc1
P2P Digital Currency
bantablemodel.h
Go to the documentation of this file.
1 // Copyright (c) 2011-2013 The Bitcoin Core developers
2 // Copyright (c) 2015-2018 The PIVX developers
3 // Copyright (c) 2018-2020 The DAPS Project developers
4 // Distributed under the MIT software license, see the accompanying
5 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
6 
7 #ifndef BITCOIN_QT_BANTABLEMODEL_H
8 #define BITCOIN_QT_BANTABLEMODEL_H
9 
10 #include "net.h"
11 
12 #include <QAbstractTableModel>
13 #include <QStringList>
14 
15 class ClientModel;
16 class BanTablePriv;
17 
18 struct CCombinedBan {
21 };
22 
24 {
25 public:
26  BannedNodeLessThan(int nColumn, Qt::SortOrder fOrder) :
27  column(nColumn), order(fOrder) {}
28  bool operator()(const CCombinedBan& left, const CCombinedBan& right) const;
29 
30 private:
31  int column;
32  Qt::SortOrder order;
33 };
34 
39 class BanTableModel : public QAbstractTableModel
40 {
41  Q_OBJECT
42 
43 public:
44  explicit BanTableModel(ClientModel *parent = 0);
46  void startAutoRefresh();
47  void stopAutoRefresh();
48 
49  enum ColumnIndex {
50  Address = 0,
51  Bantime = 1
52  };
53 
56  int rowCount(const QModelIndex &parent) const;
57  int columnCount(const QModelIndex &parent) const;
58  QVariant data(const QModelIndex &index, int role) const;
59  QVariant headerData(int section, Qt::Orientation orientation, int role) const;
60  QModelIndex index(int row, int column, const QModelIndex &parent) const;
61  Qt::ItemFlags flags(const QModelIndex &index) const;
62  void sort(int column, Qt::SortOrder order);
63  bool shouldShow();
66 public Q_SLOTS:
67  void refresh();
68 
69 private:
71  QStringList columns;
72  std::unique_ptr<BanTablePriv> priv;
73 };
74 
75 #endif // BITCOIN_QT_BANTABLEMODEL_H
CCombinedBan
Definition: bantablemodel.h:18
BanTableModel::sort
void sort(int column, Qt::SortOrder order)
Definition: bantablemodel.cpp:176
CCombinedBan::banEntry
CBanEntry banEntry
Definition: bantablemodel.h:20
BannedNodeLessThan::operator()
bool operator()(const CCombinedBan &left, const CCombinedBan &right) const
Definition: bantablemodel.cpp:21
BannedNodeLessThan::order
Qt::SortOrder order
Definition: bantablemodel.h:32
BanTableModel
Qt model providing information about connected peers, similar to the "getpeerinfo" RPC call.
Definition: bantablemodel.h:39
BanTableModel::Bantime
@ Bantime
Definition: bantablemodel.h:51
BanTableModel::index
QModelIndex index(int row, int column, const QModelIndex &parent) const
Definition: bantablemodel.cpp:159
CCombinedBan::subnet
CSubNet subnet
Definition: bantablemodel.h:19
BanTableModel::startAutoRefresh
void startAutoRefresh()
BanTableModel::stopAutoRefresh
void stopAutoRefresh()
BanTableModel::BanTableModel
BanTableModel(ClientModel *parent=0)
Definition: bantablemodel.cpp:86
BanTableModel::~BanTableModel
~BanTableModel()
Definition: bantablemodel.cpp:99
CSubNet
Definition: netaddress.h:95
BanTableModel::ColumnIndex
ColumnIndex
Definition: bantablemodel.h:49
BanTableModel::rowCount
int rowCount(const QModelIndex &parent) const
Definition: bantablemodel.cpp:104
BanTableModel::flags
Qt::ItemFlags flags(const QModelIndex &index) const
Definition: bantablemodel.cpp:150
BanTableModel::shouldShow
bool shouldShow()
Definition: bantablemodel.cpp:183
BannedNodeLessThan
Definition: bantablemodel.h:23
BanTableModel::data
QVariant data(const QModelIndex &index, int role) const
Definition: bantablemodel.cpp:116
ClientModel
Model for PRCY network client.
Definition: clientmodel.h:44
BanTableModel::priv
std::unique_ptr< BanTablePriv > priv
Definition: bantablemodel.h:72
BannedNodeLessThan::BannedNodeLessThan
BannedNodeLessThan(int nColumn, Qt::SortOrder fOrder)
Definition: bantablemodel.h:26
BanTableModel::headerData
QVariant headerData(int section, Qt::Orientation orientation, int role) const
Definition: bantablemodel.cpp:138
CBanEntry
Definition: net.h:251
BanTableModel::columnCount
int columnCount(const QModelIndex &parent) const
Definition: bantablemodel.cpp:110
net.h
BanTableModel::refresh
void refresh()
Definition: bantablemodel.cpp:169
BannedNodeLessThan::column
int column
Definition: bantablemodel.h:31
BanTableModel::columns
QStringList columns
Definition: bantablemodel.h:71
BanTablePriv
Definition: bantablemodel.cpp:41
BanTableModel::Address
@ Address
Definition: bantablemodel.h:50
BanTableModel::clientModel
ClientModel * clientModel
Definition: bantablemodel.h:70