Skip to content

Commit 126185a

Browse files
committed
improve tooltip over transactions
1 parent ffccb56 commit 126185a

File tree

3 files changed

+30
-23
lines changed

3 files changed

+30
-23
lines changed

src/qt/transactionfilterproxy.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ bool TransactionFilterProxy::filterAcceptsRow(int sourceRow, const QModelIndex &
2828
QDateTime datetime = index.data(TransactionTableModel::DateRole).toDateTime();
2929
QString address = index.data(TransactionTableModel::AddressRole).toString();
3030
QString label = index.data(TransactionTableModel::LabelRole).toString();
31-
qint64 amount = index.data(TransactionTableModel::AbsoluteAmountRole).toLongLong();
31+
qint64 amount = llabs(index.data(TransactionTableModel::AmountRole).toLongLong());
3232

3333
if(!(TYPE(type) & typeFilter))
3434
return false;

src/qt/transactiontablemodel.cpp

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ int TransactionTableModel::columnCount(const QModelIndex &parent) const
265265
return columns.length();
266266
}
267267

268-
QVariant TransactionTableModel::formatTxStatus(const TransactionRecord *wtx) const
268+
QString TransactionTableModel::formatTxStatus(const TransactionRecord *wtx) const
269269
{
270270
QString status;
271271

@@ -289,7 +289,7 @@ QVariant TransactionTableModel::formatTxStatus(const TransactionRecord *wtx) con
289289
}
290290
if(wtx->type == TransactionRecord::Generated)
291291
{
292-
status += "\n\n";
292+
status += "\n";
293293
switch(wtx->status.maturity)
294294
{
295295
case TransactionStatus::Immature:
@@ -307,18 +307,18 @@ QVariant TransactionTableModel::formatTxStatus(const TransactionRecord *wtx) con
307307
}
308308
}
309309

310-
return QVariant(status);
310+
return status;
311311
}
312312

313-
QVariant TransactionTableModel::formatTxDate(const TransactionRecord *wtx) const
313+
QString TransactionTableModel::formatTxDate(const TransactionRecord *wtx) const
314314
{
315315
if(wtx->time)
316316
{
317-
return QVariant(GUIUtil::DateTimeStr(wtx->time));
317+
return GUIUtil::DateTimeStr(wtx->time);
318318
}
319319
else
320320
{
321-
return QVariant();
321+
return QString();
322322
}
323323
}
324324

@@ -418,7 +418,7 @@ QVariant TransactionTableModel::addressColor(const TransactionRecord *wtx) const
418418
return QVariant();
419419
}
420420

421-
QVariant TransactionTableModel::formatTxAmount(const TransactionRecord *wtx, bool showUnconfirmed) const
421+
QString TransactionTableModel::formatTxAmount(const TransactionRecord *wtx, bool showUnconfirmed) const
422422
{
423423
QString str = BitcoinUnits::format(walletModel->getOptionsModel()->getDisplayUnit(), wtx->credit + wtx->debit);
424424
if(showUnconfirmed)
@@ -428,10 +428,10 @@ QVariant TransactionTableModel::formatTxAmount(const TransactionRecord *wtx, boo
428428
str = QString("[") + str + QString("]");
429429
}
430430
}
431-
return QVariant(str);
431+
return QString(str);
432432
}
433433

434-
QVariant TransactionTableModel::formatTxDecoration(const TransactionRecord *wtx) const
434+
QVariant TransactionTableModel::txStatusDecoration(const TransactionRecord *wtx) const
435435
{
436436
if(wtx->type == TransactionRecord::Generated)
437437
{
@@ -476,6 +476,18 @@ QVariant TransactionTableModel::formatTxDecoration(const TransactionRecord *wtx)
476476
return QColor(0,0,0);
477477
}
478478

479+
QString TransactionTableModel::formatTooltip(const TransactionRecord *rec) const
480+
{
481+
QString tooltip = formatTxType(rec);
482+
if(rec->type==TransactionRecord::RecvFromIP || rec->type==TransactionRecord::SendToIP ||
483+
rec->type==TransactionRecord::SendToAddress || rec->type==TransactionRecord::RecvWithAddress)
484+
{
485+
tooltip += QString(" ") + formatTxToAddress(rec, true);
486+
}
487+
tooltip += QString("\n") + formatTxStatus(rec);
488+
return tooltip;
489+
}
490+
479491
QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
480492
{
481493
if(!index.isValid())
@@ -487,7 +499,7 @@ QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
487499
switch(index.column())
488500
{
489501
case Status:
490-
return formatTxDecoration(rec);
502+
return txStatusDecoration(rec);
491503
case ToAddress:
492504
return txAddressDecoration(rec);
493505
}
@@ -530,8 +542,8 @@ QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
530542
{
531543
case Status:
532544
return formatTxStatus(rec);
533-
case ToAddress:
534-
return formatTxType(rec) + QString(" ") + formatTxToAddress(rec, true);
545+
default:
546+
return formatTooltip(rec);
535547
}
536548
}
537549
else if (role == Qt::TextAlignmentRole)
@@ -574,10 +586,6 @@ QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
574586
{
575587
return walletModel->getAddressTableModel()->labelForAddress(QString::fromStdString(rec->address));
576588
}
577-
else if (role == AbsoluteAmountRole)
578-
{
579-
return llabs(rec->credit + rec->debit);
580-
}
581589
else if (role == AmountRole)
582590
{
583591
return rec->credit + rec->debit;

src/qt/transactiontablemodel.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ class TransactionTableModel : public QAbstractTableModel
3737
AddressRole,
3838
// Label of address related to transaction
3939
LabelRole,
40-
// Absolute net amount of transaction, for filtering
41-
AbsoluteAmountRole,
4240
// Net amount of transaction
4341
AmountRole,
4442
// Unique identifier
@@ -63,12 +61,13 @@ class TransactionTableModel : public QAbstractTableModel
6361

6462
QString lookupAddress(const std::string &address, bool tooltip) const;
6563
QVariant addressColor(const TransactionRecord *wtx) const;
66-
QVariant formatTxStatus(const TransactionRecord *wtx) const;
67-
QVariant formatTxDate(const TransactionRecord *wtx) const;
64+
QString formatTxStatus(const TransactionRecord *wtx) const;
65+
QString formatTxDate(const TransactionRecord *wtx) const;
6866
QString formatTxType(const TransactionRecord *wtx) const;
6967
QString formatTxToAddress(const TransactionRecord *wtx, bool tooltip) const;
70-
QVariant formatTxAmount(const TransactionRecord *wtx, bool showUnconfirmed=true) const;
71-
QVariant formatTxDecoration(const TransactionRecord *wtx) const;
68+
QString formatTxAmount(const TransactionRecord *wtx, bool showUnconfirmed=true) const;
69+
QString formatTooltip(const TransactionRecord *rec) const;
70+
QVariant txStatusDecoration(const TransactionRecord *wtx) const;
7271
QVariant txAddressDecoration(const TransactionRecord *wtx) const;
7372

7473
private slots:

0 commit comments

Comments
 (0)