qt: Modernize 'confirmed' terminology in shown tx status
These days we regard transactions with one confirmation to be 'Confirmed'. Waiting for 6 confirmations is a recommendation but should not keep the transaction shown as unconfirmed. Misc code sanity: - Merge maturity/status enums, they had become completely disjunct - 'confirmed' flag is now called 'countsForBalance' for clarity
This commit is contained in:
@@ -285,45 +285,38 @@ QString TransactionTableModel::formatTxStatus(const TransactionRecord *wtx) cons
|
||||
{
|
||||
QString status;
|
||||
|
||||
if(wtx->type == TransactionRecord::Generated)
|
||||
switch(wtx->status.status)
|
||||
{
|
||||
switch(wtx->status.maturity)
|
||||
{
|
||||
case TransactionStatus::Immature:
|
||||
status = tr("Immature (%1 confirmations, will be available after %2)").arg(wtx->status.depth).arg(wtx->status.depth + wtx->status.matures_in);
|
||||
break;
|
||||
case TransactionStatus::Mature:
|
||||
status = tr("Confirmed (%1 confirmations)").arg(wtx->status.depth);
|
||||
break;
|
||||
case TransactionStatus::MaturesWarning:
|
||||
status = tr("This block was not received by any other nodes and will probably not be accepted!");
|
||||
break;
|
||||
case TransactionStatus::NotAccepted:
|
||||
status = tr("Generated but not accepted");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch(wtx->status.status)
|
||||
{
|
||||
case TransactionStatus::OpenUntilBlock:
|
||||
status = tr("Open for %n more block(s)","",wtx->status.open_for);
|
||||
break;
|
||||
case TransactionStatus::OpenUntilDate:
|
||||
status = tr("Open until %1").arg(GUIUtil::dateTimeStr(wtx->status.open_for));
|
||||
break;
|
||||
case TransactionStatus::Offline:
|
||||
status = tr("Offline");
|
||||
break;
|
||||
case TransactionStatus::Unconfirmed:
|
||||
status = tr("Unconfirmed (%1 of %2 confirmations)").arg(wtx->status.depth).arg(TransactionRecord::NumConfirmations);
|
||||
break;
|
||||
case TransactionStatus::HaveConfirmations:
|
||||
status = tr("Confirmed (%1 confirmations)").arg(wtx->status.depth);
|
||||
break;
|
||||
case TransactionStatus::Conflicted:
|
||||
status = tr("Conflicted");
|
||||
break;
|
||||
}
|
||||
case TransactionStatus::OpenUntilBlock:
|
||||
status = tr("Open for %n more block(s)","",wtx->status.open_for);
|
||||
break;
|
||||
case TransactionStatus::OpenUntilDate:
|
||||
status = tr("Open until %1").arg(GUIUtil::dateTimeStr(wtx->status.open_for));
|
||||
break;
|
||||
case TransactionStatus::Offline:
|
||||
status = tr("Offline");
|
||||
break;
|
||||
case TransactionStatus::Unconfirmed:
|
||||
status = tr("Unconfirmed");
|
||||
break;
|
||||
case TransactionStatus::Confirming:
|
||||
status = tr("Confirming (%1 of %2 recommended confirmations)").arg(wtx->status.depth).arg(TransactionRecord::RecommendedNumConfirmations);
|
||||
break;
|
||||
case TransactionStatus::Confirmed:
|
||||
status = tr("Confirmed (%1 confirmations)").arg(wtx->status.depth);
|
||||
break;
|
||||
case TransactionStatus::Conflicted:
|
||||
status = tr("Conflicted");
|
||||
break;
|
||||
case TransactionStatus::Immature:
|
||||
status = tr("Immature (%1 confirmations, will be available after %2)").arg(wtx->status.depth).arg(wtx->status.depth + wtx->status.matures_in);
|
||||
break;
|
||||
case TransactionStatus::MaturesWarning:
|
||||
status = tr("This block was not received by any other nodes and will probably not be accepted!");
|
||||
break;
|
||||
case TransactionStatus::NotAccepted:
|
||||
status = tr("Generated but not accepted");
|
||||
break;
|
||||
}
|
||||
|
||||
return status;
|
||||
@@ -441,7 +434,7 @@ QString TransactionTableModel::formatTxAmount(const TransactionRecord *wtx, bool
|
||||
QString str = BitcoinUnits::format(walletModel->getOptionsModel()->getDisplayUnit(), wtx->credit + wtx->debit);
|
||||
if(showUnconfirmed)
|
||||
{
|
||||
if(!wtx->status.confirmed || wtx->status.maturity != TransactionStatus::Mature)
|
||||
if(!wtx->status.countsForBalance)
|
||||
{
|
||||
str = QString("[") + str + QString("]");
|
||||
}
|
||||
@@ -451,46 +444,36 @@ QString TransactionTableModel::formatTxAmount(const TransactionRecord *wtx, bool
|
||||
|
||||
QVariant TransactionTableModel::txStatusDecoration(const TransactionRecord *wtx) const
|
||||
{
|
||||
if(wtx->type == TransactionRecord::Generated)
|
||||
switch(wtx->status.status)
|
||||
{
|
||||
switch(wtx->status.maturity)
|
||||
case TransactionStatus::OpenUntilBlock:
|
||||
case TransactionStatus::OpenUntilDate:
|
||||
return QColor(64,64,255);
|
||||
case TransactionStatus::Offline:
|
||||
return QColor(192,192,192);
|
||||
case TransactionStatus::Unconfirmed:
|
||||
return QIcon(":/icons/transaction_0");
|
||||
case TransactionStatus::Confirming:
|
||||
switch(wtx->status.depth)
|
||||
{
|
||||
case TransactionStatus::Immature: {
|
||||
int total = wtx->status.depth + wtx->status.matures_in;
|
||||
int part = (wtx->status.depth * 4 / total) + 1;
|
||||
return QIcon(QString(":/icons/transaction_%1").arg(part));
|
||||
}
|
||||
case TransactionStatus::Mature:
|
||||
return QIcon(":/icons/transaction_confirmed");
|
||||
case TransactionStatus::MaturesWarning:
|
||||
case TransactionStatus::NotAccepted:
|
||||
return QIcon(":/icons/transaction_0");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(wtx->status.status)
|
||||
{
|
||||
case TransactionStatus::OpenUntilBlock:
|
||||
case TransactionStatus::OpenUntilDate:
|
||||
return QColor(64,64,255);
|
||||
case TransactionStatus::Offline:
|
||||
return QColor(192,192,192);
|
||||
case TransactionStatus::Unconfirmed:
|
||||
switch(wtx->status.depth)
|
||||
{
|
||||
case 0: return QIcon(":/icons/transaction_0");
|
||||
case 1: return QIcon(":/icons/transaction_1");
|
||||
case 2: return QIcon(":/icons/transaction_2");
|
||||
case 3: return QIcon(":/icons/transaction_3");
|
||||
case 4: return QIcon(":/icons/transaction_4");
|
||||
default: return QIcon(":/icons/transaction_5");
|
||||
};
|
||||
case TransactionStatus::HaveConfirmations:
|
||||
return QIcon(":/icons/transaction_confirmed");
|
||||
case TransactionStatus::Conflicted:
|
||||
return QIcon(":/icons/transaction_conflicted");
|
||||
case 1: return QIcon(":/icons/transaction_1");
|
||||
case 2: return QIcon(":/icons/transaction_2");
|
||||
case 3: return QIcon(":/icons/transaction_3");
|
||||
case 4: return QIcon(":/icons/transaction_4");
|
||||
default: return QIcon(":/icons/transaction_5");
|
||||
};
|
||||
case TransactionStatus::Confirmed:
|
||||
return QIcon(":/icons/transaction_confirmed");
|
||||
case TransactionStatus::Conflicted:
|
||||
return QIcon(":/icons/transaction_conflicted");
|
||||
case TransactionStatus::Immature: {
|
||||
int total = wtx->status.depth + wtx->status.matures_in;
|
||||
int part = (wtx->status.depth * 4 / total) + 1;
|
||||
return QIcon(QString(":/icons/transaction_%1").arg(part));
|
||||
}
|
||||
case TransactionStatus::MaturesWarning:
|
||||
case TransactionStatus::NotAccepted:
|
||||
return QIcon(":/icons/transaction_0");
|
||||
}
|
||||
return QColor(0,0,0);
|
||||
}
|
||||
@@ -557,8 +540,8 @@ QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
|
||||
case Qt::TextAlignmentRole:
|
||||
return column_alignments[index.column()];
|
||||
case Qt::ForegroundRole:
|
||||
// Non-confirmed transactions are grey
|
||||
if(!rec->status.confirmed)
|
||||
// Non-confirmed (but not immature) as transactions are grey
|
||||
if(!rec->status.countsForBalance && rec->status.status != TransactionStatus::Immature)
|
||||
{
|
||||
return COLOR_UNCONFIRMED;
|
||||
}
|
||||
@@ -586,9 +569,7 @@ QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
|
||||
case TxIDRole:
|
||||
return rec->getTxID();
|
||||
case ConfirmedRole:
|
||||
// Return True if transaction counts for balance
|
||||
return rec->status.confirmed && !(rec->type == TransactionRecord::Generated &&
|
||||
rec->status.maturity != TransactionStatus::Mature);
|
||||
return rec->status.countsForBalance;
|
||||
case FormattedAmountRole:
|
||||
return formatTxAmount(rec, false);
|
||||
case StatusRole:
|
||||
|
||||
Reference in New Issue
Block a user