From 45850c23f214103294c7f00fa93de8a244b018a3 Mon Sep 17 00:00:00 2001 From: Daniel Teske <daniel.teske@nokia.com> Date: Wed, 15 Feb 2012 13:39:10 +0100 Subject: [PATCH] Move BaseTextDocument::documentClosing to BaseTextDocumentLayout Centralizing mark handling Change-Id: Ie29c15d97aa171fbf3516d4242fe3f962091477a Reviewed-by: Eike Ziller <eike.ziller@nokia.com> --- src/plugins/texteditor/basetextdocument.cpp | 16 ++++------------ src/plugins/texteditor/basetextdocument.h | 1 - .../texteditor/basetextdocumentlayout.cpp | 12 ++++++++++++ src/plugins/texteditor/basetextdocumentlayout.h | 1 + 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/plugins/texteditor/basetextdocument.cpp b/src/plugins/texteditor/basetextdocument.cpp index c9641d3f2c7..9234b2821f2 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 0939eabaf36..39f9b67c2b5 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 46bede5c716..0973c6bd1b2 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 80d614190b4..4f052a93b30 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); }; -- GitLab