Skip to content

Commit

Permalink
GUI: Load custom FontForMoney from QSettings
Browse files Browse the repository at this point in the history
  • Loading branch information
luke-jr committed Jul 21, 2023
1 parent 49eb97e commit 3a6757e
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 8 deletions.
35 changes: 28 additions & 7 deletions src/qt/optionsmodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,25 @@ struct ProxySetting {
static ProxySetting ParseProxyString(const std::string& proxy);
static std::string ProxyString(bool is_set, QString ip, QString port);

static const QLatin1String fontchoice_str_embedded{"embedded"};
static const QLatin1String fontchoice_str_best_system{"best_system"};
static const QString fontchoice_str_custom_prefix{QStringLiteral("custom, ")};

OptionsModel::FontChoice OptionsModel::FontChoiceFromString(const QString& s)
{
if (s == fontchoice_str_best_system) {
return FontChoiceAbstract::BestSystemFont;
} else if (s == fontchoice_str_embedded) {
return FontChoiceAbstract::EmbeddedFont;
} else if (s.startsWith(fontchoice_str_custom_prefix)) {
QFont f;
f.fromString(s.mid(fontchoice_str_custom_prefix.size()));
return f;
} else {
return FontChoiceAbstract::EmbeddedFont; // default
}
}

OptionsModel::OptionsModel(interfaces::Node& node, QObject *parent) :
QAbstractListModel(parent), m_node{node}
{
Expand Down Expand Up @@ -215,13 +234,14 @@ bool OptionsModel::Init(bilingual_str& error)
#endif

// Display
if (!settings.contains("UseEmbeddedMonospacedFont")) {
settings.setValue("UseEmbeddedMonospacedFont", "true");
}
if (settings.value("UseEmbeddedMonospacedFont").toBool()) {
m_font_money = FontChoiceAbstract::EmbeddedFont;
} else {
m_font_money = FontChoiceAbstract::BestSystemFont;
if (settings.contains("FontForMoney")) {
m_font_money = FontChoiceFromString(settings.value("FontForMoney").toString());
} else if (settings.contains("UseEmbeddedMonospacedFont")) {
if (settings.value("UseEmbeddedMonospacedFont").toBool()) {
m_font_money = FontChoiceAbstract::EmbeddedFont;
} else {
m_font_money = FontChoiceAbstract::BestSystemFont;
}
}
Q_EMIT fontForMoneyChanged(getFontForMoney());

Expand Down Expand Up @@ -615,6 +635,7 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value, const std::
m_font_money = FontChoiceAbstract::BestSystemFont;
}
settings.setValue("UseEmbeddedMonospacedFont", use_embedded_monospaced_font);
settings.remove("FontForMoney");
Q_EMIT fontForMoneyChanged(getFontForMoney());
break;
}
Expand Down
4 changes: 3 additions & 1 deletion src/qt/optionsmodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ class OptionsModel : public QAbstractListModel
QString language;
BitcoinUnit m_display_bitcoin_unit;
QString strThirdPartyTxUrls;
FontChoice m_font_money;
FontChoice m_font_money{FontChoiceAbstract::EmbeddedFont};
bool fCoinControlFeatures;
bool m_sub_fee_from_amount;
bool m_enable_psbt_controls;
Expand All @@ -138,6 +138,8 @@ class OptionsModel : public QAbstractListModel
/* settings that were overridden by command-line */
QString strOverriddenByCommandLine;

static FontChoice FontChoiceFromString(const QString&);

// Add option to list of GUI options overridden through command line/config file
void addOverriddenOption(const std::string &option);

Expand Down

0 comments on commit 3a6757e

Please sign in to comment.