47db075377
None of these are very serious, and are leaks in objects that are created at most one time. In most cases this means properly using the QObject parent hierarchy, except for BanTablePriv/PeerTablePriv which are not QObject, so use a std::unique_ptr instead.
73 lines
1.8 KiB
C++
73 lines
1.8 KiB
C++
// Copyright (c) 2011-2015 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);
|
|
~BanTableModel();
|
|
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;
|
|
std::unique_ptr<BanTablePriv> priv;
|
|
};
|
|
|
|
#endif // BITCOIN_QT_BANTABLEMODEL_H
|