2 #include "ui_overviewpage.h"
13 #include <QAbstractItemDelegate>
16 #define DECORATION_SIZE 64
28 inline void paint(QPainter *painter,
const QStyleOptionViewItem &option,
29 const QModelIndex &index )
const
33 QIcon icon = qvariant_cast<QIcon>(index.data(Qt::DecorationRole));
34 QRect mainRect = option.rect;
38 int halfheight = (mainRect.height() - 2*ypad)/2;
39 QRect amountRect(mainRect.left() + xspace, mainRect.top()+ypad, mainRect.width() - xspace, halfheight);
40 QRect addressRect(mainRect.left() + xspace, mainRect.top()+ypad+halfheight, mainRect.width() - xspace, halfheight);
41 icon.paint(painter, decorationRect);
44 QString address = index.data(Qt::DisplayRole).toString();
47 QVariant
value = index.data(Qt::ForegroundRole);
48 QColor foreground = option.palette.color(QPalette::Text);
49 if(value.canConvert<QBrush>())
51 QBrush brush = qvariant_cast<QBrush>(
value);
52 foreground = brush.color();
55 painter->setPen(foreground);
56 painter->drawText(addressRect, Qt::AlignLeft|Qt::AlignVCenter, address);
68 foreground = option.palette.color(QPalette::Text);
70 painter->setPen(foreground);
74 amountText = QString(
"[") + amountText + QString(
"]");
76 painter->drawText(amountRect, Qt::AlignRight|Qt::AlignVCenter, amountText);
78 painter->setPen(option.palette.color(QPalette::Text));
84 inline QSize
sizeHint(
const QStyleOptionViewItem &option,
const QModelIndex &index)
const
92 #include "overviewpage.moc"
100 currentUnconfirmedBalance(-1),
101 currentImmatureBalance(-1),
111 ui->listTransactions->setAttribute(Qt::WA_MacShowFocusRect,
false);
116 ui->labelWalletStatus->setText(
"(" + tr(
"out of sync") +
")");
117 ui->labelTransactionsStatus->setText(
"(" + tr(
"out of sync") +
")");
146 bool showImmature = immatureBalance != 0;
147 ui->labelImmature->setVisible(showImmature);
148 ui->labelImmatureText->setVisible(showImmature);
157 connect(model, SIGNAL(alertsChanged(QString)),
this, SLOT(
updateAlerts(QString)));
171 filter->setDynamicSortFilter(
true);
172 filter->setSortRole(Qt::EditRole);
175 ui->listTransactions->setModel(
filter);
180 connect(model, SIGNAL(balanceChanged(qint64, qint64, qint64)),
this, SLOT(
setBalance(qint64, qint64, qint64)));
199 ui->listTransactions->update();
205 this->
ui->labelAlerts->setVisible(!warnings.isEmpty());
206 this->
ui->labelAlerts->setText(warnings);
211 ui->labelWalletStatus->setVisible(fShow);
212 ui->labelTransactionsStatus->setVisible(fShow);
void setWalletModel(WalletModel *walletModel)
Bitcoin unit definitions.
void updateAlerts(const QString &warnings)
static QString formatWithUnit(int unit, qint64 amount, bool plussign=false)
Format as string (with unit)
qint64 getImmatureBalance() const
void handleTransactionClicked(const QModelIndex &index)
QString dateTimeStr(const QDateTime &date)
TransactionFilterProxy * filter
qint64 currentUnconfirmedBalance
TxViewDelegate * txdelegate
WalletModel * walletModel
QString getStatusBarWarnings() const
Return warnings to be displayed in status bar.
qint64 getUnconfirmedBalance() const
Is transaction confirmed?
qint64 currentImmatureBalance
Date and time this transaction was created.
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
TransactionTableModel * getTransactionTableModel()
#define COLOR_UNCONFIRMED
Model for Bitcoin network client.
ClientModel * clientModel
void transactionClicked(const QModelIndex &index)
void setLimit(int limit)
Set maximum number of rows returned, -1 if unlimited.
void showOutOfSyncWarning(bool fShow)
Net amount of transaction.
OverviewPage(QWidget *parent=0)
Filter the transaction list according to pre-specified rules.
Interface to Bitcoin wallet from Qt view code.
qint64 getBalance(const CCoinControl *coinControl=NULL) const
void setClientModel(ClientModel *clientModel)
void setBalance(qint64 balance, qint64 unconfirmedBalance, qint64 immatureBalance)
Overview ("home") page widget.
OptionsModel * getOptionsModel()
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const