From 666299f9074235185aa7372729c84a2639224601 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Thu, 11 Jun 2009 11:12:43 +0200 Subject: another API review round: change Q*TouchEvent size() functions to return rects instead these are more useful, as already shown in the fingerpaint example --- examples/multitouch/fingerpaint/scribblearea.cpp | 13 ++++------ src/gui/graphicsview/qgraphicssceneevent.cpp | 30 ++++++++++++------------ src/gui/graphicsview/qgraphicssceneevent.h | 13 +++++----- src/gui/kernel/qapplication_win.cpp | 15 ++++++------ src/gui/kernel/qevent.cpp | 11 +++++---- src/gui/kernel/qevent.h | 4 ++-- src/gui/kernel/qevent_p.h | 2 +- 7 files changed, 44 insertions(+), 44 deletions(-) diff --git a/examples/multitouch/fingerpaint/scribblearea.cpp b/examples/multitouch/fingerpaint/scribblearea.cpp index ac7df08..c07d982 100644 --- a/examples/multitouch/fingerpaint/scribblearea.cpp +++ b/examples/multitouch/fingerpaint/scribblearea.cpp @@ -184,24 +184,21 @@ bool ScribbleArea::event(QEvent *event) continue; default: { - QSizeF size= touchPoint.size(); - if (size.isEmpty()) { + QRectF rect = touchPoint.rect(); + if (rect.isEmpty()) { qreal diameter = qreal(50) * touchPoint.pressure(); - size = QSizeF(diameter, diameter); + rect.setSize(QSizeF(diameter, diameter)); } - QRectF rectF(QPointF(), size); - rectF.moveCenter(touchPoint.pos()); - QRect rect = rectF.toRect(); QPainter painter(&image); painter.setPen(Qt::NoPen); painter.setBrush(myPenColors.at(touchPoint.id())); - painter.drawEllipse(rectF); + painter.drawEllipse(rect); painter.end(); modified = true; int rad = 2; - update(rect.adjusted(-rad,-rad, +rad, +rad)); + update(rect.toRect().adjusted(-rad,-rad, +rad, +rad)); } break; } diff --git a/src/gui/graphicsview/qgraphicssceneevent.cpp b/src/gui/graphicsview/qgraphicssceneevent.cpp index c1052e3..1be8d0d 100644 --- a/src/gui/graphicsview/qgraphicssceneevent.cpp +++ b/src/gui/graphicsview/qgraphicssceneevent.cpp @@ -2249,51 +2249,51 @@ void QGraphicsSceneTouchEvent::TouchPoint::setLastScreenPos(const QPointF &lastS } /*! - Returns the size of this touch point. + Returns the rect for this touch point. */ -QSizeF QGraphicsSceneTouchEvent::TouchPoint::size() const +QRectF QGraphicsSceneTouchEvent::TouchPoint::rect() const { - return d->size; + return d->rect; } /*! \internal */ -void QGraphicsSceneTouchEvent::TouchPoint::setSize(const QSizeF &size) +void QGraphicsSceneTouchEvent::TouchPoint::setRect(const QRectF &rect) { if (d->ref != 1) d = d->detach(); - d->size = size; + d->rect = rect; } /*! - Returns the size of this touch point in scene coordinates. + Returns the rect of this touch point in scene coordinates. */ -QSizeF QGraphicsSceneTouchEvent::TouchPoint::sceneSize() const +QRectF QGraphicsSceneTouchEvent::TouchPoint::sceneRect() const { - return d->sceneSize; + return d->sceneRect; } /*! \internal */ -void QGraphicsSceneTouchEvent::TouchPoint::setSceneSize(const QSizeF &sceneSize) +void QGraphicsSceneTouchEvent::TouchPoint::setSceneRect(const QRectF &sceneRect) { if (d->ref != 1) d = d->detach(); - d->sceneSize = sceneSize; + d->sceneRect = sceneRect; } /*! - Returns the size of this touch point in screen coordinates. + Returns the rect of this touch point in screen coordinates. */ -QSizeF QGraphicsSceneTouchEvent::TouchPoint::screenSize() const +QRectF QGraphicsSceneTouchEvent::TouchPoint::screenRect() const { - return d->screenSize; + return d->screenRect; } /*! \internal */ -void QGraphicsSceneTouchEvent::TouchPoint::setScreenSize(const QSizeF &screenSize) +void QGraphicsSceneTouchEvent::TouchPoint::setScreenRect(const QRectF &screenRect) { if (d->ref != 1) d = d->detach(); - d->screenSize = screenSize; + d->screenRect = screenRect; } /*! diff --git a/src/gui/graphicsview/qgraphicssceneevent.h b/src/gui/graphicsview/qgraphicssceneevent.h index 3c53f36..3eb5cce 100644 --- a/src/gui/graphicsview/qgraphicssceneevent.h +++ b/src/gui/graphicsview/qgraphicssceneevent.h @@ -60,6 +60,7 @@ QT_MODULE(Gui) class QMimeData; class QPointF; class QSizeF; +class QRectF; class QWidget; class QGraphicsSceneEventPrivate; @@ -393,14 +394,14 @@ public: QPointF lastScreenPos() const; void setLastScreenPos(const QPointF &lastScreenPos); - QSizeF size() const; - void setSize(const QSizeF &size); + QRectF rect() const; + void setRect(const QRectF &rect); - QSizeF sceneSize() const; - void setSceneSize(const QSizeF &sceneSize); + QRectF sceneRect() const; + void setSceneRect(const QRectF &sceneRect); - QSizeF screenSize() const; - void setScreenSize(const QSizeF &screenSize); + QRectF screenRect() const; + void setScreenRect(const QRectF &screenRect); qreal pressure() const; void setPressure(qreal pressure); diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp index ae6cadf..0c5945d 100644 --- a/src/gui/kernel/qapplication_win.cpp +++ b/src/gui/kernel/qapplication_win.cpp @@ -4041,25 +4041,26 @@ bool QApplicationPrivate::translateTouchEvent(const MSG &msg) // update state QPointF globalPos(qreal(touchInput.x) / qreal(100.), qreal(touchInput.y) / qreal(100.)); - QSizeF contactArea = (touchInput.dwMask & TOUCHINPUTMASKF_CONTACTAREA) - ? QSizeF(qreal(touchInput.cxContact) / qreal(100.), - qreal(touchInput.cyContact) / qreal(100.)) - : QSizeF(); + QRectF globalRect; + if (touchInput.dwMask & TOUCHINPUTMASKF_CONTACTAREA) + globalRect.setSize(QSizeF(qreal(touchInput.cxContact) / qreal(100.), + qreal(touchInput.cyContact) / qreal(100.))); + globalRect.moveCenter(globalPos); if (touchInput.dwFlags & TOUCHEVENTF_DOWN) { touchPoint.setState(Qt::TouchPointPressed); touchPoint.setGlobalPos(globalPos); - touchPoint.setSize(contactArea); + touchPoint.setRect(globalRect); } else if (touchInput.dwFlags & TOUCHEVENTF_UP) { touchPoint.setState(Qt::TouchPointReleased); touchPoint.setGlobalPos(globalPos); - touchPoint.setSize(QSizeF()); + touchPoint.setRect(globalRect); } else { touchPoint.setState(globalPos == touchPoint.globalPos() ? Qt::TouchPointStationary : Qt::TouchPointMoved); touchPoint.setGlobalPos(globalPos); - touchPoint.setSize(contactArea); + touchPoint.setRect(globalRect); } touchPoints.append(touchPoint); diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index 5b3c0fe..7a86dbf 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -3933,19 +3933,20 @@ void QTouchEvent::TouchPoint::setLastGlobalPos(const QPointF &lastGlobalPos) } /*! - Returns the size of this touch point. + Returns the rect for this touch point. The rect is centered around the point returned by pos(). + Note this function returns an empty rect if the device does not report touch point sizes. */ -QSizeF QTouchEvent::TouchPoint::size() const +QRectF QTouchEvent::TouchPoint::rect() const { - return d->screenSize; + return d->screenRect; } /*! \internal */ -void QTouchEvent::TouchPoint::setSize(const QSizeF &size) +void QTouchEvent::TouchPoint::setRect(const QRectF &rect) { if (d->ref != 1) d = d->detach(); - d->screenSize = size; + d->screenRect = rect; } /*! diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h index 0c4bbb7..4d62958 100644 --- a/src/gui/kernel/qevent.h +++ b/src/gui/kernel/qevent.h @@ -792,8 +792,8 @@ public: QPointF lastGlobalPos() const; void setLastGlobalPos(const QPointF &lastGlobalPos); - QSizeF size() const; - void setSize(const QSizeF &size); + QRectF rect() const; + void setRect(const QRectF &rect); qreal pressure() const; void setPressure(qreal pressure); diff --git a/src/gui/kernel/qevent_p.h b/src/gui/kernel/qevent_p.h index 573fdc8..3475d0d 100644 --- a/src/gui/kernel/qevent_p.h +++ b/src/gui/kernel/qevent_p.h @@ -112,7 +112,7 @@ public: QPointF pos, startPos, lastPos; QPointF scenePos, startScenePos, lastScenePos; QPointF screenPos, startScreenPos, lastScreenPos; - QSizeF size, sceneSize, screenSize; + QRectF rect, sceneRect, screenRect; qreal pressure; static QTouchEventTouchPointPrivate *get(const QTouchEvent::TouchPoint &tp); -- cgit v0.12