From b9016b900ecff3f1c5fceddc448328fe49a8a734 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Tue, 14 Feb 2012 19:27:15 +0100 Subject: [PATCH] Move mark related functions to BaseTextDocumentLayout BaseTextDocument::updateMarksLineNumber() and updateMarksBlock() Change-Id: I407cddcbe3133a5e8af960d39fe8d499b640c708 Reviewed-by: Eike Ziller --- .../texteditor/basetextdocumentlayout.cpp | 21 +++++++++++ .../texteditor/basetextdocumentlayout.h | 2 ++ src/plugins/texteditor/basetexteditor.cpp | 35 ++++--------------- src/plugins/texteditor/basetexteditor_p.h | 2 -- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/plugins/texteditor/basetextdocumentlayout.cpp b/src/plugins/texteditor/basetextdocumentlayout.cpp index 746816e7962..2327b49029e 100644 --- a/src/plugins/texteditor/basetextdocumentlayout.cpp +++ b/src/plugins/texteditor/basetextdocumentlayout.cpp @@ -578,6 +578,27 @@ QSizeF BaseTextDocumentLayout::documentSize() const return size; } +void BaseTextDocumentLayout::updateMarksLineNumber() +{ + QTextBlock block = document()->begin(); + int blockNumber = 0; + while (block.isValid()) { + if (const TextBlockUserData *userData = testUserData(block)) + foreach (ITextMark *mrk, userData->marks()) { + mrk->updateLineNumber(blockNumber + 1); + } + block = block.next(); + ++blockNumber; + } +} + +void BaseTextDocumentLayout::updateMarksBlock(const QTextBlock &block) +{ + if (const TextBlockUserData *userData = testUserData(block)) + foreach (ITextMark *mrk, userData->marks()) + mrk->updateBlock(block); +} + BaseTextDocumentLayout::FoldValidator::FoldValidator() : m_layout(0) , m_requestDocUpdate(false) diff --git a/src/plugins/texteditor/basetextdocumentlayout.h b/src/plugins/texteditor/basetextdocumentlayout.h index 087c76179bd..88b32dda113 100644 --- a/src/plugins/texteditor/basetextdocumentlayout.h +++ b/src/plugins/texteditor/basetextdocumentlayout.h @@ -211,6 +211,8 @@ public: QSizeF documentSize() const; + void updateMarksLineNumber(); + void updateMarksBlock(const QTextBlock &block); }; } // namespace TextEditor diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index a466b0eeeaa..b762311dfcc 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -675,20 +675,21 @@ void BaseTextEditorWidget::editorContentsChange(int position, int charsRemoved, d->m_contentsChanged = true; QTextDocument *doc = document(); + BaseTextDocumentLayout *documentLayout = static_cast(doc->documentLayout()); // Keep the line numbers and the block information for the text marks updated if (charsRemoved != 0) { - d->updateMarksLineNumber(); - d->updateMarksBlock(document()->findBlock(position)); + documentLayout->updateMarksLineNumber(); + documentLayout->updateMarksBlock(document()->findBlock(position)); } else { const QTextBlock posBlock = doc->findBlock(position); const QTextBlock nextBlock = doc->findBlock(position + charsAdded); if (posBlock != nextBlock) { - d->updateMarksLineNumber(); - d->updateMarksBlock(posBlock); - d->updateMarksBlock(nextBlock); + documentLayout->updateMarksLineNumber(); + documentLayout->updateMarksBlock(posBlock); + documentLayout->updateMarksBlock(nextBlock); } else { - d->updateMarksBlock(posBlock); + documentLayout->updateMarksBlock(posBlock); } } @@ -4823,28 +4824,6 @@ void BaseTextEditorWidget::clearLink() d->m_linkPressed = false; } -void BaseTextEditorPrivate::updateMarksBlock(const QTextBlock &block) -{ - if (const TextBlockUserData *userData = BaseTextDocumentLayout::testUserData(block)) - foreach (ITextMark *mrk, userData->marks()) - mrk->updateBlock(block); -} - -void BaseTextEditorPrivate::updateMarksLineNumber() -{ - QTextDocument *doc = q->document(); - QTextBlock block = doc->begin(); - int blockNumber = 0; - while (block.isValid()) { - if (const TextBlockUserData *userData = BaseTextDocumentLayout::testUserData(block)) - foreach (ITextMark *mrk, userData->marks()) { - mrk->updateLineNumber(blockNumber + 1); - } - block = block.next(); - ++blockNumber; - } -} - void BaseTextEditorWidget::markBlocksAsChanged(QList blockNumbers) { QTextBlock block = document()->begin(); diff --git a/src/plugins/texteditor/basetexteditor_p.h b/src/plugins/texteditor/basetexteditor_p.h index 3d9e00f9310..f9c73aaddec 100644 --- a/src/plugins/texteditor/basetexteditor_p.h +++ b/src/plugins/texteditor/basetexteditor_p.h @@ -233,8 +233,6 @@ public: void foldLicenseHeader(); QBasicTimer autoScrollTimer; - void updateMarksLineNumber(); - void updateMarksBlock(const QTextBlock &block); uint m_marksVisible : 1; uint m_codeFoldingVisible : 1; uint m_codeFoldingSupported : 1;