mirror of
https://github.com/dashpay/dash.git
synced 2024-12-27 13:03:17 +01:00
[Qt] add sorting for bantable
This commit is contained in:
parent
51654deff2
commit
65abe91ce4
@ -14,6 +14,24 @@
|
|||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QList>
|
#include <QList>
|
||||||
|
|
||||||
|
bool BannedNodeLessThan::operator()(const CCombinedBan& left, const CCombinedBan& right) const
|
||||||
|
{
|
||||||
|
const CCombinedBan* pLeft = &left;
|
||||||
|
const CCombinedBan* pRight = &right;
|
||||||
|
|
||||||
|
if (order == Qt::DescendingOrder)
|
||||||
|
std::swap(pLeft, pRight);
|
||||||
|
|
||||||
|
switch(column)
|
||||||
|
{
|
||||||
|
case BanTableModel::Address:
|
||||||
|
return pLeft->subnet.ToString().compare(pRight->subnet.ToString()) < 0;
|
||||||
|
case BanTableModel::Bantime:
|
||||||
|
return pLeft->bantil < pRight->bantil;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// private implementation
|
// private implementation
|
||||||
class BanTablePriv
|
class BanTablePriv
|
||||||
@ -43,6 +61,10 @@ public:
|
|||||||
banEntry.bantil = banentry.second;
|
banEntry.bantil = banentry.second;
|
||||||
cachedBanlist.append(banEntry);
|
cachedBanlist.append(banEntry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (sortColumn >= 0)
|
||||||
|
// sort cachedBanlist (use stable sort to prevent rows jumping around unneceesarily)
|
||||||
|
qStableSort(cachedBanlist.begin(), cachedBanlist.end(), BannedNodeLessThan(sortColumn, sortOrder));
|
||||||
}
|
}
|
||||||
|
|
||||||
int size() const
|
int size() const
|
||||||
|
@ -18,6 +18,18 @@ struct CCombinedBan {
|
|||||||
int64_t bantil;
|
int64_t bantil;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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
|
Qt model providing information about connected peers, similar to the
|
||||||
"getpeerinfo" RPC call. Used by the rpc console UI.
|
"getpeerinfo" RPC call. Used by the rpc console UI.
|
||||||
@ -33,7 +45,7 @@ public:
|
|||||||
|
|
||||||
enum ColumnIndex {
|
enum ColumnIndex {
|
||||||
Address = 0,
|
Address = 0,
|
||||||
Bantime = 1,
|
Bantime = 1
|
||||||
};
|
};
|
||||||
|
|
||||||
/** @name Methods overridden from QAbstractTableModel
|
/** @name Methods overridden from QAbstractTableModel
|
||||||
|
Loading…
Reference in New Issue
Block a user