changed 3D rendering
added pan/zoom gesture
This commit is contained in:
@@ -30,6 +30,11 @@ MapView2D::MapView2D(QWidget* parent) : QOpenGLWidget(parent) {
|
||||
// defaults
|
||||
s.setScale(5);
|
||||
|
||||
// android
|
||||
setAttribute(Qt::WA_AcceptTouchEvents);
|
||||
grabGesture(Qt::PanGesture);
|
||||
grabGesture(Qt::PinchGesture);
|
||||
|
||||
}
|
||||
|
||||
void MapView2D::paintGL() {
|
||||
@@ -92,3 +97,57 @@ void MapView2D::mouseReleaseEvent(QMouseEvent* e) {
|
||||
tools.mouseReleaseEvent(this, e);
|
||||
update();
|
||||
}
|
||||
|
||||
|
||||
// android
|
||||
bool MapView2D::event(QEvent* event) {
|
||||
|
||||
if (event->type() == QEvent::Gesture) {
|
||||
return gestureEvent(static_cast<QGestureEvent*>(event));
|
||||
} else {
|
||||
return QWidget::event(event);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool MapView2D::gestureEvent(QGestureEvent* event) {
|
||||
//qCDebug(lcExample) << "gestureEvent():" << event;
|
||||
if (QGesture *swipe = event->gesture(Qt::SwipeGesture)) {
|
||||
//swipeTriggered(static_cast<QSwipeGesture *>(swipe));
|
||||
} else if (QGesture *pan = event->gesture(Qt::PanGesture))
|
||||
panTriggered(static_cast<QPanGesture *>(pan));
|
||||
if (QGesture *pinch = event->gesture(Qt::PinchGesture)) {
|
||||
pinchTriggered(static_cast<QPinchGesture *>(pinch));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void MapView2D::pinchTriggered(QPinchGesture* gesture) {
|
||||
|
||||
tools.pinchTriggered(this, gesture);
|
||||
update();
|
||||
|
||||
// QPinchGesture::ChangeFlags changeFlags = gesture->changeFlags();
|
||||
// if (changeFlags & QPinchGesture::RotationAngleChanged) {
|
||||
//// qreal rotationDelta = gesture->rotationAngle() - gesture->lastRotationAngle();
|
||||
//// rotationAngle += rotationDelta;
|
||||
//// qCDebug(lcExample) << "pinchTriggered(): rotate by" <<
|
||||
//// rotationDelta << "->" << rotationAngle;
|
||||
// }
|
||||
// if (changeFlags & QPinchGesture::ScaleFactorChanged) {
|
||||
//// currentStepScaleFactor = gesture->totalScaleFactor();
|
||||
//// qCDebug(lcExample) << "pinchTriggered(): zoom by" <<
|
||||
//// gesture->scaleFactor() << "->" << currentStepScaleFactor;
|
||||
// std::cout << gesture->totalScaleFactor() << std::endl;
|
||||
// }
|
||||
// if (gesture->state() == Qt::GestureFinished) {
|
||||
//// scaleFactor *= currentStepScaleFactor;
|
||||
//// currentStepScaleFactor = 1;
|
||||
// }
|
||||
// update();
|
||||
}
|
||||
|
||||
void MapView2D::panTriggered(QPanGesture* gesture) {
|
||||
tools.panTriggered(this, gesture);
|
||||
update();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user