1616#include < qt/walletmodel.h>
1717
1818#include < QAbstractItemDelegate>
19+ #include < QApplication>
1920#include < QPainter>
21+ #include < QStatusTipEvent>
2022
2123#define DECORATION_SIZE 54
2224#define NUM_ITEMS 5
@@ -152,6 +154,21 @@ void OverviewPage::handleOutOfSyncWarningClicks()
152154 Q_EMIT outOfSyncWarningClicked ();
153155}
154156
157+ void OverviewPage::setPrivacy (bool privacy)
158+ {
159+ m_privacy = privacy;
160+ if (m_balances.balance != -1 ) {
161+ setBalance (m_balances);
162+ }
163+
164+ ui->listTransactions ->setVisible (!m_privacy);
165+
166+ const QString status_tip = m_privacy ? tr (" Privacy mode activated for the Overview tab. To unmask the values, uncheck Settings->Mask values." ) : " " ;
167+ setStatusTip (status_tip);
168+ QStatusTipEvent event (status_tip);
169+ QApplication::sendEvent (this , &event);
170+ }
171+
155172OverviewPage::~OverviewPage ()
156173{
157174 delete ui;
@@ -163,25 +180,25 @@ void OverviewPage::setBalance(const interfaces::WalletBalances& balances)
163180 m_balances = balances;
164181 if (walletModel->wallet ().isLegacy ()) {
165182 if (walletModel->wallet ().privateKeysDisabled ()) {
166- ui->labelBalance ->setText (BitcoinUnits::formatWithUnit (unit, balances.watch_only_balance , false , BitcoinUnits::separatorAlways));
167- ui->labelUnconfirmed ->setText (BitcoinUnits::formatWithUnit (unit, balances.unconfirmed_watch_only_balance , false , BitcoinUnits::separatorAlways));
168- ui->labelImmature ->setText (BitcoinUnits::formatWithUnit (unit, balances.immature_watch_only_balance , false , BitcoinUnits::separatorAlways));
169- ui->labelTotal ->setText (BitcoinUnits::formatWithUnit (unit, balances.watch_only_balance + balances.unconfirmed_watch_only_balance + balances.immature_watch_only_balance , false , BitcoinUnits::separatorAlways));
183+ ui->labelBalance ->setText (BitcoinUnits::formatWithPrivacy (unit, balances.watch_only_balance , BitcoinUnits::separatorAlways, m_privacy ));
184+ ui->labelUnconfirmed ->setText (BitcoinUnits::formatWithPrivacy (unit, balances.unconfirmed_watch_only_balance , BitcoinUnits::separatorAlways, m_privacy ));
185+ ui->labelImmature ->setText (BitcoinUnits::formatWithPrivacy (unit, balances.immature_watch_only_balance , BitcoinUnits::separatorAlways, m_privacy ));
186+ ui->labelTotal ->setText (BitcoinUnits::formatWithPrivacy (unit, balances.watch_only_balance + balances.unconfirmed_watch_only_balance + balances.immature_watch_only_balance , BitcoinUnits::separatorAlways, m_privacy ));
170187 } else {
171- ui->labelBalance ->setText (BitcoinUnits::formatWithUnit (unit, balances.balance , false , BitcoinUnits::separatorAlways));
172- ui->labelUnconfirmed ->setText (BitcoinUnits::formatWithUnit (unit, balances.unconfirmed_balance , false , BitcoinUnits::separatorAlways));
173- ui->labelImmature ->setText (BitcoinUnits::formatWithUnit (unit, balances.immature_balance , false , BitcoinUnits::separatorAlways));
174- ui->labelTotal ->setText (BitcoinUnits::formatWithUnit (unit, balances.balance + balances.unconfirmed_balance + balances.immature_balance , false , BitcoinUnits::separatorAlways));
175- ui->labelWatchAvailable ->setText (BitcoinUnits::formatWithUnit (unit, balances.watch_only_balance , false , BitcoinUnits::separatorAlways));
176- ui->labelWatchPending ->setText (BitcoinUnits::formatWithUnit (unit, balances.unconfirmed_watch_only_balance , false , BitcoinUnits::separatorAlways));
177- ui->labelWatchImmature ->setText (BitcoinUnits::formatWithUnit (unit, balances.immature_watch_only_balance , false , BitcoinUnits::separatorAlways));
178- ui->labelWatchTotal ->setText (BitcoinUnits::formatWithUnit (unit, balances.watch_only_balance + balances.unconfirmed_watch_only_balance + balances.immature_watch_only_balance , false , BitcoinUnits::separatorAlways));
188+ ui->labelBalance ->setText (BitcoinUnits::formatWithPrivacy (unit, balances.balance , BitcoinUnits::separatorAlways, m_privacy ));
189+ ui->labelUnconfirmed ->setText (BitcoinUnits::formatWithPrivacy (unit, balances.unconfirmed_balance , BitcoinUnits::separatorAlways, m_privacy ));
190+ ui->labelImmature ->setText (BitcoinUnits::formatWithPrivacy (unit, balances.immature_balance , BitcoinUnits::separatorAlways, m_privacy ));
191+ ui->labelTotal ->setText (BitcoinUnits::formatWithPrivacy (unit, balances.balance + balances.unconfirmed_balance + balances.immature_balance , BitcoinUnits::separatorAlways, m_privacy ));
192+ ui->labelWatchAvailable ->setText (BitcoinUnits::formatWithPrivacy (unit, balances.watch_only_balance , BitcoinUnits::separatorAlways, m_privacy ));
193+ ui->labelWatchPending ->setText (BitcoinUnits::formatWithPrivacy (unit, balances.unconfirmed_watch_only_balance , BitcoinUnits::separatorAlways, m_privacy ));
194+ ui->labelWatchImmature ->setText (BitcoinUnits::formatWithPrivacy (unit, balances.immature_watch_only_balance , BitcoinUnits::separatorAlways, m_privacy ));
195+ ui->labelWatchTotal ->setText (BitcoinUnits::formatWithPrivacy (unit, balances.watch_only_balance + balances.unconfirmed_watch_only_balance + balances.immature_watch_only_balance , BitcoinUnits::separatorAlways, m_privacy ));
179196 }
180197 } else {
181- ui->labelBalance ->setText (BitcoinUnits::formatWithUnit (unit, balances.balance , false , BitcoinUnits::separatorAlways));
182- ui->labelUnconfirmed ->setText (BitcoinUnits::formatWithUnit (unit, balances.unconfirmed_balance , false , BitcoinUnits::separatorAlways));
183- ui->labelImmature ->setText (BitcoinUnits::formatWithUnit (unit, balances.immature_balance , false , BitcoinUnits::separatorAlways));
184- ui->labelTotal ->setText (BitcoinUnits::formatWithUnit (unit, balances.balance + balances.unconfirmed_balance + balances.immature_balance , false , BitcoinUnits::separatorAlways));
198+ ui->labelBalance ->setText (BitcoinUnits::formatWithPrivacy (unit, balances.balance , BitcoinUnits::separatorAlways, m_privacy ));
199+ ui->labelUnconfirmed ->setText (BitcoinUnits::formatWithPrivacy (unit, balances.unconfirmed_balance , BitcoinUnits::separatorAlways, m_privacy ));
200+ ui->labelImmature ->setText (BitcoinUnits::formatWithPrivacy (unit, balances.immature_balance , BitcoinUnits::separatorAlways, m_privacy ));
201+ ui->labelTotal ->setText (BitcoinUnits::formatWithPrivacy (unit, balances.balance + balances.unconfirmed_balance + balances.immature_balance , BitcoinUnits::separatorAlways, m_privacy ));
185202 }
186203 // only show immature (newly mined) balance if it's non-zero, so as not to complicate things
187204 // for the non-mining users
0 commit comments