Skip to content

Commit 134d721

Browse files
committed
GUI: If new DisplayBitcoinUnit is missing, migrate nDisplayUnit
1 parent 5145e1e commit 134d721

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

src/qt/bitcoinunits.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -348,15 +348,21 @@ BitcoinUnit FromQint8(qint8 num)
348348
}
349349
return BitcoinUnit::BTC;
350350
}
351+
} // namespace
351352

352-
BitcoinUnit FromSetting(const QString& s, BitcoinUnit def)
353+
BitcoinUnit BitcoinUnits::FromSetting(const QString& s, BitcoinUnit def)
353354
{
355+
if (s == "0") return BitcoinUnit::BTC;
356+
if (s == "1") return BitcoinUnit::mBTC;
357+
if (s == "2") return BitcoinUnit::uBTC;
358+
if (s == "3") return BitcoinUnit::SAT;
359+
if (s == "4") return BitcoinUnit::sTBC;
360+
if (s == "5") return BitcoinUnit::TBC;
354361
if (s == "bTBC") return BitcoinUnit::bTBC;
355362
if (s == "sTBC") return BitcoinUnit::sTBC;
356363
if (s == "TBC") return BitcoinUnit::TBC;
357364
return def;
358365
}
359-
} // namespace
360366

361367
QDataStream& operator<<(QDataStream& out, const BitcoinUnit& unit)
362368
{
@@ -376,7 +382,7 @@ QDataStream& operator>>(QDataStream& in, BitcoinUnit& unit)
376382
if (!in.atEnd()) {
377383
QString setting_str;
378384
in >> setting_str;
379-
unit = FromSetting(setting_str, unit);
385+
unit = BitcoinUnits::FromSetting(setting_str, unit);
380386
}
381387
return in;
382388
}

src/qt/bitcoinunits.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ class BitcoinUnits: public QAbstractListModel
6363

6464
//! Get list of units, for drop-down box
6565
static QList<Unit> availableUnits();
66+
//! Convert setting(s) string to unit
67+
static Unit FromSetting(const QString&, Unit def);
6668
//! Long name
6769
static QString longName(Unit unit);
6870
//! Short name

src/qt/optionsmodel.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,12 @@ bool OptionsModel::Init(bilingual_str& error)
160160

161161
// Display
162162
if (!settings.contains("DisplayBitcoinUnit")) {
163-
settings.setValue("DisplayBitcoinUnit", QVariant::fromValue(BitcoinUnit::BTC));
163+
auto init_unit = BitcoinUnit::BTC;
164+
if (settings.contains("nDisplayUnit")) {
165+
// Migrate to new setting
166+
init_unit = BitcoinUnits::FromSetting(settings.value("nDisplayUnit").toString(), init_unit);
167+
}
168+
settings.setValue("DisplayBitcoinUnit", QVariant::fromValue(init_unit));
164169
}
165170
QVariant unit = settings.value("DisplayBitcoinUnit");
166171
if (settings.contains("DisplayBitcoinUnitKnots")) {

0 commit comments

Comments
 (0)