bool MyScrollArea::event(QEvent *event) { #if QT_VERSION >= 0x040600 //for some reason the panning gesture is handled in qscrollarea //we add pinch gesture: static int ignore_gesture = 0; if(event->type() == QEvent::Gesture && ignore_gesture == 0 && mw->pvbtab[mw->currentTab].s != -1) { QGestureEvent *ge = static_cast<QGestureEvent*>(event); if(QGesture *ge_pinch = ge->gesture(Qt::PinchGesture)) { static int mod = 0; // only respond to every 5'th pinch gesture QPinchGesture *pinch=static_cast<QPinchGesture *>(ge_pinch); int percent = mw->pvbtab[mw->currentTab].interpreter.percentZoomMask; int old_percent = percent; if (pinch->scaleFactor() < 0.99f) percent -= 5; else if(pinch->scaleFactor() > 1.01f) percent += 5; if(percent<10) percent=10; else if(percent>250) percent=250; //char buf[1024]; //sprintf(buf,"percent=%d old_percent=%d scaleFactor=%f", percent, old_percent, pinch->scaleFactor()); //mw->statusBar()->showMessage(buf); mod++; if(percent != old_percent && (mod % 5) == 0 && ignore_gesture == 0) { ignore_gesture = 1; mod = 0; mw->pvbtab[mw->currentTab].interpreter.zoomMask(percent); // will set ...interpreter.percentZoomMask int width = (mw->pvbtab[mw->currentTab].w * percent) / 100; // these lines int height = (mw->pvbtab[mw->currentTab].h * percent) / 100; // should if(mw->pvbtab[mw->currentTab].rootWidget != NULL) // mw->pvbtab[mw->currentTab].rootWidget->resize(width, height); // resize QEvent resize_event(QEvent::Resize); // scrollbars QApplication::sendEvent(mw, &resize_event); // correctly qApp->processEvents(); ignore_gesture = 0; } ge->accept(); return true; } else if(ignore_gesture == 1) { ge->accept(); return true; } } #endif return QScrollArea::event(event); }
static PyObject *meth_QGestureEvent_accept(PyObject *sipSelf, PyObject *sipArgs) { PyObject *sipParseErr = NULL; { QGestureEvent *sipCpp; if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QGestureEvent, &sipCpp)) { sipCpp->accept(); Py_INCREF(Py_None); return Py_None; } } { QGesture* a0; QGestureEvent *sipCpp; if (sipParseArgs(&sipParseErr, sipArgs, "BJ8", &sipSelf, sipType_QGestureEvent, &sipCpp, sipType_QGesture, &a0)) { sipCpp->accept(a0); Py_INCREF(Py_None); return Py_None; } } { Qt::GestureType a0; QGestureEvent *sipCpp; if (sipParseArgs(&sipParseErr, sipArgs, "BE", &sipSelf, sipType_QGestureEvent, &sipCpp, sipType_Qt_GestureType, &a0)) { sipCpp->accept(a0); Py_INCREF(Py_None); return Py_None; } } /* Raise an exception if the arguments couldn't be parsed. */ sipNoMethod(sipParseErr, sipName_QGestureEvent, sipName_accept, doc_QGestureEvent_accept); return NULL; }
bool DashboardWindowContainer::sceneEvent(QEvent* event) { if (event->type() == QEvent::GestureOverride) { QGestureEvent* ge = static_cast<QGestureEvent*>(event); ge->accept(); return true; } else if (event->type() == QEvent::Gesture) { QGesture* g = static_cast<QGestureEvent*>(event)->gesture(Qt::TapGesture); if (g) { QTapGesture* tap = static_cast<QTapGesture*>(g); if (tap->state() == Qt::GestureFinished) { handleTap(mapFromScene(tap->position())); } return true; } if(!m_isMenu) { #if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) g = static_cast<QGestureEvent*>(event)->gesture((Qt::GestureType) SysMgrGestureFlick); #else g = static_cast<QGestureEvent*>(event)->gesture(FlickGesture::gestureType()); #endif if (g) { FlickGesture* flick = static_cast<FlickGesture*>(g); if (flick->state() == Qt::GestureFinished) { bool flick_delete = abs(flick->velocity().x()) > abs(flick->velocity().y()); if (flick_delete) { if (DashboardWindow* w = m_draggedWindow.data()) { m_draggedWindow.clear(); if (!w->persistent()) { m_seenFlick = true; triggerItemDelete(w); } } } } return true; } } } else if (event->type() == QEvent::TouchBegin) { return true; } else if (event->type() == QEvent::TouchUpdate) { return true; } else if (event->type() == QEvent::TouchEnd){ return true; } return QGraphicsObject::sceneEvent(event); }
//virtual bool PixButton::sceneEvent(QEvent * event) { if (event->type() == QEvent::GestureOverride) { QGestureEvent* ge = static_cast<QGestureEvent*>(event); ge->accept(); return true; } else if (event->type() == QEvent::Gesture) { QGestureEvent* ge = static_cast<QGestureEvent*>(event); QGesture * g = 0; g = ge->gesture(Qt::TapGesture); if (g) { QTapGesture* tap = static_cast<QTapGesture*>(g); if (tap->state() == Qt::GestureFinished) { tapGesture(tap); } return true; } g = ge->gesture(Qt::TapAndHoldGesture); if (g) { QTapAndHoldGesture* hold = static_cast<QTapAndHoldGesture*>(g); if (hold->state() == Qt::GestureFinished) { tapAndHoldGesture(hold); } return true; } } else if (event->type() == QEvent::TouchBegin) { return touchStartEvent(static_cast<QTouchEvent *>(event)); } else if (event->type() == QEvent::TouchUpdate) { return touchUpdateEvent(static_cast<QTouchEvent *>(event)); } else if (event->type() == QEvent::TouchEnd) { return touchEndEvent(static_cast<QTouchEvent *>(event)); } return QGraphicsObject::sceneEvent(event); }
bool PageTabBar::sceneEvent(QEvent* event) { if (event->type() == QEvent::GestureOverride) { QGestureEvent* ge = static_cast<QGestureEvent*>(event); ge->accept(); return true; } else if (event->type() == QEvent::Gesture) { QGestureEvent* ge = static_cast<QGestureEvent*>(event); QGesture * g = 0; // QGesture* g = ge->gesture(Qt::TapGesture); // if (g) { // QTapGesture* tap = static_cast<QTapGesture*>(g); // if (tap->state() == Qt::GestureFinished) { // tapGestureEvent(tap); // } // return true; // } // g = ge->gesture(Qt::TapAndHoldGesture); // if (g) { // QTapAndHoldGesture* hold = static_cast<QTapAndHoldGesture*>(g); // if (hold->state() == Qt::GestureFinished) { // tapAndHoldGestureEvent(hold); // } // return true; // } #if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) g = ge->gesture((Qt::GestureType) SysMgrGestureFlick); #else g = ge->gesture(FlickGesture::gestureType()); #endif if (g) { FlickGesture* flick = static_cast<FlickGesture*>(g); if (flick->state() == Qt::GestureFinished) { flickGesture(flick); } return true; } } return QGraphicsObject::sceneEvent(event); }
bool MenuWindowManager::sceneEvent(QEvent* event) { switch (event->type()) { case QEvent::GestureOverride: { QGestureEvent* ge = static_cast<QGestureEvent*>(event); QList<QGesture*> activeGestures = ge->activeGestures(); Q_FOREACH(QGesture* g, activeGestures) { if (g->hasHotSpot()) { QPointF pt = ge->mapToGraphicsScene(g->hotSpot()); if (m_systemMenuOpened || (!m_winArray.empty() && m_positiveSpace.contains(pt.x() - boundingRect().x(), pt.y() - boundingRect().y()))) { ge->accept(g); } else { ge->ignore(g); } } } break; } case QEvent::Gesture: { QGestureEvent* ge = static_cast<QGestureEvent*>(event); #if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) QGesture* g = ge->gesture((Qt::GestureType) SysMgrGestureFlick); #else QGesture* g = ge->gesture(FlickGesture::gestureType()); #endif if (g && g->state() == Qt::GestureFinished) { flickGestureEvent(ge); return true; } } default: break; } return WindowManagerBase::sceneEvent(event); }
bool viewportEvent(QEvent *event) { if (event->type() == QEvent::Gesture) { QGestureEvent *ge = static_cast<QGestureEvent *>(event); if (QPanGesture *pan = static_cast<QPanGesture *>(ge->gesture(Qt::PanGesture))) { switch (pan->state()) { case Qt::GestureStarted: qDebug("view: Pan: started"); break; case Qt::GestureFinished: qDebug("view: Pan: finished"); break; case Qt::GestureCanceled: qDebug("view: Pan: canceled"); break; case Qt::GestureUpdated: break; default: qDebug("view: Pan: <unknown state>"); break; } const QPointF delta = pan->delta(); QScrollBar *vbar = verticalScrollBar(); QScrollBar *hbar = horizontalScrollBar(); vbar->setValue(vbar->value() - delta.y()); hbar->setValue(hbar->value() - delta.x()); ge->accept(pan); return true; } } return QGraphicsView::viewportEvent(event); }
bool PageTab::sceneEvent(QEvent* event) { if (event->type() == QEvent::GestureOverride) { QGestureEvent* ge = static_cast<QGestureEvent*>(event); ge->accept(); return true; } else if (event->type() == QEvent::Gesture) { QGestureEvent* ge = static_cast<QGestureEvent*>(event); QGesture* g = ge->gesture(Qt::TapGesture); if (g) { QTapGesture* tap = static_cast<QTapGesture*>(g); if (tap->state() == Qt::GestureFinished) { tapGesture(tap,ge); } return true; } g = ge->gesture(Qt::TapAndHoldGesture); if (g) { QTapAndHoldGesture* hold = static_cast<QTapAndHoldGesture*>(g); if (hold->state() == Qt::GestureFinished) { tapAndHoldGesture(hold,ge); } return true; } // g = ge->gesture((Qt::GestureType) SysMgrGestureFlick); // if (g) { // FlickGesture* flick = static_cast<FlickGesture*>(g); // if (flick->state() == Qt::GestureFinished) { // flickGesture(flick,ge); // } // return true; // } } return QGraphicsObject::sceneEvent(event); }