diff options
Diffstat (limited to 'testapp/main.cpp')
-rw-r--r-- | testapp/main.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/testapp/main.cpp b/testapp/main.cpp index c08c745..3dd4e1e 100644 --- a/testapp/main.cpp +++ b/testapp/main.cpp @@ -16,6 +16,7 @@ #endif #include "qscrollareakineticscroller.h" +#include <qflickgesture.h> #include "qwebviewkineticscroller.h" #include "settingswidget.h" @@ -120,6 +121,12 @@ private: QKineticScroller *installKineticScroller(QWidget *w) { + static Qt::GestureType gestureType = (Qt::GestureType)0; + // need to register the gesture type + if( !gestureType ) { + gestureType = QGestureRecognizer::registerRecognizer( new QFlickGestureRecognizer() ); + } + #if defined(Q_WS_MAEMO_5) // remove the old kinetic scroller if any QAbstractKineticScroller *oldScroller = w->property("kineticScroller").value<QAbstractKineticScroller *>(); @@ -127,13 +134,13 @@ private: #endif // set a new kinetic scroller if (QAbstractScrollArea *area = qobject_cast<QAbstractScrollArea *>(w)) { - QScrollAreaKineticScroller *newScroller = new QScrollAreaKineticScroller(); - newScroller->setWidget(area); + area->viewport()->grabGesture(gestureType); + QKineticScroller *newScroller = new QKineticScroller(area); w->setProperty("kineticScroller", QVariant::fromValue(static_cast<QKineticScroller*>(newScroller)) ); return newScroller; } else if (QWebView *web = qobject_cast<QWebView *>(w)) { - QWebViewKineticScroller *newScroller = new QWebViewKineticScroller(); - newScroller->setWidget(web); + web->grabGesture(gestureType); + QKineticScroller *newScroller = new QKineticScroller(web); w->setProperty("kineticScroller", QVariant::fromValue(static_cast<QKineticScroller*>(newScroller)) ); return newScroller; } else { |