@@ -161,15 +161,21 @@ void OverviewPage::setBalance(const interfaces::WalletBalances& balances)
161161{
162162 int unit = walletModel->getOptionsModel ()->getDisplayUnit ();
163163 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+ }
173179 // only show immature (newly mined) balance if it's non-zero, so as not to complicate things
174180 // for the non-mining users
175181 bool showImmature = balances.immature_balance != 0 ;
@@ -178,7 +184,7 @@ void OverviewPage::setBalance(const interfaces::WalletBalances& balances)
178184 // for symmetry reasons also show immature label when the watch-only one is shown
179185 ui->labelImmature ->setVisible (showImmature || showWatchOnlyImmature);
180186 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
182188}
183189
184190// show/hide watch-only labels
@@ -231,8 +237,10 @@ void OverviewPage::setWalletModel(WalletModel *model)
231237
232238 connect (model->getOptionsModel (), &OptionsModel::displayUnitChanged, this , &OverviewPage::updateDisplayUnit);
233239
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+ });
236244 }
237245
238246 // update the display unit, to not use the default ("BTC")
0 commit comments