diff options
author | hjk <qthjk@ovi.com> | 2012-08-28 09:33:09 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-09-02 10:09:28 +0200 |
commit | 9d4814e18b9c243340f492f8b7ddd19b523b229f (patch) | |
tree | 219180a1d028ddc83861455dd31dbfefa33b64bc /src/widgets | |
parent | e0ce39ea675bd1395618207d14089a234c9dd3c8 (diff) |
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>
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/widgets/qplaintextedit.cpp | 11 | ||||
-rw-r--r-- | src/widgets/widgets/qplaintextedit.h | 1 | ||||
-rw-r--r-- | src/widgets/widgets/qtextedit.cpp | 11 | ||||
-rw-r--r-- | src/widgets/widgets/qtextedit.h | 2 |
4 files changed, 24 insertions, 1 deletions
diff --git a/src/widgets/widgets/qplaintextedit.cpp b/src/widgets/widgets/qplaintextedit.cpp index 423f9b3cd1..a5e9e0df30 100644 --- a/src/widgets/widgets/qplaintextedit.cpp +++ b/src/widgets/widgets/qplaintextedit.cpp @@ -1314,6 +1314,17 @@ QTextDocument *QPlainTextEdit::document() const */ 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); } diff --git a/src/widgets/widgets/qplaintextedit.h b/src/widgets/widgets/qplaintextedit.h index b7395d3c39..628e4a87a2 100644 --- a/src/widgets/widgets/qplaintextedit.h +++ b/src/widgets/widgets/qplaintextedit.h @@ -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; diff --git a/src/widgets/widgets/qtextedit.cpp b/src/widgets/widgets/qtextedit.cpp index 0ab76db5d3..0b31c536ac 100644 --- a/src/widgets/widgets/qtextedit.cpp +++ b/src/widgets/widgets/qtextedit.cpp @@ -757,6 +757,17 @@ QTextDocument *QTextEdit::document() const */ 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); } diff --git a/src/widgets/widgets/qtextedit.h b/src/widgets/widgets/qtextedit.h index ab0a5aeb7c..e2c294ca86 100644 --- a/src/widgets/widgets/qtextedit.h +++ b/src/widgets/widgets/qtextedit.h @@ -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) |