summaryrefslogtreecommitdiff
path: root/src/plugins/texteditor/basetextdocument.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@digia.com>2014-01-13 16:56:53 +0100
committerEike Ziller <eike.ziller@digia.com>2014-01-15 15:02:25 +0100
commit3ad38766112a6e0af67ad18c7244e251dc911f19 (patch)
treedee5c4e44b63113537d77a3b7f46963b1981441f /src/plugins/texteditor/basetextdocument.cpp
parent8772e6e85b2be4bd79cae4e21367e23a1ad94ed7 (diff)
downloadqt-creator-3ad38766112a6e0af67ad18c7244e251dc911f19.tar.gz
TextEditors: Move indenter to document.
Change-Id: I8bdf7134562d007aa16cc63a34f5a15a708577ae Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Diffstat (limited to 'src/plugins/texteditor/basetextdocument.cpp')
-rw-r--r--src/plugins/texteditor/basetextdocument.cpp25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/plugins/texteditor/basetextdocument.cpp b/src/plugins/texteditor/basetextdocument.cpp
index adba636f4f..b3b82d07ca 100644
--- a/src/plugins/texteditor/basetextdocument.cpp
+++ b/src/plugins/texteditor/basetextdocument.cpp
@@ -32,12 +32,13 @@
#include "basetextdocumentlayout.h"
#include "basetexteditor.h"
#include "convenience.h"
-#include "typingsettings.h"
-#include "storagesettings.h"
-#include "tabsettings.h"
#include "extraencodingsettings.h"
+#include "indenter.h"
+#include "storagesettings.h"
#include "syntaxhighlighter.h"
+#include "tabsettings.h"
#include "texteditorconstants.h"
+#include "typingsettings.h"
#include <QApplication>
#include <QDir>
@@ -68,6 +69,7 @@ public:
ExtraEncodingSettings m_extraEncodingSettings;
QTextDocument *m_document;
SyntaxHighlighter *m_highlighter;
+ QScopedPointer<Indenter> m_indenter;
bool m_fileIsReadOnly;
int m_autoSaveRevision;
@@ -76,6 +78,7 @@ public:
BaseTextDocumentPrivate::BaseTextDocumentPrivate(BaseTextDocument *q) :
m_document(new QTextDocument(q)),
m_highlighter(0),
+ m_indenter(new Indenter),
m_fileIsReadOnly(false),
m_autoSaveRevision(-1)
{
@@ -172,6 +175,22 @@ const ExtraEncodingSettings &BaseTextDocument::extraEncodingSettings() const
return d->m_extraEncodingSettings;
}
+void BaseTextDocument::setIndenter(Indenter *indenter)
+{
+ // clear out existing code formatter data
+ for (QTextBlock it = document()->begin(); it.isValid(); it = it.next()) {
+ TextEditor::TextBlockUserData *userData = BaseTextDocumentLayout::testUserData(it);
+ if (userData)
+ userData->setCodeFormatterData(0);
+ }
+ d->m_indenter.reset(indenter);
+}
+
+Indenter *BaseTextDocument::indenter() const
+{
+ return d->m_indenter.data();
+}
+
bool BaseTextDocument::isSaveAsAllowed() const
{
return true;