diff options
Diffstat (limited to 'src/plugins/texteditor/basetextdocumentlayout.cpp')
-rw-r--r-- | src/plugins/texteditor/basetextdocumentlayout.cpp | 44 |
1 files changed, 41 insertions, 3 deletions
diff --git a/src/plugins/texteditor/basetextdocumentlayout.cpp b/src/plugins/texteditor/basetextdocumentlayout.cpp index 58427566bb..871cab0e13 100644 --- a/src/plugins/texteditor/basetextdocumentlayout.cpp +++ b/src/plugins/texteditor/basetextdocumentlayout.cpp @@ -31,6 +31,15 @@ using namespace TextEditor; +CodeFormatterData::CodeFormatterData(int blockRevision) + : m_blockRevision(blockRevision) +{ +} + +CodeFormatterData::~CodeFormatterData() +{ +} + TextBlockUserData::~TextBlockUserData() { TextMarks marks = m_marks; @@ -38,6 +47,9 @@ TextBlockUserData::~TextBlockUserData() foreach (ITextMark *mrk, marks) { mrk->removedFromEditor(); } + + if (m_codeFormatterData) + delete m_codeFormatterData; } int TextBlockUserData::braceDepthDelta() const @@ -359,6 +371,35 @@ TextBlockUserData::MatchType TextBlockUserData::matchCursorForward(QTextCursor * return NoMatch; } +int TextBlockUserData::lexerState(const QTextBlock &block) +{ + if (!block.isValid()) + return -1; + + int data = block.userState(); + if (data == -1) + return -1; + return data & 0xFF; +} + +void TextBlockUserData::setLexerState(QTextBlock block, int state) +{ + if (!block.isValid()) + return; + + int data = block.userState(); + if (data == -1) + data = 0; + block.setUserState((data & ~0xFF) | (state & 0xFF)); +} + +void TextBlockUserData::setCodeFormatterData(CodeFormatterData *data) +{ + if (m_codeFormatterData) + delete m_codeFormatterData; + + m_codeFormatterData = data; +} BaseTextDocumentLayout::BaseTextDocumentLayout(QTextDocument *doc) :QPlainTextDocumentLayout(doc) { @@ -528,6 +569,3 @@ QSizeF BaseTextDocumentLayout::documentSize() const size.setWidth(qMax((qreal)m_requiredWidth, size.width())); return size; } - - - |