forked from qt-creator/qt-creator
Editor: simplify font to display options page connection
Operating on saved settings is less error prone and easier to maintain. Change-Id: I92e3a6b52296cddc302ba2e4410edfd243b8ad32 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -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("<i>Set <a href=\"font zoom\">font line spacing</a> "
|
||||
"to 100% to enable text wrapping option.</i>"));
|
||||
|
||||
fontSettingsPageLineSpacing = fontSettingsPageLineSpacingLink();
|
||||
|
||||
if (fontSettingsPageLineSpacing) {
|
||||
connect(fontSettingsPageLineSpacing, &QSpinBox::valueChanged,
|
||||
this, [this](const int &value) {
|
||||
if (value != 100)
|
||||
auto updateWrapping = [this] {
|
||||
const bool normalLineSpacing = TextEditorSettings::fontSettings().relativeLineSpacing() == 100;
|
||||
if (!normalLineSpacing)
|
||||
enableTextWrapping->setChecked(false);
|
||||
enableTextWrapping->setEnabled(value == 100);
|
||||
enableTextWrappingHintLabel->setVisible(value != 100);
|
||||
});
|
||||
enableTextWrapping->setEnabled(normalLineSpacing);
|
||||
enableTextWrappingHintLabel->setVisible(!normalLineSpacing);
|
||||
};
|
||||
|
||||
if (fontSettingsPageLineSpacing->value() != 100)
|
||||
enableTextWrapping->setChecked(false);
|
||||
updateWrapping();
|
||||
|
||||
enableTextWrapping->setEnabled(fontSettingsPageLineSpacing->value() == 100);
|
||||
enableTextWrappingHintLabel->setVisible(fontSettingsPageLineSpacing->value() != 100);
|
||||
}
|
||||
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)
|
||||
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<QSpinBox *>()) {
|
||||
if (spinBox->objectName() == QLatin1String("FontSettingsPage.LineSpacingSpinBox"))
|
||||
return spinBox;
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
DisplaySettingsPage::DisplaySettingsPage()
|
||||
: d(new DisplaySettingsPagePrivate)
|
||||
{
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user