aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2011-08-05 15:35:52 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2011-08-05 15:35:52 +0200
commit126185aaa70839dfbb14e56884b4747e75942ab4 (patch)
treeec0ca78a78ec79979325c94fb3a4a19379799b84
parentffccb56914bd317c438bf055a32bc89dce690913 (diff)
improve tooltip over transactions
-rw-r--r--src/qt/transactionfilterproxy.cpp2
-rw-r--r--src/qt/transactiontablemodel.cpp40
-rw-r--r--src/qt/transactiontablemodel.h11
3 files changed, 30 insertions, 23 deletions
diff --git a/src/qt/transactionfilterproxy.cpp b/src/qt/transactionfilterproxy.cpp
index 5a66f85121..456043afa8 100644
--- a/src/qt/transactionfilterproxy.cpp
+++ b/src/qt/transactionfilterproxy.cpp
@@ -28,7 +28,7 @@ bool TransactionFilterProxy::filterAcceptsRow(int sourceRow, const QModelIndex &
QDateTime datetime = index.data(TransactionTableModel::DateRole).toDateTime();
QString address = index.data(TransactionTableModel::AddressRole).toString();
QString label = index.data(TransactionTableModel::LabelRole).toString();
- qint64 amount = index.data(TransactionTableModel::AbsoluteAmountRole).toLongLong();
+ qint64 amount = llabs(index.data(TransactionTableModel::AmountRole).toLongLong());
if(!(TYPE(type) & typeFilter))
return false;
diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp
index 988a91ee90..f418a2bce3 100644
--- a/src/qt/transactiontablemodel.cpp
+++ b/src/qt/transactiontablemodel.cpp
@@ -265,7 +265,7 @@ int TransactionTableModel::columnCount(const QModelIndex &parent) const
return columns.length();
}
-QVariant TransactionTableModel::formatTxStatus(const TransactionRecord *wtx) const
+QString TransactionTableModel::formatTxStatus(const TransactionRecord *wtx) const
{
QString status;
@@ -289,7 +289,7 @@ QVariant TransactionTableModel::formatTxStatus(const TransactionRecord *wtx) con
}
if(wtx->type == TransactionRecord::Generated)
{
- status += "\n\n";
+ status += "\n";
switch(wtx->status.maturity)
{
case TransactionStatus::Immature:
@@ -307,18 +307,18 @@ QVariant TransactionTableModel::formatTxStatus(const TransactionRecord *wtx) con
}
}
- return QVariant(status);
+ return status;
}
-QVariant TransactionTableModel::formatTxDate(const TransactionRecord *wtx) const
+QString TransactionTableModel::formatTxDate(const TransactionRecord *wtx) const
{
if(wtx->time)
{
- return QVariant(GUIUtil::DateTimeStr(wtx->time));
+ return GUIUtil::DateTimeStr(wtx->time);
}
else
{
- return QVariant();
+ return QString();
}
}
@@ -418,7 +418,7 @@ QVariant TransactionTableModel::addressColor(const TransactionRecord *wtx) const
return QVariant();
}
-QVariant TransactionTableModel::formatTxAmount(const TransactionRecord *wtx, bool showUnconfirmed) const
+QString TransactionTableModel::formatTxAmount(const TransactionRecord *wtx, bool showUnconfirmed) const
{
QString str = BitcoinUnits::format(walletModel->getOptionsModel()->getDisplayUnit(), wtx->credit + wtx->debit);
if(showUnconfirmed)
@@ -428,10 +428,10 @@ QVariant TransactionTableModel::formatTxAmount(const TransactionRecord *wtx, boo
str = QString("[") + str + QString("]");
}
}
- return QVariant(str);
+ return QString(str);
}
-QVariant TransactionTableModel::formatTxDecoration(const TransactionRecord *wtx) const
+QVariant TransactionTableModel::txStatusDecoration(const TransactionRecord *wtx) const
{
if(wtx->type == TransactionRecord::Generated)
{
@@ -476,6 +476,18 @@ QVariant TransactionTableModel::formatTxDecoration(const TransactionRecord *wtx)
return QColor(0,0,0);
}
+QString TransactionTableModel::formatTooltip(const TransactionRecord *rec) const
+{
+ QString tooltip = formatTxType(rec);
+ if(rec->type==TransactionRecord::RecvFromIP || rec->type==TransactionRecord::SendToIP ||
+ rec->type==TransactionRecord::SendToAddress || rec->type==TransactionRecord::RecvWithAddress)
+ {
+ tooltip += QString(" ") + formatTxToAddress(rec, true);
+ }
+ tooltip += QString("\n") + formatTxStatus(rec);
+ return tooltip;
+}
+
QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
{
if(!index.isValid())
@@ -487,7 +499,7 @@ QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
switch(index.column())
{
case Status:
- return formatTxDecoration(rec);
+ return txStatusDecoration(rec);
case ToAddress:
return txAddressDecoration(rec);
}
@@ -530,8 +542,8 @@ QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
{
case Status:
return formatTxStatus(rec);
- case ToAddress:
- return formatTxType(rec) + QString(" ") + formatTxToAddress(rec, true);
+ default:
+ return formatTooltip(rec);
}
}
else if (role == Qt::TextAlignmentRole)
@@ -574,10 +586,6 @@ QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
{
return walletModel->getAddressTableModel()->labelForAddress(QString::fromStdString(rec->address));
}
- else if (role == AbsoluteAmountRole)
- {
- return llabs(rec->credit + rec->debit);
- }
else if (role == AmountRole)
{
return rec->credit + rec->debit;
diff --git a/src/qt/transactiontablemodel.h b/src/qt/transactiontablemodel.h
index 0daa5f6aaa..17bfeccdb2 100644
--- a/src/qt/transactiontablemodel.h
+++ b/src/qt/transactiontablemodel.h
@@ -37,8 +37,6 @@ public:
AddressRole,
// Label of address related to transaction
LabelRole,
- // Absolute net amount of transaction, for filtering
- AbsoluteAmountRole,
// Net amount of transaction
AmountRole,
// Unique identifier
@@ -63,12 +61,13 @@ private:
QString lookupAddress(const std::string &address, bool tooltip) const;
QVariant addressColor(const TransactionRecord *wtx) const;
- QVariant formatTxStatus(const TransactionRecord *wtx) const;
- QVariant formatTxDate(const TransactionRecord *wtx) const;
+ QString formatTxStatus(const TransactionRecord *wtx) const;
+ QString formatTxDate(const TransactionRecord *wtx) const;
QString formatTxType(const TransactionRecord *wtx) const;
QString formatTxToAddress(const TransactionRecord *wtx, bool tooltip) const;
- QVariant formatTxAmount(const TransactionRecord *wtx, bool showUnconfirmed=true) const;
- QVariant formatTxDecoration(const TransactionRecord *wtx) const;
+ QString formatTxAmount(const TransactionRecord *wtx, bool showUnconfirmed=true) const;
+ QString formatTooltip(const TransactionRecord *rec) const;
+ QVariant txStatusDecoration(const TransactionRecord *wtx) const;
QVariant txAddressDecoration(const TransactionRecord *wtx) const;
private slots: