|
24 | 24 | #include <QLatin1Char> |
25 | 25 | #include <QSettings> |
26 | 26 | #include <QStringList> |
| 27 | +#include <QVariant> |
27 | 28 |
|
28 | 29 | const char *DEFAULT_GUI_PROXY_HOST = "127.0.0.1"; |
29 | 30 |
|
@@ -71,9 +72,16 @@ void OptionsModel::Init(bool resetSettings) |
71 | 72 | fMinimizeOnClose = settings.value("fMinimizeOnClose").toBool(); |
72 | 73 |
|
73 | 74 | // Display |
74 | | - if (!settings.contains("nDisplayUnit")) |
75 | | - settings.setValue("nDisplayUnit", BitcoinUnits::BTC); |
76 | | - nDisplayUnit = settings.value("nDisplayUnit").toInt(); |
| 75 | + if (!settings.contains("DisplayBitcoinUnit")) { |
| 76 | + settings.setValue("DisplayBitcoinUnit", QVariant::fromValue(BitcoinUnit::BTC)); |
| 77 | + } |
| 78 | + QVariant unit = settings.value("DisplayBitcoinUnit"); |
| 79 | + if (unit.canConvert<BitcoinUnit>()) { |
| 80 | + m_display_bitcoin_unit = unit.value<BitcoinUnit>(); |
| 81 | + } else { |
| 82 | + m_display_bitcoin_unit = BitcoinUnit::BTC; |
| 83 | + settings.setValue("DisplayBitcoinUnit", QVariant::fromValue(m_display_bitcoin_unit)); |
| 84 | + } |
77 | 85 |
|
78 | 86 | if (!settings.contains("strThirdPartyTxUrls")) |
79 | 87 | settings.setValue("strThirdPartyTxUrls", ""); |
@@ -356,7 +364,7 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const |
356 | 364 | return m_sub_fee_from_amount; |
357 | 365 | #endif |
358 | 366 | case DisplayUnit: |
359 | | - return nDisplayUnit; |
| 367 | + return QVariant::fromValue(m_display_bitcoin_unit); |
360 | 368 | case ThirdPartyTxUrls: |
361 | 369 | return strThirdPartyTxUrls; |
362 | 370 | case Language: |
@@ -567,12 +575,11 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in |
567 | 575 | /** Updates current unit in memory, settings and emits displayUnitChanged(newUnit) signal */ |
568 | 576 | void OptionsModel::setDisplayUnit(const QVariant &value) |
569 | 577 | { |
570 | | - if (!value.isNull()) |
571 | | - { |
| 578 | + if (!value.isNull()) { |
572 | 579 | QSettings settings; |
573 | | - nDisplayUnit = value.toInt(); |
574 | | - settings.setValue("nDisplayUnit", nDisplayUnit); |
575 | | - Q_EMIT displayUnitChanged(nDisplayUnit); |
| 580 | + m_display_bitcoin_unit = value.value<BitcoinUnit>(); |
| 581 | + settings.setValue("DisplayBitcoinUnit", QVariant::fromValue(m_display_bitcoin_unit)); |
| 582 | + Q_EMIT displayUnitChanged(static_cast<int>(m_display_bitcoin_unit)); |
576 | 583 | } |
577 | 584 | } |
578 | 585 |
|
|
0 commit comments