21
21
#define DECORATION_SIZE 54
22
22
#define NUM_ITEMS 5
23
23
24
+ Q_DECLARE_METATYPE (interface::WalletBalances)
25
+
24
26
class TxViewDelegate : public QAbstractItemDelegate
25
27
{
26
28
Q_OBJECT
@@ -113,16 +115,12 @@ OverviewPage::OverviewPage(const PlatformStyle *platformStyle, QWidget *parent)
113
115
ui(new Ui::OverviewPage),
114
116
clientModel(0 ),
115
117
walletModel(0 ),
116
- currentBalance(-1 ),
117
- currentUnconfirmedBalance(-1 ),
118
- currentImmatureBalance(-1 ),
119
- currentWatchOnlyBalance(-1 ),
120
- currentWatchUnconfBalance(-1 ),
121
- currentWatchImmatureBalance(-1 ),
122
118
txdelegate(new TxViewDelegate(platformStyle, this ))
123
119
{
124
120
ui->setupUi (this );
125
121
122
+ m_balances.balance = -1 ;
123
+
126
124
// use a SingleColorIcon for the "out of sync warning" icon
127
125
QIcon icon = platformStyle->SingleColorIcon (" :/icons/warning" );
128
126
icon.addPixmap (icon.pixmap (QSize (64 ,64 ), QIcon::Normal), QIcon::Disabled); // also set the disabled icon because we are using a disabled QPushButton to work around missing HiDPI support of QLabel (https://bugreports.qt.io/browse/QTBUG-42503)
@@ -159,28 +157,23 @@ OverviewPage::~OverviewPage()
159
157
delete ui;
160
158
}
161
159
162
- void OverviewPage::setBalance (const CAmount& balance, const CAmount& unconfirmedBalance, const CAmount& immatureBalance, const CAmount& watchOnlyBalance, const CAmount& watchUnconfBalance, const CAmount& watchImmatureBalance )
160
+ void OverviewPage::setBalance (const interface::WalletBalances& balances )
163
161
{
164
162
int unit = walletModel->getOptionsModel ()->getDisplayUnit ();
165
- currentBalance = balance;
166
- currentUnconfirmedBalance = unconfirmedBalance;
167
- currentImmatureBalance = immatureBalance;
168
- currentWatchOnlyBalance = watchOnlyBalance;
169
- currentWatchUnconfBalance = watchUnconfBalance;
170
- currentWatchImmatureBalance = watchImmatureBalance;
171
- ui->labelBalance ->setText (BitcoinUnits::formatWithUnit (unit, balance, false , BitcoinUnits::separatorAlways));
172
- ui->labelUnconfirmed ->setText (BitcoinUnits::formatWithUnit (unit, unconfirmedBalance, false , BitcoinUnits::separatorAlways));
173
- ui->labelImmature ->setText (BitcoinUnits::formatWithUnit (unit, immatureBalance, false , BitcoinUnits::separatorAlways));
174
- ui->labelTotal ->setText (BitcoinUnits::formatWithUnit (unit, balance + unconfirmedBalance + immatureBalance, false , BitcoinUnits::separatorAlways));
175
- ui->labelWatchAvailable ->setText (BitcoinUnits::formatWithUnit (unit, watchOnlyBalance, false , BitcoinUnits::separatorAlways));
176
- ui->labelWatchPending ->setText (BitcoinUnits::formatWithUnit (unit, watchUnconfBalance, false , BitcoinUnits::separatorAlways));
177
- ui->labelWatchImmature ->setText (BitcoinUnits::formatWithUnit (unit, watchImmatureBalance, false , BitcoinUnits::separatorAlways));
178
- ui->labelWatchTotal ->setText (BitcoinUnits::formatWithUnit (unit, watchOnlyBalance + watchUnconfBalance + watchImmatureBalance, false , BitcoinUnits::separatorAlways));
163
+ m_balances = balances;
164
+ ui->labelBalance ->setText (BitcoinUnits::formatWithUnit (unit, balances.balance , false , BitcoinUnits::separatorAlways));
165
+ ui->labelUnconfirmed ->setText (BitcoinUnits::formatWithUnit (unit, balances.unconfirmed_balance , false , BitcoinUnits::separatorAlways));
166
+ ui->labelImmature ->setText (BitcoinUnits::formatWithUnit (unit, balances.immature_balance , false , BitcoinUnits::separatorAlways));
167
+ ui->labelTotal ->setText (BitcoinUnits::formatWithUnit (unit, balances.balance + balances.unconfirmed_balance + balances.immature_balance , false , BitcoinUnits::separatorAlways));
168
+ ui->labelWatchAvailable ->setText (BitcoinUnits::formatWithUnit (unit, balances.watch_only_balance , false , BitcoinUnits::separatorAlways));
169
+ ui->labelWatchPending ->setText (BitcoinUnits::formatWithUnit (unit, balances.unconfirmed_watch_only_balance , false , BitcoinUnits::separatorAlways));
170
+ ui->labelWatchImmature ->setText (BitcoinUnits::formatWithUnit (unit, balances.immature_watch_only_balance , false , BitcoinUnits::separatorAlways));
171
+ ui->labelWatchTotal ->setText (BitcoinUnits::formatWithUnit (unit, balances.watch_only_balance + balances.unconfirmed_watch_only_balance + balances.immature_watch_only_balance , false , BitcoinUnits::separatorAlways));
179
172
180
173
// only show immature (newly mined) balance if it's non-zero, so as not to complicate things
181
174
// for the non-mining users
182
- bool showImmature = immatureBalance != 0 ;
183
- bool showWatchOnlyImmature = watchImmatureBalance != 0 ;
175
+ bool showImmature = balances. immature_balance != 0 ;
176
+ bool showWatchOnlyImmature = balances. immature_watch_only_balance != 0 ;
184
177
185
178
// for symmetry reasons also show immature label when the watch-only one is shown
186
179
ui->labelImmature ->setVisible (showImmature || showWatchOnlyImmature);
@@ -233,9 +226,8 @@ void OverviewPage::setWalletModel(WalletModel *model)
233
226
// Keep up to date with wallet
234
227
interface::Wallet& wallet = model->wallet ();
235
228
interface::WalletBalances balances = wallet.getBalances ();
236
- setBalance (balances.balance , balances.unconfirmed_balance , balances.immature_balance ,
237
- balances.watch_only_balance , balances.unconfirmed_watch_only_balance , balances.immature_watch_only_balance );
238
- connect (model, SIGNAL (balanceChanged (CAmount,CAmount,CAmount,CAmount,CAmount,CAmount)), this , SLOT (setBalance (CAmount,CAmount,CAmount,CAmount,CAmount,CAmount)));
229
+ setBalance (balances);
230
+ connect (model, SIGNAL (balanceChanged (interface::WalletBalances)), this , SLOT (setBalance (interface::WalletBalances)));
239
231
240
232
connect (model->getOptionsModel (), SIGNAL (displayUnitChanged (int )), this , SLOT (updateDisplayUnit ()));
241
233
@@ -251,9 +243,9 @@ void OverviewPage::updateDisplayUnit()
251
243
{
252
244
if (walletModel && walletModel->getOptionsModel ())
253
245
{
254
- if (currentBalance != -1 )
255
- setBalance (currentBalance, currentUnconfirmedBalance, currentImmatureBalance,
256
- currentWatchOnlyBalance, currentWatchUnconfBalance, currentWatchImmatureBalance);
246
+ if (m_balances. balance != -1 ) {
247
+ setBalance (m_balances);
248
+ }
257
249
258
250
// Update txdelegate->unit with the current unit
259
251
txdelegate->unit = walletModel->getOptionsModel ()->getDisplayUnit ();
0 commit comments