History: add balance column

This commit is contained in:
tobtoht
2023-07-15 01:55:02 +02:00
parent 7f914ed682
commit 9ec53dc7d5
7 changed files with 40 additions and 10 deletions
+14 -4
View File
@@ -67,7 +67,7 @@ QVariant TransactionHistoryModel::data(const QModelIndex &index, int role) const
bool found = m_transactionHistory->transaction(index.row(), [this, &index, &result, &role](const TransactionInfo &tInfo) {
if(role == Qt::DisplayRole || role == Qt::EditRole || role == Qt::UserRole) {
result = parseTransactionInfo(tInfo, index.column(), role);
result = parseTransactionInfo(tInfo, index.row(), index.column(), role);
}
else if (role == Qt::TextAlignmentRole) {
switch (index.column()) {
@@ -139,14 +139,14 @@ QVariant TransactionHistoryModel::data(const QModelIndex &index, int role) const
return result;
}
QVariant TransactionHistoryModel::parseTransactionInfo(const TransactionInfo &tInfo, int column, int role) const
QVariant TransactionHistoryModel::parseTransactionInfo(const TransactionInfo &tInfo, int row, int column, int role) const
{
switch (column)
{
case Column::Date:
{
if (role == Qt::UserRole) {
return tInfo.timestamp();
return row;
}
return tInfo.timestamp().toString(QString("%1 %2 ").arg(config()->get(Config::dateFormat).toString(),
config()->get(Config::timeFormat).toString()));
@@ -158,7 +158,7 @@ QVariant TransactionHistoryModel::parseTransactionInfo(const TransactionInfo &tI
if (role == Qt::UserRole) {
return tInfo.balanceDelta();
}
QString amount = QString::number(tInfo.balanceDelta() / constants::cdiv, 'f', config()->get(Config::amountPrecision).toInt());
auto amount = this->formatAmount(tInfo.balanceDelta());
amount = (tInfo.direction() == TransactionInfo::Direction_Out) ? "-" + amount : "+" + amount;
return amount;
}
@@ -188,6 +188,10 @@ QVariant TransactionHistoryModel::parseTransactionInfo(const TransactionInfo &tI
double fiat_rounded = ceil(Utils::roundSignificant(usd_amount, 3) * 100.0) / 100.0;
return QString("%1").arg(Utils::amountToCurrencyString(fiat_rounded, preferredFiatCurrency));
}
case Column::Balance:
{
return this->formatAmount(tInfo.balance());
}
default:
{
qCritical() << "Unimplemented role";
@@ -196,6 +200,10 @@ QVariant TransactionHistoryModel::parseTransactionInfo(const TransactionInfo &tI
}
}
QString TransactionHistoryModel::formatAmount(quint64 amount) const {
return QString::number(amount / constants::cdiv, 'f', config()->get(Config::amountPrecision).toInt());
}
QVariant TransactionHistoryModel::headerData(int section, Qt::Orientation orientation, int role) const {
Q_UNUSED(orientation)
if (role != Qt::DisplayRole) {
@@ -213,6 +221,8 @@ QVariant TransactionHistoryModel::headerData(int section, Qt::Orientation orient
return QString("Txid");
case Column::FiatAmount:
return QString("Fiat");
case Column::Balance:
return QString("Balance");
default:
return QVariant();
}