From fb46c31934c44ee1f83075b5f3647df4eec588c7 Mon Sep 17 00:00:00 2001
From: Leandro Melo <leandro.melo@nokia.com>
Date: Wed, 10 Nov 2010 15:09:18 +0100
Subject: [PATCH] Plain text editor: Make sure user setting about folding
 markers is used

It was being reset based on the highlighter definitions.

Consider some refactoring with the related options as well to avoid
overriding user's settings.

Done-with: Thorbjorn Lindeijer
---
 src/plugins/cppeditor/cppeditor.cpp        |  1 -
 src/plugins/qmljseditor/qmljseditor.cpp    |  1 -
 src/plugins/texteditor/basetexteditor.cpp  | 12 ++++++++----
 src/plugins/texteditor/basetexteditor.h    |  2 +-
 src/plugins/texteditor/plaintexteditor.cpp |  2 --
 5 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index 66bb2b7986d..10a3600b483 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -410,7 +410,6 @@ CPPEditor::CPPEditor(QWidget *parent)
     setParenthesesMatchingEnabled(true);
     setMarksVisible(true);
     setCodeFoldingSupported(true);
-    setCodeFoldingVisible(true);
     baseTextDocument()->setSyntaxHighlighter(new CppHighlighter);
 
     m_modelManager = CppTools::CppModelManagerInterface::instance();
diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp
index abbb818a117..fccae1942d6 100644
--- a/src/plugins/qmljseditor/qmljseditor.cpp
+++ b/src/plugins/qmljseditor/qmljseditor.cpp
@@ -689,7 +689,6 @@ QmlJSTextEditor::QmlJSTextEditor(QWidget *parent) :
     setParenthesesMatchingEnabled(true);
     setMarksVisible(true);
     setCodeFoldingSupported(true);
-    setCodeFoldingVisible(true);
 
     m_updateDocumentTimer = new QTimer(this);
     m_updateDocumentTimer->setInterval(UPDATE_DOCUMENT_DEFAULT_INTERVAL);
diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp
index eaa36330c72..deac6a18311 100644
--- a/src/plugins/texteditor/basetexteditor.cpp
+++ b/src/plugins/texteditor/basetexteditor.cpp
@@ -1807,10 +1807,13 @@ bool BaseTextEditor::lineSeparatorsAllowed() const
     return d->m_lineSeparatorsAllowed;
 }
 
-void BaseTextEditor::setCodeFoldingVisible(bool b)
+void BaseTextEditor::updateCodeFoldingVisible()
 {
-    d->m_codeFoldingVisible = b && d->m_codeFoldingSupported;
-    slotUpdateExtraAreaWidth();
+    const bool visible = d->m_codeFoldingSupported && d->m_displaySettings.m_displayFoldingMarkers;
+    if (d->m_codeFoldingVisible != visible) {
+        d->m_codeFoldingVisible = visible;
+        slotUpdateExtraAreaWidth();
+    }
 }
 
 bool BaseTextEditor::codeFoldingVisible() const
@@ -1827,6 +1830,7 @@ bool BaseTextEditor::codeFoldingVisible() const
 void BaseTextEditor::setCodeFoldingSupported(bool b)
 {
     d->m_codeFoldingSupported = b;
+    updateCodeFoldingVisible();
 }
 
 bool BaseTextEditor::codeFoldingSupported() const
@@ -5124,7 +5128,6 @@ void BaseTextEditor::setDisplaySettings(const DisplaySettings &ds)
     setLineWrapMode(ds.m_textWrapping ? QPlainTextEdit::WidgetWidth : QPlainTextEdit::NoWrap);
     setLineNumbersVisible(ds.m_displayLineNumbers);
     setVisibleWrapColumn(ds.m_showWrapColumn ? ds.m_wrapColumn : 0);
-    setCodeFoldingVisible(ds.m_displayFoldingMarkers);
     setHighlightCurrentLine(ds.m_highlightCurrentLine);
     setRevisionsVisible(ds.m_markTextChanges);
     setCenterOnScroll(ds.m_centerCursorOnScroll);
@@ -5147,6 +5150,7 @@ void BaseTextEditor::setDisplaySettings(const DisplaySettings &ds)
         d->m_highlightBlocksInfo = BaseTextEditorPrivateHighlightBlocks();
     }
 
+    updateCodeFoldingVisible();
     updateHighlights();
     viewport()->update();
     extraArea()->update();
diff --git a/src/plugins/texteditor/basetexteditor.h b/src/plugins/texteditor/basetexteditor.h
index aa19330753a..d17b6993233 100644
--- a/src/plugins/texteditor/basetexteditor.h
+++ b/src/plugins/texteditor/basetexteditor.h
@@ -207,7 +207,7 @@ public:
     void setLineSeparatorsAllowed(bool b);
     bool lineSeparatorsAllowed() const;
 
-    void setCodeFoldingVisible(bool b);
+    void updateCodeFoldingVisible();
     bool codeFoldingVisible() const;
 
     void setCodeFoldingSupported(bool b);
diff --git a/src/plugins/texteditor/plaintexteditor.cpp b/src/plugins/texteditor/plaintexteditor.cpp
index ea1a0b0a2c2..e3cb3fff56c 100644
--- a/src/plugins/texteditor/plaintexteditor.cpp
+++ b/src/plugins/texteditor/plaintexteditor.cpp
@@ -164,7 +164,6 @@ void PlainTextEditor::configure(const Core::MimeType &mimeType)
     baseTextDocument()->setSyntaxHighlighter(highlighter);
 
     setCodeFoldingSupported(false);
-    setCodeFoldingVisible(false);
 
     if (!mimeType.isNull()) {
         m_isMissingSyntaxDefinition = true;
@@ -189,7 +188,6 @@ void PlainTextEditor::configure(const Core::MimeType &mimeType)
                 m_commentDefinition.setMultiLineEnd(definition->multiLineCommentEnd());
 
                 setCodeFoldingSupported(true);
-                setCodeFoldingVisible(true);
             }
         } else if (file()) {
             const QString &fileName = file()->fileName();
-- 
GitLab