diff --git a/src/plugins/texteditor/displaysettingspage.cpp b/src/plugins/texteditor/displaysettingspage.cpp
index 49927710bba..b94c931ab80 100644
--- a/src/plugins/texteditor/displaysettingspage.cpp
+++ b/src/plugins/texteditor/displaysettingspage.cpp
@@ -4,6 +4,7 @@
#include "displaysettingspage.h"
#include "displaysettings.h"
+#include "fontsettings.h"
#include "marginsettings.h"
#include "texteditorconstants.h"
#include "texteditorsettings.h"
@@ -50,23 +51,18 @@ public:
enableTextWrappingHintLabel = new QLabel(Tr::tr("Set font line spacing "
"to 100% to enable text wrapping option."));
- fontSettingsPageLineSpacing = fontSettingsPageLineSpacingLink();
-
- if (fontSettingsPageLineSpacing) {
- connect(fontSettingsPageLineSpacing, &QSpinBox::valueChanged,
- this, [this](const int &value) {
- if (value != 100)
- enableTextWrapping->setChecked(false);
- enableTextWrapping->setEnabled(value == 100);
- enableTextWrappingHintLabel->setVisible(value != 100);
- });
-
- if (fontSettingsPageLineSpacing->value() != 100)
+ auto updateWrapping = [this] {
+ const bool normalLineSpacing = TextEditorSettings::fontSettings().relativeLineSpacing() == 100;
+ if (!normalLineSpacing)
enableTextWrapping->setChecked(false);
+ enableTextWrapping->setEnabled(normalLineSpacing);
+ enableTextWrappingHintLabel->setVisible(!normalLineSpacing);
+ };
- enableTextWrapping->setEnabled(fontSettingsPageLineSpacing->value() == 100);
- enableTextWrappingHintLabel->setVisible(fontSettingsPageLineSpacing->value() != 100);
- }
+ updateWrapping();
+
+ connect(TextEditorSettings::instance(), &TextEditorSettings::fontSettingsChanged,
+ this, updateWrapping);
connect(enableTextWrappingHintLabel, &QLabel::linkActivated, [] {
Core::ICore::showOptionsDialog(Constants::TEXT_EDITOR_FONT_SETTINGS); } );
@@ -177,8 +173,6 @@ public:
void settingsToUI();
void setDisplaySettings(const DisplaySettings &, const MarginSettings &newMarginSettings);
- QSpinBox *fontSettingsPageLineSpacingLink();
-
DisplaySettingsPagePrivate *m_data = nullptr;
QCheckBox *enableTextWrapping;
@@ -208,8 +202,6 @@ public:
QRadioButton *atMargin;
QRadioButton *rightAligned;
QRadioButton *betweenLines;
-
- QSpinBox *fontSettingsPageLineSpacing = nullptr;
};
void DisplaySettingsWidget::apply()
@@ -226,10 +218,8 @@ void DisplaySettingsWidget::settingsFromUI(DisplaySettings &displaySettings,
{
displaySettings.m_displayLineNumbers = displayLineNumbers->isChecked();
displaySettings.m_textWrapping = enableTextWrapping->isChecked();
- if (fontSettingsPageLineSpacing) {
- if (fontSettingsPageLineSpacing->value() != 100)
- displaySettings.m_textWrapping = false;
- }
+ if (TextEditorSettings::fontSettings().relativeLineSpacing() != 100)
+ displaySettings.m_textWrapping = false;
marginSettings.m_showMargin = showWrapColumn->isChecked();
marginSettings.m_tintMarginArea = tintMarginArea->isChecked();
marginSettings.m_useIndenter = useIndenter->isChecked();
@@ -322,23 +312,6 @@ void DisplaySettingsWidget::setDisplaySettings(const DisplaySettings &newDisplay
}
}
- QSpinBox *DisplaySettingsWidget::fontSettingsPageLineSpacingLink()
- {
- for (const auto &page : Core::IOptionsPage::allOptionsPages()) {
- QWidget *widget = page->widget();
-
- if (!widget)
- continue;
-
- for (QSpinBox *spinBox : widget->findChildren()) {
- if (spinBox->objectName() == QLatin1String("FontSettingsPage.LineSpacingSpinBox"))
- return spinBox;
- }
- }
-
- return nullptr;
- }
-
DisplaySettingsPage::DisplaySettingsPage()
: d(new DisplaySettingsPagePrivate)
{
diff --git a/src/plugins/texteditor/fontsettingspage.cpp b/src/plugins/texteditor/fontsettingspage.cpp
index 1e9ec7fafba..9802ba19a55 100644
--- a/src/plugins/texteditor/fontsettingspage.cpp
+++ b/src/plugins/texteditor/fontsettingspage.cpp
@@ -119,7 +119,6 @@ public:
m_zoomSpinBox->setValue(m_value.fontZoom());
m_lineSpacingSpinBox = new QSpinBox;
- m_lineSpacingSpinBox->setObjectName(QLatin1String("FontSettingsPage.LineSpacingSpinBox"));
m_lineSpacingSpinBox->setSuffix(Tr::tr("%"));
m_lineSpacingSpinBox->setRange(50, 3000);
m_lineSpacingSpinBox->setValue(m_value.relativeLineSpacing());