diff options
author | Eike Ziller <eike.ziller@digia.com> | 2014-01-13 16:56:53 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@digia.com> | 2014-01-15 15:02:25 +0100 |
commit | 3ad38766112a6e0af67ad18c7244e251dc911f19 (patch) | |
tree | dee5c4e44b63113537d77a3b7f46963b1981441f /src/plugins/texteditor/basetextdocument.cpp | |
parent | 8772e6e85b2be4bd79cae4e21367e23a1ad94ed7 (diff) | |
download | qt-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.cpp | 25 |
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; |