* Does also shift the center point horizontally, if required.
*
* @param coordinate Scene coordinates of the new center point
- * @param isUserDragAction True if caused by user dragging action. Does not shift the center
- * point if true.
*/
- void centerToSceneCoordinates(const SceneCoordinate &coordinate, bool isUserDragAction = false);
+ void centerToSceneCoordinates(const SceneCoordinate &coordinate);
/**
* @brief Set zoom level of the view
private:
/**
+ * @brief Returns the point which is considered by user as the visible center point
+ *
+ * Differs from view's center point when panel is open and view center point is shifted.
+ *
+ * @returns Center point
+ */
+ QPointF center() const;
+
+ /**
* @brief Set new view scale
*
* @param viewScale New scaling factor
void setViewShift(qreal viewShift);
/**
- * @brief Toggles the shifting of the center point
- *
- * @param enabled True if shifting is enabled
- */
- void toggleCenterShift(bool enabled);
-
- /**
* @brief Update center shifting value
*/
void updateCenterShift();
******************************************************************************/
signals:
/**
+ * @brief Emitted when map center point shiftin is changed
+ *
+ * @param shifting New shifting value
+ */
+ void horizontalShiftingChanged(int shifting);
+
+ /**
* @brief Signal for view resize events.
*
* Signal is emitted when view has been resized.
*
* Signal is emitted when view is scrolled.
* @param coordinate Scene coordinates of the new center point of the view
- * @param isUserDragAction True if caused by user dragging action
*/
- void viewScrolled(const SceneCoordinate &coordinate, bool isUserDragAction);
+ void viewScrolled(const SceneCoordinate &coordinate);
/**
* @brief Signal for informing that zooming animation is finished
* DATA MEMBERS
******************************************************************************/
private:
- bool m_doubleTapZoomRunning; ///< Double tap zoom running flag
+ bool m_doubleTapZoomRunning; ///< Double tap zoom running flag
- int m_dragTime[VALUES]; ///< Table of mouse event durations
- int m_index; ///< Index of mouse event values tables
- int m_zoomLevel; ///< Current zoom level
+ int m_dragTime[VALUES]; ///< Table of mouse event durations
+ int m_index; ///< Current index of mouse event values table
+ int m_zoomLevel; ///< Current zoom level
- qreal m_centerHorizontalShiftViewPixels;
- qreal m_kineticMaxViewDistance; ///< Maximum kinetic scroll distance in view pixels
+ qreal m_centerHorizontalShiftViewPixels; ///< Center point horizontal shift in the view
+ qreal m_kineticMaxViewDistance; ///< Maximum kinetic scroll distance in view pixels
QParallelAnimationGroup *m_scrollAndZoomAnimation; ///< Double click zoom animation
- QPoint m_dragMovement[VALUES]; ///< Table of mouse event distances
- QPoint m_internalScenePosition; ///< New center position
- QPoint m_lastMouseEventScenePosition; ///< Previous mouse event position in the scene
- QPoint m_lastMouseEventViewPosition; ///< Previous mouse event position in the view
+ QPoint m_dragMovement[VALUES]; ///< Table of mouse event distances
+ QPoint m_internalScenePosition; ///< New center position (used for dragging)
+ QPoint m_lastMouseEventScenePosition; ///< Previous mouse event position in the scene
+ QPoint m_lastMouseEventViewPosition; ///< Previous mouse event position in the view
+ QPoint m_viewCenterPoint; ///< Center point of the MapView
- QPointF m_centerHorizontalShiftPoint; ///< Current amount of center point shifting
- QPointF m_centerHorizontalShiftEndValue;
+ QPointF m_centerHorizontalShiftPoint; ///< Current amount of center point shifting
- QPropertyAnimation *m_zoomAnimation; ///< Zoom animation
+ QPropertyAnimation *m_zoomAnimation; ///< Zoom animation
- QTime m_time; ///< Elapsed times in mouse events
+ QTime m_time; ///< Elapsed time between mouse events
QPropertyAnimation *m_centerShiftAnimation; ///< Animation for shifting the center point