diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-12-05 11:26:25 +0200 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-12-05 12:00:39 +0200 |
commit | a665bdb2010c3833f47d364945007cccc00aed2b (patch) | |
tree | b364646695ccf068d409c785a10531e04f3c261d /src/datavisualization/input | |
parent | e57ed8602ac02ff86e3c08362ca4fbe23fe05bfb (diff) |
QML docs + enum moving
Task-number: QTRD-2670
Task-number: QTRD-2505
Change-Id: I51a870f9a57b093e8216759a5577e161ff3afd60
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/input')
5 files changed, 75 insertions, 33 deletions
diff --git a/src/datavisualization/input/q3dinputhandler.cpp b/src/datavisualization/input/q3dinputhandler.cpp index ec00ae1f..53a66b52 100644 --- a/src/datavisualization/input/q3dinputhandler.cpp +++ b/src/datavisualization/input/q3dinputhandler.cpp @@ -91,14 +91,14 @@ void Q3DInputHandler::mousePressEvent(QMouseEvent *event, const QPoint &mousePos if (Qt::LeftButton == event->button()) { if (scene()->isSlicingActive()) { if (scene()->isPointInPrimarySubView(mousePos)) { - setInputState(QDataVis::InputStateOnOverview); + setInputState(InputStateOnPrimaryView); } else if (scene()->isPointInSecondarySubView(mousePos)) { - setInputState(QDataVis::InputStateOnSlice); + setInputState(InputStateOnSecondaryView); } else { - setInputState(QDataVis::InputStateNone); + setInputState(InputStateNone); } } else { - setInputState(QDataVis::InputStateOnScene); + setInputState(InputStateOnScene); // update mouse positions to prevent jumping when releasing or repressing a button setInputPosition(mousePos); scene()->setSelectionQueryPosition(mousePos); @@ -109,7 +109,7 @@ void Q3DInputHandler::mousePressEvent(QMouseEvent *event, const QPoint &mousePos } else if (Qt::RightButton == event->button()) { // disable rotating when in slice view if (!scene()->isSlicingActive()) - setInputState(QDataVis::InputStateRotating); + setInputState(InputStateRotating); // update mouse positions to prevent jumping when releasing or repressing a button setInputPosition(mousePos); } @@ -126,11 +126,11 @@ void Q3DInputHandler::mouseReleaseEvent(QMouseEvent *event, const QPoint &mouseP #if defined (Q_OS_ANDROID) Q_UNUSED(mousePos); #else - if (QDataVis::InputStateRotating == inputState()) { + if (InputStateRotating == inputState()) { // update mouse positions to prevent jumping when releasing or repressing a button setInputPosition(mousePos); } - setInputState(QDataVis::InputStateNone); + setInputState(InputStateNone); #endif } @@ -144,7 +144,7 @@ void Q3DInputHandler::mouseMoveEvent(QMouseEvent *event, const QPoint &mousePos) #if defined (Q_OS_ANDROID) Q_UNUSED(mousePos); #else - if (QDataVis::InputStateRotating == inputState()) { + if (InputStateRotating == inputState()) { // Calculate mouse movement since last frame float xRotation = scene()->activeCamera()->xRotation(); float yRotation = scene()->activeCamera()->yRotation(); diff --git a/src/datavisualization/input/qabstract3dinputhandler.cpp b/src/datavisualization/input/qabstract3dinputhandler.cpp index 8a8313ef..0aa8372c 100644 --- a/src/datavisualization/input/qabstract3dinputhandler.cpp +++ b/src/datavisualization/input/qabstract3dinputhandler.cpp @@ -20,15 +20,46 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE /*! - \class QAbstract3DInputHandler - \inmodule QtDataVisualization - \brief The base class for implementations of input handlers. - \since Qt Data Visualization 1.0 + * \class QAbstract3DInputHandler + * \inmodule QtDataVisualization + * \brief The base class for implementations of input handlers. + * \since Qt Data Visualization 1.0 + * + * QAbstract3DInputHandler is the base class that is subclassed by different input handling implementations + * that take input events and translate those to camera and light movements. Input handlers also translate + * raw input events to slicing and selection events in the scene. + */ + +/*! + * \enum QAbstract3DInputHandler::InputState + * + * Predefined input states for mouse and touch based input handlers. All states are not valid + * with all input handlers. + * + * \value InputStateNone + * Default "no input received" state. + * \value InputStateOnScene + * Mouse or touch input received on the 3D scene. + * \value InputStateOnPrimaryView + * Mouse or touch input received on the primary view area. + * \value InputStateOnSecondaryView + * Mouse or touch input received on the secondary view area. + * \value InputStateRotating + * Rotation of the 3D geometry ongoing. + * \value InputStatePinching + * Pinch/punch multitouch input ongoing. + */ - QAbstract3DInputHandler is the base class that is subclassed by different input handling implementations - that take input events and translate those to camera and light movements. Input handlers also translate - raw input events to slicing and selection events in the scene. -*/ +/*! + * \qmltype AbstractInputHandler3D + * \inqmlmodule QtDataVisualization + * \since QtDataVisualization 1.0 + * \ingroup datavisualization_qml + * \instantiates QAbstract3DInputHandler + * \brief Base type for all QtDataVisualization input handlers. + * + * This type is uncreatable. + */ /*! * Constructs the base class. An optional \a parent parameter can be given @@ -112,12 +143,12 @@ void QAbstract3DInputHandler::wheelEvent(QWheelEvent *event) * Current enumerated input state based on the processed input events. * When the state changes inputStateChanged() is emitted. */ -QDataVis::InputState QAbstract3DInputHandler::inputState() +QAbstract3DInputHandler::InputState QAbstract3DInputHandler::inputState() { return d_ptr->m_inputState; } -void QAbstract3DInputHandler::setInputState(QDataVis::InputState inputState) +void QAbstract3DInputHandler::setInputState(InputState inputState) { if (inputState != d_ptr->m_inputState) { d_ptr->m_inputState = inputState; @@ -201,7 +232,7 @@ QAbstract3DInputHandlerPrivate::QAbstract3DInputHandlerPrivate(QAbstract3DInputH q_ptr(q), m_prevDistance(0), m_previousInputPos(QPoint(0,0)), - m_inputState(QDataVis::InputStateNone), + m_inputState(QAbstract3DInputHandler::InputStateNone), m_inputPosition(QPoint(0,0)), m_scene(0) { diff --git a/src/datavisualization/input/qabstract3dinputhandler.h b/src/datavisualization/input/qabstract3dinputhandler.h index fed6e3e0..313abef3 100644 --- a/src/datavisualization/input/qabstract3dinputhandler.h +++ b/src/datavisualization/input/qabstract3dinputhandler.h @@ -30,11 +30,22 @@ class QAbstract3DInputHandlerPrivate; class QT_DATAVISUALIZATION_EXPORT QAbstract3DInputHandler : public QObject { Q_OBJECT - Q_PROPERTY(QtDataVisualization::QDataVis::InputState inputState READ inputState WRITE setInputState NOTIFY inputStateChanged) + Q_ENUMS(InputState) + Q_PROPERTY(InputState inputState READ inputState WRITE setInputState NOTIFY inputStateChanged) Q_PROPERTY(QPoint inputPosition READ inputPosition WRITE setInputPosition NOTIFY positionChanged) Q_PROPERTY(Q3DScene *scene READ scene WRITE setScene NOTIFY sceneChanged) public: + enum InputState { + InputStateNone = 0, + InputStateOnScene, + InputStateOnPrimaryView, + InputStateOnSecondaryView, + InputStateRotating, + InputStatePinching + }; + +public: explicit QAbstract3DInputHandler(QObject *parent = 0); virtual ~QAbstract3DInputHandler(); @@ -48,8 +59,8 @@ public: public: // TODO: Check if the inputState needs to be visible outside of subclasses in the final architecture - QDataVis::InputState inputState(); - void setInputState(QDataVis::InputState inputState); + InputState inputState(); + void setInputState(InputState inputState); QPoint inputPosition() const; void setInputPosition(const QPoint &position); @@ -59,7 +70,7 @@ public: signals: void positionChanged(QPoint position); - void inputStateChanged(QDataVis::InputState state); + void inputStateChanged(InputState state); void sceneChanged(const Q3DScene *scene); protected: diff --git a/src/datavisualization/input/qabstract3dinputhandler_p.h b/src/datavisualization/input/qabstract3dinputhandler_p.h index cad1c667..205abf66 100644 --- a/src/datavisualization/input/qabstract3dinputhandler_p.h +++ b/src/datavisualization/input/qabstract3dinputhandler_p.h @@ -53,7 +53,7 @@ public: GLfloat m_defaultYRotation; private: - QDataVis::InputState m_inputState; + QAbstract3DInputHandler::InputState m_inputState; QPoint m_inputPosition; QRect m_mainViewPort; diff --git a/src/datavisualization/input/qtouch3dinputhandler.cpp b/src/datavisualization/input/qtouch3dinputhandler.cpp index b36fdb99..32b8c609 100644 --- a/src/datavisualization/input/qtouch3dinputhandler.cpp +++ b/src/datavisualization/input/qtouch3dinputhandler.cpp @@ -99,18 +99,18 @@ void QTouch3DInputHandler::touchEvent(QTouchEvent *event) if (event->type() == QEvent::TouchBegin) { if (scene()->isSlicingActive()) { if (scene()->isPointInPrimarySubView(pointerPos.toPoint())) - setInputState(QDataVis::InputStateOnOverview); + setInputState(InputStateOnPrimaryView); else if (scene()->isPointInSecondarySubView(pointerPos.toPoint())) - setInputState(QDataVis::InputStateOnSlice); + setInputState(InputStateOnSecondaryView); else - setInputState(QDataVis::InputStateNone); + setInputState(InputStateNone); } else { // Handle possible tap-and-hold selection d_ptr->m_startHoldPos = pointerPos; d_ptr->m_touchHoldPos = d_ptr->m_startHoldPos; d_ptr->m_holdTimer->start(); // Start rotating - setInputState(QDataVis::InputStateRotating); + setInputState(InputStateRotating); setInputPosition(pointerPos.toPoint()); } } else if (event->type() == QEvent::TouchEnd) { @@ -151,7 +151,7 @@ void QTouch3DInputHandlerPrivate::handlePinchZoom(float distance) int prevDist = q_ptr->prevDistance(); if (prevDist > 0 && qAbs(prevDist - newDistance) < maxPinchJitter) return; - q_ptr->setInputState(QDataVis::InputStateOnPinch); + q_ptr->setInputState(QAbstract3DInputHandler::InputStatePinching); Q3DCamera *camera = q_ptr->scene()->activeCamera(); int zoomLevel = camera->zoomLevel(); float zoomRate = qSqrt(qSqrt(zoomLevel)); @@ -172,7 +172,7 @@ void QTouch3DInputHandlerPrivate::handleTapAndHold() QPointF distance = m_startHoldPos - m_touchHoldPos; if (distance.manhattanLength() < maxTapAndHoldJitter) { q_ptr->setInputPosition(m_touchHoldPos.toPoint()); - q_ptr->setInputState(QDataVis::InputStateOnScene); + q_ptr->setInputState(QAbstract3DInputHandler::InputStateOnScene); } } @@ -180,16 +180,16 @@ void QTouch3DInputHandlerPrivate::handleSelection(const QPointF &position) { QPointF distance = m_startHoldPos - position; if (distance.manhattanLength() < maxSelectionJitter) - q_ptr->setInputState(QDataVis::InputStateOnScene); + q_ptr->setInputState(QAbstract3DInputHandler::InputStateOnScene); else - q_ptr->setInputState(QDataVis::InputStateNone); + q_ptr->setInputState(QAbstract3DInputHandler::InputStateNone); q_ptr->setPreviousInputPos(position.toPoint()); q_ptr->scene()->setSelectionQueryPosition(position.toPoint()); } void QTouch3DInputHandlerPrivate::handleRotation(const QPointF &position) { - if (QDataVis::InputStateRotating == q_ptr->inputState()) { + if (QAbstract3DInputHandler::InputStateRotating == q_ptr->inputState()) { Q3DScene *scene = q_ptr->scene(); Q3DCamera *camera = scene->activeCamera(); float xRotation = camera->xRotation(); |