Changeset 561 for trunk/src/gui/text/qsyntaxhighlighter.cpp
- Timestamp:
- Feb 11, 2010, 11:19:06 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
-
Property svn:mergeinfo
set to (toggle deleted branches)
/branches/vendor/nokia/qt/4.6.1 merged eligible /branches/vendor/nokia/qt/current merged eligible /branches/vendor/trolltech/qt/current 3-149
-
Property svn:mergeinfo
set to (toggle deleted branches)
-
trunk/src/gui/text/qsyntaxhighlighter.cpp
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information (qt-info@nokia.com) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation (qt-info@nokia.com) 5 6 ** 6 7 ** This file is part of the QtGui module of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you have questions regarding the use of this file, please contact 37 ** Nokia at qt-info@nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 ** … … 66 66 void _q_reformatBlocks(int from, int charsRemoved, int charsAdded); 67 67 void reformatBlock(QTextBlock block); 68 69 inline void rehighlight(QTextCursor &cursor, QTextCursor::MoveOperation operation) { 70 QObject::disconnect(doc, SIGNAL(contentsChange(int,int,int)), 71 q_func(), SLOT(_q_reformatBlocks(int,int,int))); 72 cursor.beginEditBlock(); 73 int from = cursor.position(); 74 cursor.movePosition(operation); 75 _q_reformatBlocks(from, 0, cursor.position() - from); 76 cursor.endEditBlock(); 77 QObject::connect(doc, SIGNAL(contentsChange(int,int,int)), 78 q_func(), SLOT(_q_reformatBlocks(int,int,int))); 79 } 68 80 69 81 inline void _q_delayedRehighlight() { … … 159 171 160 172 int endPosition; 161 QTextBlock lastBlock = doc->findBlock(from + charsAdded );173 QTextBlock lastBlock = doc->findBlock(from + charsAdded + (charsRemoved > 0 ? 1 : 0)); 162 174 if (lastBlock.isValid()) 163 175 endPosition = lastBlock.position() + lastBlock.length(); … … 208 220 \since 4.1 209 221 210 \ingroup text222 \ingroup richtext-processing 211 223 212 224 The QSyntaxHighlighter class is a base class for implementing … … 356 368 \since 4.2 357 369 358 Redoes the highlighting of the whole document. 370 Reapplies the highlighting to the whole document. 371 372 \sa rehighlightBlock() 359 373 */ 360 374 void QSyntaxHighlighter::rehighlight() … … 364 378 return; 365 379 366 disconnect(d->doc, SIGNAL(contentsChange(int,int,int)),367 this, SLOT(_q_reformatBlocks(int,int,int)));368 380 QTextCursor cursor(d->doc); 369 cursor.beginEditBlock(); 370 cursor.movePosition(QTextCursor::End); 371 d->_q_reformatBlocks(0, 0, cursor.position()); 372 cursor.endEditBlock(); 373 connect(d->doc, SIGNAL(contentsChange(int,int,int)), 374 this, SLOT(_q_reformatBlocks(int,int,int))); 381 d->rehighlight(cursor, QTextCursor::End); 382 } 383 384 /*! 385 \since 4.6 386 387 Reapplies the highlighting to the given QTextBlock \a block. 388 389 \sa rehighlight() 390 */ 391 void QSyntaxHighlighter::rehighlightBlock(const QTextBlock &block) 392 { 393 Q_D(QSyntaxHighlighter); 394 if (!d->doc) 395 return; 396 397 QTextCursor cursor(block); 398 d->rehighlight(cursor, QTextCursor::EndOfBlock); 375 399 } 376 400
Note:
See TracChangeset
for help on using the changeset viewer.