From 249300aebe682dc1a7398794b14f0d6ebde0aee7 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 13 Jun 2011 09:05:48 +0200 Subject: [PATCH] Status column reorganization --- src/qt/bitcoingui.cpp | 2 +- src/qt/transactiontablemodel.cpp | 40 ++++++++++++++++++++++++++++---- src/qt/transactiontablemodel.h | 1 + 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index c08476cec..3a24c76ab 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -261,7 +261,7 @@ void BitcoinGUI::setTabsModel(QAbstractItemModel *transaction_model) transaction_table->verticalHeader()->hide(); transaction_table->horizontalHeader()->resizeSection( - TransactionTableModel::Status, 120); + TransactionTableModel::Status, 145); transaction_table->horizontalHeader()->resizeSection( TransactionTableModel::Date, 120); transaction_table->horizontalHeader()->setResizeMode( diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp index ddfebff3f..64d99a5bc 100644 --- a/src/qt/transactiontablemodel.cpp +++ b/src/qt/transactiontablemodel.cpp @@ -274,13 +274,13 @@ QVariant TransactionTableModel::formatTxStatus(const TransactionRecord *wtx) con status = tr("Open until ") + GUIUtil::DateTimeStr(wtx->status.open_for); break; case TransactionStatus::Offline: - status = tr("%1/offline").arg(wtx->status.depth); + status = tr("Offline (%1)").arg(wtx->status.depth); break; case TransactionStatus::Unconfirmed: - status = tr("%1/unconfirmed").arg(wtx->status.depth); + status = tr("Unconfirmed (%1)").arg(wtx->status.depth); break; case TransactionStatus::HaveConfirmations: - status = tr("%1 confirmations").arg(wtx->status.depth); + status = tr("Confirmed (%1)").arg(wtx->status.depth); break; } @@ -400,13 +400,45 @@ QVariant TransactionTableModel::formatTxCredit(const TransactionRecord *wtx) con } } +QVariant TransactionTableModel::formatTxDecoration(const TransactionRecord *wtx) const +{ + switch(wtx->status.status) + { + case TransactionStatus::OpenUntilBlock: + case TransactionStatus::OpenUntilDate: + return QColor(64,64,255); + break; + case TransactionStatus::Offline: + return QColor(192,192,192); + case TransactionStatus::Unconfirmed: + if(wtx->status.depth) + { + return QColor(255,0,0); + } + else + { + return QColor(192,192,192); + } + case TransactionStatus::HaveConfirmations: + return QColor(0,255,0); + } + return QColor(0,0,0); +} + QVariant TransactionTableModel::data(const QModelIndex &index, int role) const { if(!index.isValid()) return QVariant(); TransactionRecord *rec = static_cast(index.internalPointer()); - if(role == Qt::DisplayRole) + if(role == Qt::DecorationRole) + { + if(index.column() == Status) + { + return formatTxDecoration(rec); + } + } + else if(role == Qt::DisplayRole) { /* Delegate to specific column handlers */ switch(index.column()) diff --git a/src/qt/transactiontablemodel.h b/src/qt/transactiontablemodel.h index 5974c0e7f..804f004e3 100644 --- a/src/qt/transactiontablemodel.h +++ b/src/qt/transactiontablemodel.h @@ -47,6 +47,7 @@ private: QVariant formatTxDescription(const TransactionRecord *wtx) const; QVariant formatTxDebit(const TransactionRecord *wtx) const; QVariant formatTxCredit(const TransactionRecord *wtx) const; + QVariant formatTxDecoration(const TransactionRecord *wtx) const; private slots: void update();