Skip to content

Commit 2f30002

Browse files
committed
fix: disable appearance widget field if overridden by command line
This is to prevent potential inconsistency or glitching
1 parent 6c71be8 commit 2f30002

2 files changed

Lines changed: 38 additions & 12 deletions

File tree

src/qt/appearancewidget.cpp

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -86,21 +86,46 @@ AppearanceWidget::~AppearanceWidget()
8686
void AppearanceWidget::setModel(OptionsModel* _model)
8787
{
8888
this->model = _model;
89+
if (!_model) return;
90+
91+
mapper->setModel(_model);
92+
mapper->addMapping(ui->theme, OptionsModel::Theme);
93+
mapper->addMapping(ui->fontFamily, OptionsModel::FontFamily);
94+
mapper->addMapping(ui->fontScaleSlider, OptionsModel::FontScale);
95+
mapper->addMapping(ui->fontWeightNormalSlider, OptionsModel::FontWeightNormal);
96+
mapper->addMapping(ui->fontWeightBoldSlider, OptionsModel::FontWeightBold);
97+
98+
const QSignalBlocker fontFamilyBlocker(ui->fontFamily);
99+
const QSignalBlocker fontScaleBlocker(ui->fontScaleSlider);
100+
const QSignalBlocker fontWeightNormalBlocker(ui->fontWeightNormalSlider);
101+
const QSignalBlocker fontWeightBoldBlocker(ui->fontWeightBoldSlider);
102+
103+
mapper->toFirst();
104+
105+
if (_model->isOptionOverridden("-font-family")) {
106+
ui->fontFamily->setEnabled(false);
107+
if (const auto idx{ui->fontFamily->findText(GUIUtil::g_font_registry.GetFont())}; idx != -1) {
108+
ui->fontFamily->setCurrentIndex(idx);
109+
}
110+
}
89111

90-
if (_model) {
91-
mapper->setModel(_model);
92-
mapper->addMapping(ui->theme, OptionsModel::Theme);
93-
mapper->addMapping(ui->fontFamily, OptionsModel::FontFamily);
94-
mapper->addMapping(ui->fontScaleSlider, OptionsModel::FontScale);
95-
mapper->addMapping(ui->fontWeightNormalSlider, OptionsModel::FontWeightNormal);
96-
mapper->addMapping(ui->fontWeightBoldSlider, OptionsModel::FontWeightBold);
112+
if (_model->isOptionOverridden("-font-scale")) {
113+
ui->fontScaleSlider->setEnabled(false);
114+
ui->fontScaleSlider->setValue(GUIUtil::g_font_registry.GetFontScale());
115+
}
97116

98-
const QSignalBlocker fontFamilyBlocker(ui->fontFamily);
99-
const QSignalBlocker fontScaleBlocker(ui->fontScaleSlider);
100-
const QSignalBlocker fontWeightNormalBlocker(ui->fontWeightNormalSlider);
101-
const QSignalBlocker fontWeightBoldBlocker(ui->fontWeightBoldSlider);
117+
if (_model->isOptionOverridden("-font-weight-normal")) {
118+
ui->fontWeightNormalSlider->setEnabled(false);
119+
if (const auto idx{GUIUtil::g_font_registry.WeightToIdx(GUIUtil::g_font_registry.GetWeightNormal())}; idx != -1) {
120+
ui->fontWeightNormalSlider->setValue(idx);
121+
}
122+
}
102123

103-
mapper->toFirst();
124+
if (_model->isOptionOverridden("-font-weight-bold")) {
125+
ui->fontWeightBoldSlider->setEnabled(false);
126+
if (const auto idx{GUIUtil::g_font_registry.WeightToIdx(GUIUtil::g_font_registry.GetWeightBold())}; idx != -1) {
127+
ui->fontWeightBoldSlider->setValue(idx);
128+
}
104129
}
105130
}
106131

src/qt/optionsmodel.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ class OptionsModel : public QAbstractListModel
114114
bool getKeepChangeAddress() const { return fKeepChangeAddress; }
115115
bool getShowAdvancedCJUI() { return fShowAdvancedCJUI; }
116116
const QString& getOverriddenByCommandLine() { return strOverriddenByCommandLine; }
117+
bool isOptionOverridden(const QString& option) const { return strOverriddenByCommandLine.contains(option); }
117118
void emitCoinJoinEnabledChanged();
118119

119120
/* Explicit setters */

0 commit comments

Comments
 (0)