6 #include "ui_overviewpage.h"
18 #include <QAbstractItemDelegate>
21 #define DECORATION_SIZE 54
35 inline void paint(QPainter *painter,
const QStyleOptionViewItem &option,
36 const QModelIndex &index )
const
41 QRect mainRect = option.rect;
45 int halfheight = (mainRect.height() - 2*ypad)/2;
46 QRect amountRect(mainRect.left() + xspace, mainRect.top()+ypad, mainRect.width() - xspace, halfheight);
47 QRect addressRect(mainRect.left() + xspace, mainRect.top()+ypad+halfheight, mainRect.width() - xspace, halfheight);
49 icon.paint(painter, decorationRect);
52 QString address = index.data(Qt::DisplayRole).toString();
55 QVariant value = index.data(Qt::ForegroundRole);
56 QColor foreground = option.palette.color(QPalette::Text);
57 if(value.canConvert<QBrush>())
59 QBrush brush = qvariant_cast<QBrush>(value);
60 foreground = brush.color();
63 painter->setPen(foreground);
65 painter->drawText(addressRect, Qt::AlignLeft|Qt::AlignVCenter, address, &boundingRect);
70 QRect watchonlyRect(boundingRect.right() + 5, mainRect.top()+ypad+halfheight, 16, halfheight);
71 iconWatchonly.paint(painter, watchonlyRect);
84 foreground = option.palette.color(QPalette::Text);
86 painter->setPen(foreground);
90 amountText = QString(
"[") + amountText + QString(
"]");
92 painter->drawText(amountRect, Qt::AlignRight|Qt::AlignVCenter, amountText);
94 painter->setPen(option.palette.color(QPalette::Text));
100 inline QSize
sizeHint(
const QStyleOptionViewItem &option,
const QModelIndex &index)
const
109 #include "overviewpage.moc"
117 currentUnconfirmedBalance(-1),
118 currentImmatureBalance(-1),
119 currentWatchOnlyBalance(-1),
120 currentWatchUnconfBalance(-1),
121 currentWatchImmatureBalance(-1),
128 icon.addPixmap(icon.pixmap(QSize(64,64), QIcon::Normal), QIcon::Disabled);
129 ui->labelTransactionsStatus->setIcon(icon);
130 ui->labelWalletStatus->setIcon(icon);
136 ui->listTransactions->setAttribute(Qt::WA_MacShowFocusRect,
false);
182 bool showImmature = immatureBalance != 0;
183 bool showWatchOnlyImmature = watchImmatureBalance != 0;
186 ui->labelImmature->setVisible(showImmature || showWatchOnlyImmature);
187 ui->labelImmatureText->setVisible(showImmature || showWatchOnlyImmature);
188 ui->labelWatchImmature->setVisible(showWatchOnlyImmature);
194 ui->labelSpendable->setVisible(showWatchOnly);
195 ui->labelWatchonly->setVisible(showWatchOnly);
196 ui->lineWatchBalance->setVisible(showWatchOnly);
197 ui->labelWatchAvailable->setVisible(showWatchOnly);
198 ui->labelWatchPending->setVisible(showWatchOnly);
199 ui->labelWatchTotal->setVisible(showWatchOnly);
202 ui->labelWatchImmature->hide();
211 connect(model, SIGNAL(alertsChanged(QString)),
this, SLOT(
updateAlerts(QString)));
225 filter->setDynamicSortFilter(
true);
226 filter->setSortRole(Qt::EditRole);
227 filter->setShowInactive(
false);
230 ui->listTransactions->setModel(
filter.get());
236 connect(model, SIGNAL(balanceChanged(
CAmount,
CAmount,
CAmount,
CAmount,
CAmount,
CAmount)),
this, SLOT(
setBalance(
CAmount,
CAmount,
CAmount,
CAmount,
CAmount,
CAmount)));
259 ui->listTransactions->update();
265 this->
ui->labelAlerts->setVisible(!warnings.isEmpty());
266 this->
ui->labelAlerts->setText(warnings);
271 ui->labelWalletStatus->setVisible(fShow);
272 ui->labelTransactionsStatus->setVisible(fShow);
int64_t CAmount
Amount in satoshis (Can be negative)
Bitcoin unit definitions.
static QString formatWithUnit(int unit, const CAmount &amount, bool plussign=false, SeparatorStyle separators=separatorStandard)
Format as string (with unit)
Model for Bitcoin network client.
QString getStatusBarWarnings() const
Return warnings to be displayed in status bar.
Overview ("home") page widget.
CAmount currentImmatureBalance
CAmount currentWatchOnlyBalance
void setWalletModel(WalletModel *walletModel)
CAmount currentWatchUnconfBalance
void updateAlerts(const QString &warnings)
void updateWatchOnlyLabels(bool showWatchOnly)
void setClientModel(ClientModel *clientModel)
WalletModel * walletModel
CAmount currentWatchImmatureBalance
void handleTransactionClicked(const QModelIndex &index)
void transactionClicked(const QModelIndex &index)
OverviewPage(const PlatformStyle *platformStyle, QWidget *parent=0)
CAmount currentUnconfirmedBalance
void handleOutOfSyncWarningClicks()
std::unique_ptr< TransactionFilterProxy > filter
void outOfSyncWarningClicked()
void showOutOfSyncWarning(bool fShow)
ClientModel * clientModel
void setBalance(const CAmount &balance, const CAmount &unconfirmedBalance, const CAmount &immatureBalance, const CAmount &watchOnlyBalance, const CAmount &watchUnconfBalance, const CAmount &watchImmatureBalance)
TxViewDelegate * txdelegate
Filter the transaction list according to pre-specified rules.
@ DateRole
Date and time this transaction was created.
@ RawDecorationRole
Unprocessed icon.
@ WatchonlyDecorationRole
Watch-only icon.
@ WatchonlyRole
Watch-only boolean.
@ AmountRole
Net amount of transaction.
@ ConfirmedRole
Is transaction confirmed?
TxViewDelegate(const PlatformStyle *_platformStyle, QObject *parent=nullptr)
const PlatformStyle * platformStyle
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
Interface to Bitcoin wallet from Qt view code.
CAmount getBalance(const CCoinControl *coinControl=NULL) const
CAmount getUnconfirmedBalance() const
CAmount getWatchUnconfirmedBalance() const
CAmount getWatchBalance() const
OptionsModel * getOptionsModel()
CAmount getWatchImmatureBalance() const
bool haveWatchOnly() const
CAmount getImmatureBalance() const
TransactionTableModel * getTransactionTableModel()
#define COLOR_UNCONFIRMED
QString dateTimeStr(const QDateTime &date)