diff --git a/src/plugins/texteditor/displaysettings.cpp b/src/plugins/texteditor/displaysettings.cpp
index c5e41fb4991..f092150a0e6 100644
--- a/src/plugins/texteditor/displaysettings.cpp
+++ b/src/plugins/texteditor/displaysettings.cpp
@@ -47,6 +47,7 @@ static const char autoFoldFirstCommentKey[] = "AutoFoldFirstComment";
static const char centerCursorOnScrollKey[] = "CenterCursorOnScroll";
static const char openLinksInNextSplitKey[] = "OpenLinksInNextSplitKey";
static const char displayFileEncodingKey[] = "DisplayFileEncoding";
+static const char displayFileLineEndingKey[] = "DisplayFileLineEnding";
static const char scrollBarHighlightsKey[] = "ScrollBarHighlights";
static const char animateNavigationWithinFileKey[] = "AnimateNavigationWithinFile";
static const char animateWithinFileTimeMaxKey[] = "AnimateWithinFileTimeMax";
@@ -76,6 +77,7 @@ void DisplaySettings::toSettings(const QString &category, QSettings *s) const
s->setValue(QLatin1String(centerCursorOnScrollKey), m_centerCursorOnScroll);
s->setValue(QLatin1String(openLinksInNextSplitKey), m_openLinksInNextSplit);
s->setValue(QLatin1String(displayFileEncodingKey), m_displayFileEncoding);
+ s->setValue(QLatin1String(displayFileLineEndingKey), m_displayFileLineEnding);
s->setValue(QLatin1String(scrollBarHighlightsKey), m_scrollBarHighlights);
s->setValue(QLatin1String(animateNavigationWithinFileKey), m_animateNavigationWithinFile);
s->setValue(QLatin1String(displayAnnotationsKey), m_displayAnnotations);
@@ -105,6 +107,7 @@ void DisplaySettings::fromSettings(const QString &category, const QSettings *s)
m_centerCursorOnScroll = s->value(group + QLatin1String(centerCursorOnScrollKey), m_centerCursorOnScroll).toBool();
m_openLinksInNextSplit = s->value(group + QLatin1String(openLinksInNextSplitKey), m_openLinksInNextSplit).toBool();
m_displayFileEncoding = s->value(group + QLatin1String(displayFileEncodingKey), m_displayFileEncoding).toBool();
+ m_displayFileLineEnding = s->value(group + QLatin1String(displayFileLineEndingKey), m_displayFileLineEnding).toBool();
m_scrollBarHighlights = s->value(group + QLatin1String(scrollBarHighlightsKey), m_scrollBarHighlights).toBool();
m_animateNavigationWithinFile = s->value(group + QLatin1String(animateNavigationWithinFileKey), m_animateNavigationWithinFile).toBool();
m_animateWithinFileTimeMax = s->value(group + QLatin1String(animateWithinFileTimeMaxKey), m_animateWithinFileTimeMax).toInt();
@@ -131,6 +134,7 @@ bool DisplaySettings::equals(const DisplaySettings &ds) const
&& m_openLinksInNextSplit == ds.m_openLinksInNextSplit
&& m_forceOpenLinksInNextSplit == ds.m_forceOpenLinksInNextSplit
&& m_displayFileEncoding == ds.m_displayFileEncoding
+ && m_displayFileLineEnding == ds.m_displayFileLineEnding
&& m_scrollBarHighlights == ds.m_scrollBarHighlights
&& m_animateNavigationWithinFile == ds.m_animateNavigationWithinFile
&& m_animateWithinFileTimeMax == ds.m_animateWithinFileTimeMax
diff --git a/src/plugins/texteditor/displaysettings.h b/src/plugins/texteditor/displaysettings.h
index ae87f76dfbd..97b716a8fc7 100644
--- a/src/plugins/texteditor/displaysettings.h
+++ b/src/plugins/texteditor/displaysettings.h
@@ -69,6 +69,7 @@ public:
bool m_openLinksInNextSplit = false;
bool m_forceOpenLinksInNextSplit = false;
bool m_displayFileEncoding = false;
+ bool m_displayFileLineEnding = true;
bool m_scrollBarHighlights = true;
bool m_animateNavigationWithinFile = false;
int m_animateWithinFileTimeMax = 333; // read only setting
diff --git a/src/plugins/texteditor/displaysettingspage.cpp b/src/plugins/texteditor/displaysettingspage.cpp
index fa551504211..f972e1735a8 100644
--- a/src/plugins/texteditor/displaysettingspage.cpp
+++ b/src/plugins/texteditor/displaysettingspage.cpp
@@ -102,6 +102,7 @@ void DisplaySettingsWidget::settingsFromUI(DisplaySettings &displaySettings,
displaySettings.m_centerCursorOnScroll = m_ui.centerOnScroll->isChecked();
displaySettings.m_openLinksInNextSplit = m_ui.openLinksInNextSplit->isChecked();
displaySettings.m_displayFileEncoding = m_ui.displayFileEncoding->isChecked();
+ displaySettings.m_displayFileLineEnding = m_ui.displayFileLineEnding->isChecked();
displaySettings.m_scrollBarHighlights = m_ui.scrollBarHighlights->isChecked();
displaySettings.m_animateNavigationWithinFile = m_ui.animateNavigationWithinFile->isChecked();
displaySettings.m_displayAnnotations = m_ui.displayAnnotations->isChecked();
@@ -135,6 +136,7 @@ void DisplaySettingsWidget::settingsToUI()
m_ui.centerOnScroll->setChecked(displaySettings.m_centerCursorOnScroll);
m_ui.openLinksInNextSplit->setChecked(displaySettings.m_openLinksInNextSplit);
m_ui.displayFileEncoding->setChecked(displaySettings.m_displayFileEncoding);
+ m_ui.displayFileLineEnding->setChecked(displaySettings.m_displayFileLineEnding);
m_ui.scrollBarHighlights->setChecked(displaySettings.m_scrollBarHighlights);
m_ui.animateNavigationWithinFile->setChecked(displaySettings.m_animateNavigationWithinFile);
m_ui.displayAnnotations->setChecked(displaySettings.m_displayAnnotations);
diff --git a/src/plugins/texteditor/displaysettingspage.ui b/src/plugins/texteditor/displaysettingspage.ui
index c7d49ac0692..29dea5649a3 100644
--- a/src/plugins/texteditor/displaysettingspage.ui
+++ b/src/plugins/texteditor/displaysettingspage.ui
@@ -97,6 +97,13 @@
+ -
+
+
+ Display file line ending
+
+
+
-
@@ -170,7 +177,7 @@
- -
+
-
Animate navigation within file
diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp
index eb33c6de6a3..22c23387d3a 100644
--- a/src/plugins/texteditor/texteditor.cpp
+++ b/src/plugins/texteditor/texteditor.cpp
@@ -640,6 +640,7 @@ public:
void slotSelectionChanged();
void _q_animateUpdate(const QTextCursor &cursor, QPointF lastPos, QRectF rect);
void updateCodeFoldingVisible();
+ void updateFileLineEndingVisible();
void reconfigure();
void updateSyntaxInfoBar(const Highlighter::Definitions &definitions, const QString &fileName);
@@ -952,10 +953,9 @@ TextEditorWidgetPrivate::TextEditorWidgetPrivate(TextEditorWidget *parent)
m_fileLineEnding->addItems(ExtraEncodingSettings::lineTerminationModeNames());
m_fileLineEnding->setContentsMargins(spacing, 0, spacing, 0);
m_fileLineEndingAction = m_toolBar->addWidget(m_fileLineEnding);
- m_fileLineEndingAction->setVisible(!q->isReadOnly());
- connect(q, &TextEditorWidget::readOnlyChanged, this, [this] {
- m_fileLineEndingAction->setVisible(!q->isReadOnly());
- });
+ updateFileLineEndingVisible();
+ connect(q, &TextEditorWidget::readOnlyChanged,
+ this, &TextEditorWidgetPrivate::updateFileLineEndingVisible);
m_fileEncodingLabel = new FixedSizeClickLabel;
m_fileEncodingLabel->setContentsMargins(spacing, 0, spacing, 0);
@@ -3225,6 +3225,11 @@ void TextEditorWidgetPrivate::updateCodeFoldingVisible()
}
}
+void TextEditorWidgetPrivate::updateFileLineEndingVisible()
+{
+ m_fileLineEndingAction->setVisible(m_displaySettings.m_displayFileLineEnding && !q->isReadOnly());
+}
+
void TextEditorWidgetPrivate::reconfigure()
{
m_document->setMimeType(Utils::mimeTypeForFile(m_document->filePath()).name());
@@ -7211,6 +7216,7 @@ void TextEditorWidget::setDisplaySettings(const DisplaySettings &ds)
}
d->updateCodeFoldingVisible();
+ d->updateFileLineEndingVisible();
d->updateHighlights();
d->setupScrollBar();
viewport()->update();