git / moonbite-core / src/qt/bantablemodel.h · raw
// Copyright (c) 2011-2020 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 <memory>#include <QAbstractTableModel>#include <QStringList>class BanTablePriv;namespace interfaces { class Node;}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_OBJECTpublic: explicit BanTableModel(interfaces::Node& node, QObject* parent); ~BanTableModel(); void startAutoRefresh(); void stopAutoRefresh(); enum ColumnIndex { Address = 0, Bantime = 1 }; /** @name Methods overridden from QAbstractTableModel @{*/ int rowCount(const QModelIndex &parent) const override; int columnCount(const QModelIndex &parent) const override; QVariant data(const QModelIndex &index, int role) const override; QVariant headerData(int section, Qt::Orientation orientation, int role) const override; QModelIndex index(int row, int column, const QModelIndex &parent) const override; Qt::ItemFlags flags(const QModelIndex &index) const override; void sort(int column, Qt::SortOrder order) override; /*@}*/ bool shouldShow();public Q_SLOTS: void refresh();private: interfaces::Node& m_node; QStringList columns; std::unique_ptr<BanTablePriv> priv;};#endif // BITCOIN_QT_BANTABLEMODEL_H