Browse Source

"Receive with" i.s.o. "Receive from" address

0.8
Wladimir J. van der Laan 14 years ago
parent
commit
8c937da5f2
  1. 2
      gui/include/transactionrecord.h
  2. 10
      gui/src/transactionrecord.cpp
  3. 28
      gui/src/transactiontablemodel.cpp

2
gui/include/transactionrecord.h

@ -51,7 +51,7 @@ public:
Generated, Generated,
SendToAddress, SendToAddress,
SendToIP, SendToIP,
RecvFromAddress, RecvWithAddress,
RecvFromIP, RecvFromIP,
SendToSelf SendToSelf
}; };

10
gui/src/transactionrecord.cpp

@ -128,7 +128,7 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWalletTx
else else
{ {
// Received by Bitcoin Address // Received by Bitcoin Address
sub.type = TransactionRecord::RecvFromAddress; sub.type = TransactionRecord::RecvWithAddress;
BOOST_FOREACH(const CTxOut& txout, wtx.vout) BOOST_FOREACH(const CTxOut& txout, wtx.vout)
{ {
if (txout.IsMine()) if (txout.IsMine())
@ -176,9 +176,9 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWalletTx
if (txout.IsMine()) if (txout.IsMine())
{ {
// Sent to self // Ignore parts sent to self, as this is usually the change
sub.type = TransactionRecord::SendToSelf; // from a transaction sent back to our own address.
sub.credit = txout.nValue; continue;
} else if (!mapValue["to"].empty()) } else if (!mapValue["to"].empty())
{ {
// Sent to IP // Sent to IP
@ -199,7 +199,7 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWalletTx
nValue += nTxFee; nValue += nTxFee;
nTxFee = 0; nTxFee = 0;
} }
sub.debit = nValue; sub.debit = -nValue;
sub.status.sortKey += strprintf("-%d", nOut); sub.status.sortKey += strprintf("-%d", nOut);
parts.append(sub); parts.append(sub);

28
gui/src/transactiontablemodel.cpp

@ -27,25 +27,17 @@ public:
void refreshWallet() void refreshWallet()
{ {
qDebug() << "refreshWallet"; qDebug() << "refreshWallet";
cachedWallet.clear();
/* Query wallet from core, and compare with our own /* Query entire wallet from core.
representation.
*/ */
cachedWallet.clear();
CRITICAL_BLOCK(cs_mapWallet) CRITICAL_BLOCK(cs_mapWallet)
{ {
for(std::map<uint256, CWalletTx>::iterator it = mapWallet.begin(); it != mapWallet.end(); ++it) for(std::map<uint256, CWalletTx>::iterator it = mapWallet.begin(); it != mapWallet.end(); ++it)
{ {
/* TODO: Make note of new and removed transactions */
/* insertedIndices */
/* removedIndices */
cachedWallet.append(TransactionRecord::decomposeTransaction(it->second)); cachedWallet.append(TransactionRecord::decomposeTransaction(it->second));
} }
} }
/* beginInsertRows(QModelIndex(), first, last) */
/* endInsertRows */
/* beginRemoveRows(QModelIndex(), first, last) */
/* beginEndRows */
} }
/* Update our model of the wallet. /* Update our model of the wallet.
@ -64,6 +56,10 @@ public:
{ {
qDebug() << " " << QString::fromStdString(hash.ToString()); qDebug() << " " << QString::fromStdString(hash.ToString());
} }
/* beginInsertRows(QModelIndex(), first, last) */
/* endInsertRows */
/* beginRemoveRows(QModelIndex(), first, last) */
/* beginEndRows */
refreshWallet(); refreshWallet();
} }
@ -218,17 +214,17 @@ QVariant TransactionTableModel::formatTxDescription(const TransactionRecord *wtx
switch(wtx->type) switch(wtx->type)
{ {
case TransactionRecord::RecvFromAddress: case TransactionRecord::RecvWithAddress:
description = tr("From: ") + QString::fromStdString(lookupAddress(wtx->address)); description = tr("Received with: ") + QString::fromStdString(lookupAddress(wtx->address));
break; break;
case TransactionRecord::RecvFromIP: case TransactionRecord::RecvFromIP:
description = tr("From IP: ") + QString::fromStdString(wtx->address); description = tr("Received from IP: ") + QString::fromStdString(wtx->address);
break; break;
case TransactionRecord::SendToAddress: case TransactionRecord::SendToAddress:
description = tr("To: ") + QString::fromStdString(lookupAddress(wtx->address)); description = tr("Sent to: ") + QString::fromStdString(lookupAddress(wtx->address));
break; break;
case TransactionRecord::SendToIP: case TransactionRecord::SendToIP:
description = tr("To IP: ") + QString::fromStdString(wtx->address); description = tr("Sent to IP: ") + QString::fromStdString(wtx->address);
break; break;
case TransactionRecord::SendToSelf: case TransactionRecord::SendToSelf:
description = tr("Payment to yourself"); description = tr("Payment to yourself");
@ -340,7 +336,7 @@ QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
/* Role for filtering tabs by type */ /* Role for filtering tabs by type */
switch(rec->type) switch(rec->type)
{ {
case TransactionRecord::RecvFromAddress: case TransactionRecord::RecvWithAddress:
case TransactionRecord::RecvFromIP: case TransactionRecord::RecvFromIP:
return TransactionTableModel::Received; return TransactionTableModel::Received;
case TransactionRecord::SendToAddress: case TransactionRecord::SendToAddress:

Loading…
Cancel
Save