TransactionRecord::decomposeTransaction()
in qt/transactionrecord.cpp
refuses to “break down payees” if !fAllFromMe && !fAllToMe, since it recognises it as a “Mixed debit transaction”.
This is all well and good, but if the transaction is a net gain for the wallet none of that logic runs:
0if (nNet > 0 || wtx.IsCoinBase())
1 // (ignore all that stuff)
The assumption seems to be that if the transaction results in a net gain then none of the inputs could have been ours originally and so can be ignored. Each row in the transaction list shows just the size of the corresponding output and ignores the sum of our contributions to the inputs:
0sub.credit = txout.nValue;
Replacing the:
0if (nNet > 0 || wtx.IsCoinBase())
with just:
0if (wtx.IsCoinBase())
produces a more accurate (if terse) display.