Introduce hook for text cursor changes in QTextEdit and QPlainTextEdit

Currently it is hard for Q{Plain}TextEdit subclasses to keep track
of changes of the text cursor by direct calls to setTextCursor from
arbitrary code. By redirecting the setTextCursor to a virtual
function subclasses get the chance to intercept such calls.

Change-Id: Id92d9c86928b97285b0f5b7b39790442dfac3e50
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
This commit is contained in:
hjk 2012-08-28 09:33:09 +02:00 committed by Qt by Nokia
parent e0ce39ea67
commit 9d4814e18b
4 changed files with 24 additions and 1 deletions

View File

@ -1313,6 +1313,17 @@ QTextDocument *QPlainTextEdit::document() const
Sets the visible \a cursor.
*/
void QPlainTextEdit::setTextCursor(const QTextCursor &cursor)
{
doSetTextCursor(cursor);
}
/*!
\internal
This provides a hook for subclasses to intercept cursor changes.
*/
void QPlainTextEdit::doSetTextCursor(const QTextCursor &cursor)
{
Q_D(QPlainTextEdit);
d->control->setTextCursor(cursor);

View File

@ -254,6 +254,7 @@ protected:
QPlainTextEdit(QPlainTextEditPrivate &dd, QWidget *parent);
virtual void scrollContentsBy(int dx, int dy);
virtual void doSetTextCursor(const QTextCursor &cursor);
QTextBlock firstVisibleBlock() const;
QPointF contentOffset() const;

View File

@ -756,6 +756,17 @@ QTextDocument *QTextEdit::document() const
Sets the visible \a cursor.
*/
void QTextEdit::setTextCursor(const QTextCursor &cursor)
{
doSetTextCursor(cursor);
}
/*!
\internal
This provides a hook for subclasses to intercept cursor changes.
*/
void QTextEdit::doSetTextCursor(const QTextCursor &cursor)
{
Q_D(QTextEdit);
d->control->setTextCursor(cursor);

View File

@ -296,7 +296,7 @@ protected:
QTextEdit(QTextEditPrivate &dd, QWidget *parent);
virtual void scrollContentsBy(int dx, int dy);
virtual void doSetTextCursor(const QTextCursor &cursor);
private:
Q_DISABLE_COPY(QTextEdit)