Page MenuHomePhabricator

D2899.diff
No OneTemporary

D2899.diff

diff --git a/src/qt/overviewpage.h b/src/qt/overviewpage.h
--- a/src/qt/overviewpage.h
+++ b/src/qt/overviewpage.h
@@ -5,7 +5,7 @@
#ifndef BITCOIN_QT_OVERVIEWPAGE_H
#define BITCOIN_QT_OVERVIEWPAGE_H
-#include "amount.h"
+#include <interfaces/wallet.h>
#include <QWidget>
#include <memory>
@@ -38,10 +38,7 @@
void showOutOfSyncWarning(bool fShow);
public Q_SLOTS:
- void setBalance(const Amount balance, const Amount unconfirmedBalance,
- const Amount immatureBalance, const Amount watchOnlyBalance,
- const Amount watchUnconfBalance,
- const Amount watchImmatureBalance);
+ void setBalance(const interfaces::WalletBalances &balances);
Q_SIGNALS:
void transactionClicked(const QModelIndex &index);
@@ -51,12 +48,7 @@
Ui::OverviewPage *ui;
ClientModel *clientModel;
WalletModel *walletModel;
- Amount currentBalance;
- Amount currentUnconfirmedBalance;
- Amount currentImmatureBalance;
- Amount currentWatchOnlyBalance;
- Amount currentWatchUnconfBalance;
- Amount currentWatchImmatureBalance;
+ interfaces::WalletBalances m_balances;
TxViewDelegate *txdelegate;
std::unique_ptr<TransactionFilterProxy> filter;
diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp
--- a/src/qt/overviewpage.cpp
+++ b/src/qt/overviewpage.cpp
@@ -2,18 +2,18 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include "overviewpage.h"
-#include "ui_overviewpage.h"
-
-#include "bitcoinunits.h"
-#include "clientmodel.h"
-#include "guiconstants.h"
-#include "guiutil.h"
-#include "optionsmodel.h"
-#include "platformstyle.h"
-#include "transactionfilterproxy.h"
-#include "transactiontablemodel.h"
-#include "walletmodel.h"
+#include <qt/forms/ui_overviewpage.h>
+#include <qt/overviewpage.h>
+
+#include <qt/bitcoinunits.h>
+#include <qt/clientmodel.h>
+#include <qt/guiconstants.h>
+#include <qt/guiutil.h>
+#include <qt/optionsmodel.h>
+#include <qt/platformstyle.h>
+#include <qt/transactionfilterproxy.h>
+#include <qt/transactiontablemodel.h>
+#include <qt/walletmodel.h>
#include <QAbstractItemDelegate>
#include <QPainter>
@@ -21,6 +21,8 @@
#define DECORATION_SIZE 54
#define NUM_ITEMS 5
+Q_DECLARE_METATYPE(interfaces::WalletBalances)
+
class TxViewDelegate : public QAbstractItemDelegate {
Q_OBJECT
public:
@@ -110,18 +112,15 @@
int unit;
const PlatformStyle *platformStyle;
};
-
-#include "overviewpage.moc"
+#include <qt/overviewpage.moc>
OverviewPage::OverviewPage(const PlatformStyle *platformStyle, QWidget *parent)
: QWidget(parent), ui(new Ui::OverviewPage), clientModel(0), walletModel(0),
- currentBalance(-SATOSHI), currentUnconfirmedBalance(-SATOSHI),
- currentImmatureBalance(-SATOSHI), currentWatchOnlyBalance(-SATOSHI),
- currentWatchUnconfBalance(-SATOSHI),
- currentWatchImmatureBalance(-SATOSHI),
txdelegate(new TxViewDelegate(platformStyle, this)) {
ui->setupUi(this);
+ m_balances.balance = -SATOSHI;
+
// use a SingleColorIcon for the "out of sync warning" icon
QIcon icon = platformStyle->SingleColorIcon(":/icons/warning");
// also set the disabled icon because we are using a disabled QPushButton to
@@ -160,43 +159,41 @@
delete ui;
}
-void OverviewPage::setBalance(const Amount balance,
- const Amount unconfirmedBalance,
- const Amount immatureBalance,
- const Amount watchOnlyBalance,
- const Amount watchUnconfBalance,
- const Amount watchImmatureBalance) {
+void OverviewPage::setBalance(const interfaces::WalletBalances &balances) {
int unit = walletModel->getOptionsModel()->getDisplayUnit();
- currentBalance = balance;
- currentUnconfirmedBalance = unconfirmedBalance;
- currentImmatureBalance = immatureBalance;
- currentWatchOnlyBalance = watchOnlyBalance;
- currentWatchUnconfBalance = watchUnconfBalance;
- currentWatchImmatureBalance = watchImmatureBalance;
+ m_balances = balances;
ui->labelBalance->setText(BitcoinUnits::formatWithUnit(
- unit, balance, false, BitcoinUnits::separatorAlways));
- ui->labelUnconfirmed->setText(BitcoinUnits::formatWithUnit(
- unit, unconfirmedBalance, false, BitcoinUnits::separatorAlways));
+ unit, balances.balance, false, BitcoinUnits::separatorAlways));
+ ui->labelUnconfirmed->setText(
+ BitcoinUnits::formatWithUnit(unit, balances.unconfirmed_balance, false,
+ BitcoinUnits::separatorAlways));
ui->labelImmature->setText(BitcoinUnits::formatWithUnit(
- unit, immatureBalance, false, BitcoinUnits::separatorAlways));
+ unit, balances.immature_balance, false, BitcoinUnits::separatorAlways));
ui->labelTotal->setText(BitcoinUnits::formatWithUnit(
- unit, balance + unconfirmedBalance + immatureBalance, false,
- BitcoinUnits::separatorAlways));
- ui->labelWatchAvailable->setText(BitcoinUnits::formatWithUnit(
- unit, watchOnlyBalance, false, BitcoinUnits::separatorAlways));
+ unit,
+ balances.balance + balances.unconfirmed_balance +
+ balances.immature_balance,
+ false, BitcoinUnits::separatorAlways));
+ ui->labelWatchAvailable->setText(
+ BitcoinUnits::formatWithUnit(unit, balances.watch_only_balance, false,
+ BitcoinUnits::separatorAlways));
ui->labelWatchPending->setText(BitcoinUnits::formatWithUnit(
- unit, watchUnconfBalance, false, BitcoinUnits::separatorAlways));
- ui->labelWatchImmature->setText(BitcoinUnits::formatWithUnit(
- unit, watchImmatureBalance, false, BitcoinUnits::separatorAlways));
+ unit, balances.unconfirmed_watch_only_balance, false,
+ BitcoinUnits::separatorAlways));
+ ui->labelWatchImmature->setText(
+ BitcoinUnits::formatWithUnit(unit, balances.immature_watch_only_balance,
+ false, BitcoinUnits::separatorAlways));
ui->labelWatchTotal->setText(BitcoinUnits::formatWithUnit(
- unit, watchOnlyBalance + watchUnconfBalance + watchImmatureBalance,
+ unit,
+ balances.watch_only_balance + balances.unconfirmed_watch_only_balance +
+ balances.immature_watch_only_balance,
false, BitcoinUnits::separatorAlways));
// only show immature (newly mined) balance if it's non-zero, so as not to
- // complicate things
- // for the non-mining users
- bool showImmature = immatureBalance != Amount::zero();
- bool showWatchOnlyImmature = watchImmatureBalance != Amount::zero();
+ // complicate things for the non-mining users
+ bool showImmature = balances.immature_balance != Amount::zero();
+ bool showWatchOnlyImmature =
+ balances.immature_watch_only_balance != Amount::zero();
// for symmetry reasons also show immature label when the watch-only one is
// shown
@@ -254,16 +251,9 @@
// Keep up to date with wallet
interfaces::Wallet &wallet = model->wallet();
interfaces::WalletBalances balances = wallet.getBalances();
- setBalance(balances.balance, balances.unconfirmed_balance,
- balances.immature_balance, balances.watch_only_balance,
- balances.unconfirmed_watch_only_balance,
- balances.immature_watch_only_balance);
- connect(
- model,
- SIGNAL(
- balanceChanged(Amount, Amount, Amount, Amount, Amount, Amount)),
- this,
- SLOT(setBalance(Amount, Amount, Amount, Amount, Amount, Amount)));
+ setBalance(balances);
+ connect(model, SIGNAL(balanceChanged(interfaces::WalletBalances)), this,
+ SLOT(setBalance(interfaces::WalletBalances)));
connect(model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this,
SLOT(updateDisplayUnit()));
@@ -279,10 +269,8 @@
void OverviewPage::updateDisplayUnit() {
if (walletModel && walletModel->getOptionsModel()) {
- if (currentBalance != -SATOSHI) {
- setBalance(currentBalance, currentUnconfirmedBalance,
- currentImmatureBalance, currentWatchOnlyBalance,
- currentWatchUnconfBalance, currentWatchImmatureBalance);
+ if (m_balances.balance != -SATOSHI) {
+ setBalance(m_balances);
}
// Update txdelegate->unit with the current unit
diff --git a/src/qt/sendcoinsdialog.h b/src/qt/sendcoinsdialog.h
--- a/src/qt/sendcoinsdialog.h
+++ b/src/qt/sendcoinsdialog.h
@@ -5,7 +5,7 @@
#ifndef BITCOIN_QT_SENDCOINSDIALOG_H
#define BITCOIN_QT_SENDCOINSDIALOG_H
-#include "walletmodel.h"
+#include <qt/walletmodel.h>
#include <QDialog>
#include <QMessageBox>
@@ -55,10 +55,7 @@
void accept() override;
SendCoinsEntry *addEntry();
void updateTabsAndLabels();
- void setBalance(const Amount balance, const Amount unconfirmedBalance,
- const Amount immatureBalance, const Amount watchOnlyBalance,
- const Amount watchUnconfBalance,
- const Amount watchImmatureBalance);
+ void setBalance(const interfaces::WalletBalances &balances);
Q_SIGNALS:
void coinsSent(const uint256 &txid);
diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp
--- a/src/qt/sendcoinsdialog.cpp
+++ b/src/qt/sendcoinsdialog.cpp
@@ -165,16 +165,9 @@
}
interfaces::WalletBalances balances = _model->wallet().getBalances();
- setBalance(balances.balance, balances.unconfirmed_balance,
- balances.immature_balance, balances.watch_only_balance,
- balances.unconfirmed_watch_only_balance,
- balances.immature_watch_only_balance);
- connect(
- _model,
- SIGNAL(
- balanceChanged(Amount, Amount, Amount, Amount, Amount, Amount)),
- this,
- SLOT(setBalance(Amount, Amount, Amount, Amount, Amount, Amount)));
+ setBalance(balances);
+ connect(_model, SIGNAL(balanceChanged(interfaces::WalletBalances)),
+ this, SLOT(setBalance(interfaces::WalletBalances)));
connect(_model->getOptionsModel(), SIGNAL(displayUnitChanged(int)),
this, SLOT(updateDisplayUnit()));
updateDisplayUnit();
@@ -529,27 +522,15 @@
return true;
}
-void SendCoinsDialog::setBalance(const Amount balance,
- const Amount unconfirmedBalance,
- const Amount immatureBalance,
- const Amount watchBalance,
- const Amount watchUnconfirmedBalance,
- const Amount watchImmatureBalance) {
- Q_UNUSED(unconfirmedBalance);
- Q_UNUSED(immatureBalance);
- Q_UNUSED(watchBalance);
- Q_UNUSED(watchUnconfirmedBalance);
- Q_UNUSED(watchImmatureBalance);
-
+void SendCoinsDialog::setBalance(const interfaces::WalletBalances &balances) {
if (model && model->getOptionsModel()) {
ui->labelBalance->setText(BitcoinUnits::formatWithUnit(
- model->getOptionsModel()->getDisplayUnit(), balance));
+ model->getOptionsModel()->getDisplayUnit(), balances.balance));
}
}
void SendCoinsDialog::updateDisplayUnit() {
- setBalance(model->wallet().getBalance(), Amount::zero(), Amount::zero(),
- Amount::zero(), Amount::zero(), Amount::zero());
+ setBalance(model->wallet().getBalances());
ui->customFee->setDisplayUnit(model->getOptionsModel()->getDisplayUnit());
updateMinFeeLabel();
updateSmartFeeLabel();
diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h
--- a/src/qt/walletmodel.h
+++ b/src/qt/walletmodel.h
@@ -251,11 +251,7 @@
Q_SIGNALS:
// Signal that balance in wallet changed
- void balanceChanged(const Amount balance, const Amount unconfirmedBalance,
- const Amount immatureBalance,
- const Amount watchOnlyBalance,
- const Amount watchUnconfBalance,
- const Amount watchImmatureBalance);
+ void balanceChanged(const interfaces::WalletBalances &balances);
// Encryption status of wallet changed
void encryptionStatusChanged();
diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp
--- a/src/qt/walletmodel.cpp
+++ b/src/qt/walletmodel.cpp
@@ -87,11 +87,7 @@
const interfaces::WalletBalances &new_balances) {
if (new_balances.balanceChanged(m_cached_balances)) {
m_cached_balances = new_balances;
- Q_EMIT balanceChanged(
- new_balances.balance, new_balances.unconfirmed_balance,
- new_balances.immature_balance, new_balances.watch_only_balance,
- new_balances.unconfirmed_watch_only_balance,
- new_balances.immature_watch_only_balance);
+ Q_EMIT balanceChanged(new_balances);
}
}

File Metadata

Mime Type
text/plain
Expires
Sat, Apr 26, 11:51 (2 h, 30 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5573466
Default Alt Text
D2899.diff (12 KB)

Event Timeline