summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorhjk <qthjk@ovi.com>2012-08-28 09:33:09 +0200
committerQt by Nokia <qt-info@nokia.com>2012-09-02 10:09:28 +0200
commit9d4814e18b9c243340f492f8b7ddd19b523b229f (patch)
tree219180a1d028ddc83861455dd31dbfefa33b64bc /src/widgets
parente0ce39ea675bd1395618207d14089a234c9dd3c8 (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.cpp11
-rw-r--r--src/widgets/widgets/qplaintextedit.h1
-rw-r--r--src/widgets/widgets/qtextedit.cpp11
-rw-r--r--src/widgets/widgets/qtextedit.h2
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)