23 if (
order == Qt::DescendingOrder)
24 std::swap(pLeft, pRight);
56 for (
const auto& entry : banMap)
59 banEntry.
subnet = entry.first;
84 QAbstractTableModel(parent),
88 columns << tr(
"IP/Netmask") << tr(
"Banned Until");
91 priv->sortColumn = -1;
121 if (role == Qt::DisplayRole) {
122 switch(
index.column())
127 QDateTime date = QDateTime::fromMSecsSinceEpoch(0);
129 return date.toString(Qt::SystemLocaleLongDate);
138 if(orientation == Qt::Horizontal)
140 if(role == Qt::DisplayRole && section <
columns.size())
153 Qt::ItemFlags retval = Qt::ItemIsSelectable | Qt::ItemIsEnabled;
163 return createIndex(row, column,
data);
164 return QModelIndex();
169 Q_EMIT layoutAboutToBeChanged();
171 Q_EMIT layoutChanged();
176 priv->sortColumn = column;
177 priv->sortOrder = order;
183 return priv->size() > 0;
int columnCount(const QModelIndex &parent) const
BanTableModel(interfaces::Node &node, ClientModel *parent=0)
int sortColumn
Column to sort nodes by.
QVariant data(const QModelIndex &index, int role) const
QVariant headerData(int section, Qt::Orientation orientation, int role) const
std::map< CSubNet, CBanEntry > banmap_t
std::unique_ptr< BanTablePriv > priv
bool operator()(const CCombinedBan &left, const CCombinedBan &right) const
Qt::SortOrder sortOrder
Order (ascending or descending) to sort nodes by.
Model for Bitcoin network client.
void refreshBanlist(interfaces::Node &node)
Pull a full list of banned nodes from CNode into our cache.
interfaces::Node & m_node
std::string ToString() const
int rowCount(const QModelIndex &parent) const
virtual bool getBanned(banmap_t &banmap)=0
Get ban map entries.
QList< CCombinedBan > cachedBanlist
Local cache of peer information.
QModelIndex index(int row, int column, const QModelIndex &parent) const
void sort(int column, Qt::SortOrder order)
Top-level interface for a bitcoin node (bsha3d process).
CCombinedBan * index(int idx)
Qt::ItemFlags flags(const QModelIndex &index) const