@@ -86,21 +86,46 @@ AppearanceWidget::~AppearanceWidget()
8686void 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
0 commit comments