From 2bf46d9e7f16fb404502a8580a93fc9d647750f2 Mon Sep 17 00:00:00 2001 From: Alexander Akulich Date: Fri, 10 Jun 2022 13:26:54 +0300 Subject: [PATCH] TextEditor: Add an option to hide file line ending combobox Change-Id: Iae8160f7cd567fc6d42116837fc367fa6dffdc4b Reviewed-by: Reviewed-by: David Schulz --- src/plugins/texteditor/displaysettings.cpp | 4 ++++ src/plugins/texteditor/displaysettings.h | 1 + src/plugins/texteditor/displaysettingspage.cpp | 2 ++ src/plugins/texteditor/displaysettingspage.ui | 9 ++++++++- src/plugins/texteditor/texteditor.cpp | 14 ++++++++++---- 5 files changed, 25 insertions(+), 5 deletions(-) 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();