From b26dc9bc05a052ddc24c4aa444e87cef9b5564f2 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Sat, 10 Jan 2015 12:45:15 +0100 Subject: 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 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/widgets/widgets/qplaintextedit.cpp | 4 ++++ src/widgets/widgets/qplaintextedit_p.h | 1 + src/widgets/widgets/qwidgettextcontrol_p.h | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) (limited to 'src/widgets/widgets') 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; -- cgit v1.2.3