Coins: improve freeze/thaw performance and fix indexing bug

This commit is contained in:
tobtoht
2021-02-04 00:14:20 +01:00
parent e0f7473ed4
commit c296eab191
6 changed files with 26 additions and 34 deletions
+10 -5
View File
@@ -3,17 +3,22 @@
#include "CoinsProxyModel.h"
#include "CoinsModel.h"
#include "libwalletqt/CoinsInfo.h"
CoinsProxyModel::CoinsProxyModel(QObject *parent)
: QSortFilterProxyModel(parent)
CoinsProxyModel::CoinsProxyModel(QObject *parent, Coins *coins)
: QSortFilterProxyModel(parent), m_coins(coins)
{
setSortRole(Qt::UserRole);
}
bool CoinsProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
{
QModelIndex spentIndex = sourceModel()->index(sourceRow, CoinsModel::Spent, sourceParent);
bool isSpent = sourceModel()->data(spentIndex).toBool();
bool isSpent;
int accountIndex;
m_coins->coin(sourceRow, [&isSpent, &accountIndex](const CoinsInfo &c){
isSpent = c.spent();
accountIndex = c.subaddrAccount();
});
return !(!m_showSpent && isSpent);
return !(!m_showSpent && isSpent) && accountIndex == 0;
}