@@ -161,15 +161,21 @@ void OverviewPage::setBalance(const interfaces::WalletBalances& balances)
161
161
{
162
162
int unit = walletModel->getOptionsModel ()->getDisplayUnit ();
163
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));
172
-
164
+ if (walletModel->privateKeysDisabled ()) {
165
+ ui->labelBalance ->setText (BitcoinUnits::formatWithUnit (unit, balances.watch_only_balance , false , BitcoinUnits::separatorAlways));
166
+ ui->labelUnconfirmed ->setText (BitcoinUnits::formatWithUnit (unit, balances.unconfirmed_watch_only_balance , false , BitcoinUnits::separatorAlways));
167
+ ui->labelImmature ->setText (BitcoinUnits::formatWithUnit (unit, balances.immature_watch_only_balance , false , BitcoinUnits::separatorAlways));
168
+ ui->labelTotal ->setText (BitcoinUnits::formatWithUnit (unit, balances.watch_only_balance + balances.unconfirmed_watch_only_balance + balances.immature_watch_only_balance , false , BitcoinUnits::separatorAlways));
169
+ } else {
170
+ ui->labelBalance ->setText (BitcoinUnits::formatWithUnit (unit, balances.balance , false , BitcoinUnits::separatorAlways));
171
+ ui->labelUnconfirmed ->setText (BitcoinUnits::formatWithUnit (unit, balances.unconfirmed_balance , false , BitcoinUnits::separatorAlways));
172
+ ui->labelImmature ->setText (BitcoinUnits::formatWithUnit (unit, balances.immature_balance , false , BitcoinUnits::separatorAlways));
173
+ ui->labelTotal ->setText (BitcoinUnits::formatWithUnit (unit, balances.balance + balances.unconfirmed_balance + balances.immature_balance , false , BitcoinUnits::separatorAlways));
174
+ ui->labelWatchAvailable ->setText (BitcoinUnits::formatWithUnit (unit, balances.watch_only_balance , false , BitcoinUnits::separatorAlways));
175
+ ui->labelWatchPending ->setText (BitcoinUnits::formatWithUnit (unit, balances.unconfirmed_watch_only_balance , false , BitcoinUnits::separatorAlways));
176
+ ui->labelWatchImmature ->setText (BitcoinUnits::formatWithUnit (unit, balances.immature_watch_only_balance , false , BitcoinUnits::separatorAlways));
177
+ ui->labelWatchTotal ->setText (BitcoinUnits::formatWithUnit (unit, balances.watch_only_balance + balances.unconfirmed_watch_only_balance + balances.immature_watch_only_balance , false , BitcoinUnits::separatorAlways));
178
+ }
173
179
// only show immature (newly mined) balance if it's non-zero, so as not to complicate things
174
180
// for the non-mining users
175
181
bool showImmature = balances.immature_balance != 0 ;
@@ -178,7 +184,7 @@ void OverviewPage::setBalance(const interfaces::WalletBalances& balances)
178
184
// for symmetry reasons also show immature label when the watch-only one is shown
179
185
ui->labelImmature ->setVisible (showImmature || showWatchOnlyImmature);
180
186
ui->labelImmatureText ->setVisible (showImmature || showWatchOnlyImmature);
181
- ui->labelWatchImmature ->setVisible (showWatchOnlyImmature); // show watch-only immature balance
187
+ ui->labelWatchImmature ->setVisible (!walletModel-> privateKeysDisabled () && showWatchOnlyImmature); // show watch-only immature balance
182
188
}
183
189
184
190
// show/hide watch-only labels
@@ -231,8 +237,10 @@ void OverviewPage::setWalletModel(WalletModel *model)
231
237
232
238
connect (model->getOptionsModel (), &OptionsModel::displayUnitChanged, this , &OverviewPage::updateDisplayUnit);
233
239
234
- updateWatchOnlyLabels (wallet.haveWatchOnly ());
235
- connect (model, &WalletModel::notifyWatchonlyChanged, this , &OverviewPage::updateWatchOnlyLabels);
240
+ updateWatchOnlyLabels (wallet.haveWatchOnly () && !model->privateKeysDisabled ());
241
+ connect (model, &WalletModel::notifyWatchonlyChanged, [this ](bool showWatchOnly) {
242
+ updateWatchOnlyLabels (showWatchOnly && !walletModel->privateKeysDisabled ());
243
+ });
236
244
}
237
245
238
246
// update the display unit, to not use the default ("BTC")
0 commit comments