From 9ee14ace70cc44be55a50dbd2d0fcfb949f7cb66 Mon Sep 17 00:00:00 2001 From: Alexander Kornilov Date: Mon, 29 Nov 2010 17:28:07 +0300 Subject: Changes: The cursorPosition() for MTextEditView was shared. RevBy: Pekka Vuorela --- src/views/mtexteditview.cpp | 13 ++++++++++--- src/views/mtexteditview.h | 8 ++++++++ src/views/mtexteditview_p.h | 2 +- 3 files changed, 19 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/views/mtexteditview.cpp b/src/views/mtexteditview.cpp index 4cbc8556..75928410 100644 --- a/src/views/mtexteditview.cpp +++ b/src/views/mtexteditview.cpp @@ -148,11 +148,12 @@ int MTextEditViewPrivate::cursorPosition(QGraphicsSceneMouseEvent *event) * \param hitPoint mouse position * \return cursor position as characters from start of document */ -int MTextEditViewPrivate::cursorPosition(QPointF hitPoint) +int MTextEditViewPrivate::cursorPosition(const QPointF &point, Qt::HitTestAccuracy accuracy) { Q_Q(MTextEditView); // adjust widget position to textdocument position + QPointF hitPoint = point; hitPoint.rx() += hscroll; hitPoint.ry() += vscroll; hitPoint.rx() -= q->style()->paddingLeft(); @@ -180,7 +181,7 @@ int MTextEditViewPrivate::cursorPosition(QPointF hitPoint) hitPoint.setY(maxY); } - return activeDocument()->documentLayout()->hitTest(hitPoint, Qt::FuzzyHit); + return activeDocument()->documentLayout()->hitTest(hitPoint, accuracy); } @@ -468,7 +469,13 @@ const QPointF &MTextEditView::mouseTarget() const int MTextEditView::cursorPosition(const QPointF &hitPoint) { Q_D(MTextEditView); - return d->cursorPosition(hitPoint); + return d->cursorPosition(hitPoint, Qt::FuzzyHit); +} + +int MTextEditView::cursorPosition(const QPointF &hitPoint, Qt::HitTestAccuracy accuracy) +{ + Q_D(MTextEditView); + return d->cursorPosition(hitPoint, accuracy); } void MTextEditViewPrivate::hideUnmaskedText() diff --git a/src/views/mtexteditview.h b/src/views/mtexteditview.h index 0feec8c7..f5f0cbaf 100644 --- a/src/views/mtexteditview.h +++ b/src/views/mtexteditview.h @@ -87,6 +87,14 @@ protected: */ int cursorPosition(const QPointF &hitPoint); + /*! + * \brief Returns cursor position from a mouse position + * \param hitPoint mouse position + * \param accuracy specified accuracy + * \return cursor position as characters from start of document + */ + int cursorPosition(const QPointF &hitPoint, Qt::HitTestAccuracy accuracy); + protected Q_SLOTS: /*! * \brief Set view focused diff --git a/src/views/mtexteditview_p.h b/src/views/mtexteditview_p.h index 193626a9..67ea6a7b 100644 --- a/src/views/mtexteditview_p.h +++ b/src/views/mtexteditview_p.h @@ -47,7 +47,7 @@ public: virtual ~MTextEditViewPrivate(); int cursorPosition(QGraphicsSceneMouseEvent *event); - int cursorPosition(QPointF event); + int cursorPosition(const QPointF &point, Qt::HitTestAccuracy accuracy = Qt::FuzzyHit); QTextDocument *document() const; QTextDocument *promptDocument() const; -- cgit v1.2.3