aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Chow <github@achow101.com>2023-01-23 19:12:04 -0500
committerAndrew Chow <github@achow101.com>2023-01-23 20:59:05 -0500
commit4de02def844102c08b65bf1311a333e7aca482b9 (patch)
tree3986e9631d9d4e8bf80857af62cb9c44664afca0
parenta62231bca629e945349255a1d331dd5c7a86ddd1 (diff)
downloadbitcoin-4de02def844102c08b65bf1311a333e7aca482b9.tar.xz
qt: Persist Mask Values option
The mask values option is memory only. If a user has enabled this option, it's reasonable to expect that they would want to have it enabled on the next start.
-rw-r--r--src/qt/bitcoingui.cpp2
-rw-r--r--src/qt/optionsmodel.cpp8
-rw-r--r--src/qt/optionsmodel.h2
-rw-r--r--src/qt/overviewpage.cpp1
4 files changed, 13 insertions, 0 deletions
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index a7ffd367d7..51ed079a2b 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -647,6 +647,8 @@ void BitcoinGUI::setClientModel(ClientModel *_clientModel, interfaces::BlockAndH
// initialize the disable state of the tray icon with the current value in the model.
trayIcon->setVisible(optionsModel->getShowTrayIcon());
}
+
+ m_mask_values_action->setChecked(_clientModel->getOptionsModel()->getOption(OptionsModel::OptionID::MaskValues).toBool());
} else {
if(trayIconMenu)
{
diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp
index cd0a1a19ee..12e00aad38 100644
--- a/src/qt/optionsmodel.cpp
+++ b/src/qt/optionsmodel.cpp
@@ -227,6 +227,8 @@ bool OptionsModel::Init(bilingual_str& error)
m_use_embedded_monospaced_font = settings.value("UseEmbeddedMonospacedFont").toBool();
Q_EMIT useEmbeddedMonospacedFontChanged(m_use_embedded_monospaced_font);
+ m_mask_values = settings.value("mask_values", false).toBool();
+
return true;
}
@@ -435,6 +437,8 @@ QVariant OptionsModel::getOption(OptionID option) const
return SettingToBool(setting(), DEFAULT_LISTEN);
case Server:
return SettingToBool(setting(), false);
+ case MaskValues:
+ return m_mask_values;
default:
return QVariant();
}
@@ -612,6 +616,10 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value)
setRestartRequired(true);
}
break;
+ case MaskValues:
+ m_mask_values = value.toBool();
+ settings.setValue("mask_values", m_mask_values);
+ break;
default:
break;
}
diff --git a/src/qt/optionsmodel.h b/src/qt/optionsmodel.h
index e36fbc5b31..848966574d 100644
--- a/src/qt/optionsmodel.h
+++ b/src/qt/optionsmodel.h
@@ -72,6 +72,7 @@ public:
Listen, // bool
Server, // bool
EnablePSBTControls, // bool
+ MaskValues, // bool
OptionIDRowCount,
};
@@ -120,6 +121,7 @@ private:
bool fCoinControlFeatures;
bool m_sub_fee_from_amount;
bool m_enable_psbt_controls;
+ bool m_mask_values;
//! In-memory settings for display. These are stored persistently by the
//! bitcoin node but it's also nice to store them in memory to prevent them
diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp
index c9caec39cf..7bf2cd54e2 100644
--- a/src/qt/overviewpage.cpp
+++ b/src/qt/overviewpage.cpp
@@ -173,6 +173,7 @@ void OverviewPage::handleTransactionClicked(const QModelIndex &index)
void OverviewPage::setPrivacy(bool privacy)
{
m_privacy = privacy;
+ clientModel->getOptionsModel()->setOption(OptionsModel::OptionID::MaskValues, privacy);
const auto& balances = walletModel->getCachedBalance();
if (balances.balance != -1) {
setBalance(balances);