mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-03-25 23:16:16 +01:00
qt: Use QVariant instead of int for BitcoinUnit in QSettings
This change improves type safety.
This commit is contained in:
committed by
William Casarin
parent
5d254a234d
commit
75832fdc37
@@ -24,6 +24,7 @@
|
||||
#include <QLatin1Char>
|
||||
#include <QSettings>
|
||||
#include <QStringList>
|
||||
#include <QVariant>
|
||||
|
||||
const char *DEFAULT_GUI_PROXY_HOST = "127.0.0.1";
|
||||
|
||||
@@ -71,9 +72,16 @@ void OptionsModel::Init(bool resetSettings)
|
||||
fMinimizeOnClose = settings.value("fMinimizeOnClose").toBool();
|
||||
|
||||
// Display
|
||||
if (!settings.contains("nDisplayUnit"))
|
||||
settings.setValue("nDisplayUnit", BitcoinUnits::BTC);
|
||||
nDisplayUnit = settings.value("nDisplayUnit").toInt();
|
||||
if (!settings.contains("DisplayBitcoinUnit")) {
|
||||
settings.setValue("DisplayBitcoinUnit", QVariant::fromValue(BitcoinUnit::BTC));
|
||||
}
|
||||
QVariant unit = settings.value("DisplayBitcoinUnit");
|
||||
if (unit.canConvert<BitcoinUnit>()) {
|
||||
m_display_bitcoin_unit = unit.value<BitcoinUnit>();
|
||||
} else {
|
||||
m_display_bitcoin_unit = BitcoinUnit::BTC;
|
||||
settings.setValue("DisplayBitcoinUnit", QVariant::fromValue(m_display_bitcoin_unit));
|
||||
}
|
||||
|
||||
if (!settings.contains("strThirdPartyTxUrls"))
|
||||
settings.setValue("strThirdPartyTxUrls", "");
|
||||
@@ -356,7 +364,7 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const
|
||||
return m_sub_fee_from_amount;
|
||||
#endif
|
||||
case DisplayUnit:
|
||||
return nDisplayUnit;
|
||||
return QVariant::fromValue(m_display_bitcoin_unit);
|
||||
case ThirdPartyTxUrls:
|
||||
return strThirdPartyTxUrls;
|
||||
case Language:
|
||||
@@ -567,12 +575,11 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
|
||||
/** Updates current unit in memory, settings and emits displayUnitChanged(newUnit) signal */
|
||||
void OptionsModel::setDisplayUnit(const QVariant &value)
|
||||
{
|
||||
if (!value.isNull())
|
||||
{
|
||||
if (!value.isNull()) {
|
||||
QSettings settings;
|
||||
nDisplayUnit = value.toInt();
|
||||
settings.setValue("nDisplayUnit", nDisplayUnit);
|
||||
Q_EMIT displayUnitChanged(nDisplayUnit);
|
||||
m_display_bitcoin_unit = value.value<BitcoinUnit>();
|
||||
settings.setValue("DisplayBitcoinUnit", QVariant::fromValue(m_display_bitcoin_unit));
|
||||
Q_EMIT displayUnitChanged(static_cast<int>(m_display_bitcoin_unit));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user