diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-01-10 12:45:15 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-01-24 12:36:41 +0100 |
commit | b26dc9bc05a052ddc24c4aa444e87cef9b5564f2 (patch) | |
tree | d552b17318fac0e4b26df5d11dc34b9ba16faf2a /src/widgets/widgets | |
parent | 7414c2c404cc241b1dbfa2d15aee2917a3b0cfb2 (diff) |
QPlainTextEditControl: reimplement anchorAt()
See comments in QPlainTextDocumentLayout::hitTest(). Since
QPlainTextEdit does not do hit testing on the document layout
level, allow QPlainTextEditControl to override anchorAt() so
that hit testing can be done on the widget level instead.
Change-Id: I70247eafae96897382a0c7db7d596128a03e7a6c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Diffstat (limited to 'src/widgets/widgets')
-rw-r--r-- | src/widgets/widgets/qplaintextedit.cpp | 4 | ||||
-rw-r--r-- | src/widgets/widgets/qplaintextedit_p.h | 1 | ||||
-rw-r--r-- | src/widgets/widgets/qwidgettextcontrol_p.h | 2 |
3 files changed, 6 insertions, 1 deletions
diff --git a/src/widgets/widgets/qplaintextedit.cpp b/src/widgets/widgets/qplaintextedit.cpp index e56fd111e5..7f51eaf683 100644 --- a/src/widgets/widgets/qplaintextedit.cpp +++ b/src/widgets/widgets/qplaintextedit.cpp @@ -604,6 +604,10 @@ QRectF QPlainTextEditControl::blockBoundingRect(const QTextBlock &block) const { return r; } +QString QPlainTextEditControl::anchorAt(const QPointF &pos) const +{ + return textEdit->anchorAt(pos.toPoint()); +} void QPlainTextEditPrivate::setTopLine(int visualTopLine, int dx) { diff --git a/src/widgets/widgets/qplaintextedit_p.h b/src/widgets/widgets/qplaintextedit_p.h index 1e74c7b895..30aff5e97c 100644 --- a/src/widgets/widgets/qplaintextedit_p.h +++ b/src/widgets/widgets/qplaintextedit_p.h @@ -77,6 +77,7 @@ public: void insertFromMimeData(const QMimeData *source) Q_DECL_OVERRIDE; int hitTest(const QPointF &point, Qt::HitTestAccuracy = Qt::FuzzyHit) const Q_DECL_OVERRIDE; QRectF blockBoundingRect(const QTextBlock &block) const Q_DECL_OVERRIDE; + QString anchorAt(const QPointF &pos) const Q_DECL_OVERRIDE; inline QRectF cursorRect(const QTextCursor &cursor) const { QRectF r = QWidgetTextControl::cursorRect(cursor); r.setLeft(qMax(r.left(), (qreal) 0.)); diff --git a/src/widgets/widgets/qwidgettextcontrol_p.h b/src/widgets/widgets/qwidgettextcontrol_p.h index 79f4e404a2..fb16e7e3c4 100644 --- a/src/widgets/widgets/qwidgettextcontrol_p.h +++ b/src/widgets/widgets/qwidgettextcontrol_p.h @@ -124,7 +124,7 @@ public: QRectF selectionRect(const QTextCursor &cursor) const; QRectF selectionRect() const; - QString anchorAt(const QPointF &pos) const; + virtual QString anchorAt(const QPointF &pos) const; QPointF anchorPosition(const QString &name) const; QString anchorAtCursor() const; |