summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/texteditor/basetextdocument.cpp16
-rw-r--r--src/plugins/texteditor/basetextdocument.h1
-rw-r--r--src/plugins/texteditor/basetextdocumentlayout.cpp12
-rw-r--r--src/plugins/texteditor/basetextdocumentlayout.h1
4 files changed, 17 insertions, 13 deletions
diff --git a/src/plugins/texteditor/basetextdocument.cpp b/src/plugins/texteditor/basetextdocument.cpp
index c9641d3f2c..9234b2821f 100644
--- a/src/plugins/texteditor/basetextdocument.cpp
+++ b/src/plugins/texteditor/basetextdocument.cpp
@@ -97,7 +97,6 @@ BaseTextDocument::BaseTextDocument() : d(new BaseTextDocumentPrivate(this))
BaseTextDocument::~BaseTextDocument()
{
- documentClosing();
delete d->m_document;
d->m_document = 0;
delete d;
@@ -377,7 +376,10 @@ bool BaseTextDocument::reload(QString *errorString, QTextCodec *codec)
bool BaseTextDocument::reload(QString *errorString)
{
emit aboutToReload();
- documentClosing(); // removes text marks non-permanently
+ BaseTextDocumentLayout *documentLayout =
+ qobject_cast<BaseTextDocumentLayout*>(d->m_document->documentLayout());
+ if (documentLayout)
+ documentLayout->documentClosing(); // removes text marks non-permanently
if (!open(errorString, d->m_fileName, d->m_fileName))
return false;
@@ -471,16 +473,6 @@ void BaseTextDocument::ensureFinalNewLine(QTextCursor& cursor)
}
}
-void BaseTextDocument::documentClosing()
-{
- QTextBlock block = d->m_document->begin();
- while (block.isValid()) {
- if (TextBlockUserData *data = static_cast<TextBlockUserData *>(block.userData()))
- data->documentClosing();
- block = block.next();
- }
-}
-
bool BaseTextDocument::hasHighlightWarning() const
{
return d->m_hasHighlightWarning;
diff --git a/src/plugins/texteditor/basetextdocument.h b/src/plugins/texteditor/basetextdocument.h
index 0939eabaf3..39f9b67c2b 100644
--- a/src/plugins/texteditor/basetextdocument.h
+++ b/src/plugins/texteditor/basetextdocument.h
@@ -110,7 +110,6 @@ signals:
private:
void cleanWhitespace(QTextCursor &cursor, bool cleanIndentation, bool inEntireDocument);
void ensureFinalNewLine(QTextCursor &cursor);
- void documentClosing();
BaseTextDocumentPrivate *d;
};
diff --git a/src/plugins/texteditor/basetextdocumentlayout.cpp b/src/plugins/texteditor/basetextdocumentlayout.cpp
index 46bede5c71..0973c6bd1b 100644
--- a/src/plugins/texteditor/basetextdocumentlayout.cpp
+++ b/src/plugins/texteditor/basetextdocumentlayout.cpp
@@ -516,6 +516,7 @@ BaseTextDocumentLayout::BaseTextDocumentLayout(QTextDocument *doc)
BaseTextDocumentLayout::~BaseTextDocumentLayout()
{
+ documentClosing();
}
void BaseTextDocumentLayout::setParentheses(const QTextBlock &block, const Parentheses &parentheses)
@@ -699,6 +700,17 @@ QSizeF BaseTextDocumentLayout::documentSize() const
return size;
}
+void BaseTextDocumentLayout::documentClosing()
+{
+ QTextBlock block = document()->begin();
+ while (block.isValid()) {
+ if (TextBlockUserData *data = static_cast<TextBlockUserData *>(block.userData()))
+ data->documentClosing();
+ block = block.next();
+ }
+}
+
+
void BaseTextDocumentLayout::updateMarksLineNumber()
{
QTextBlock block = document()->begin();
diff --git a/src/plugins/texteditor/basetextdocumentlayout.h b/src/plugins/texteditor/basetextdocumentlayout.h
index 80d614190b..4f052a93b3 100644
--- a/src/plugins/texteditor/basetextdocumentlayout.h
+++ b/src/plugins/texteditor/basetextdocumentlayout.h
@@ -214,6 +214,7 @@ public:
QSizeF documentSize() const;
+ void documentClosing();
void updateMarksLineNumber();
void updateMarksBlock(const QTextBlock &block);
};