⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 101179 in webkit


Ignore:
Timestamp:
Nov 25, 2011, 11:57:28 AM (15 years ago)
Author:
jesus@webkit.org
Message:

[Qt][WK2] Refactor GestureRecognizers to use QtWebPageEventHandler
https://bugs.webkit.org/show_bug.cgi?id=73096

Reviewed by Kenneth Rohde Christiansen.

Move all the interaction engine usage to QtWebPageEventHandler,
making all GestureRecognizers (Tap, Pinch and Pan) use it directly.

  • UIProcess/qt/QtGestureRecognizer.cpp:

(WebKit::QtGestureRecognizer::QtGestureRecognizer):

  • UIProcess/qt/QtGestureRecognizer.h:
  • UIProcess/qt/QtPanGestureRecognizer.cpp:

(WebKit::QtPanGestureRecognizer::QtPanGestureRecognizer):
(WebKit::QtPanGestureRecognizer::recognize):

  • UIProcess/qt/QtPanGestureRecognizer.h:
  • UIProcess/qt/QtPinchGestureRecognizer.cpp:

(WebKit::QtPinchGestureRecognizer::QtPinchGestureRecognizer):
(WebKit::QtPinchGestureRecognizer::recognize):

  • UIProcess/qt/QtPinchGestureRecognizer.h:
  • UIProcess/qt/QtTapGestureRecognizer.cpp:

(WebKit::QtTapGestureRecognizer::QtTapGestureRecognizer):
(WebKit::QtTapGestureRecognizer::recognize):
(WebKit::QtTapGestureRecognizer::tapTimeout):

  • UIProcess/qt/QtTapGestureRecognizer.h:
  • UIProcess/qt/QtWebPageEventHandler.cpp:

(QtWebPageEventHandler::QtWebPageEventHandler):
(QtWebPageEventHandler::setViewportInteractionEngine):

  • UIProcess/qt/QtWebPageEventHandler.h:

(QtWebPageEventHandler::interactionEngine):

Location:
trunk/Source/WebKit2
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r101178 r101179  
     12011-11-25  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
     2
     3        [Qt][WK2] Refactor GestureRecognizers to use QtWebPageEventHandler
     4        https://bugs.webkit.org/show_bug.cgi?id=73096
     5
     6        Reviewed by Kenneth Rohde Christiansen.
     7
     8        Move all the interaction engine usage to QtWebPageEventHandler,
     9        making all GestureRecognizers (Tap, Pinch and Pan) use it directly.
     10
     11        * UIProcess/qt/QtGestureRecognizer.cpp:
     12        (WebKit::QtGestureRecognizer::QtGestureRecognizer):
     13        * UIProcess/qt/QtGestureRecognizer.h:
     14        * UIProcess/qt/QtPanGestureRecognizer.cpp:
     15        (WebKit::QtPanGestureRecognizer::QtPanGestureRecognizer):
     16        (WebKit::QtPanGestureRecognizer::recognize):
     17        * UIProcess/qt/QtPanGestureRecognizer.h:
     18        * UIProcess/qt/QtPinchGestureRecognizer.cpp:
     19        (WebKit::QtPinchGestureRecognizer::QtPinchGestureRecognizer):
     20        (WebKit::QtPinchGestureRecognizer::recognize):
     21        * UIProcess/qt/QtPinchGestureRecognizer.h:
     22        * UIProcess/qt/QtTapGestureRecognizer.cpp:
     23        (WebKit::QtTapGestureRecognizer::QtTapGestureRecognizer):
     24        (WebKit::QtTapGestureRecognizer::recognize):
     25        (WebKit::QtTapGestureRecognizer::tapTimeout):
     26        * UIProcess/qt/QtTapGestureRecognizer.h:
     27        * UIProcess/qt/QtWebPageEventHandler.cpp:
     28        (QtWebPageEventHandler::QtWebPageEventHandler):
     29        (QtWebPageEventHandler::setViewportInteractionEngine):
     30        * UIProcess/qt/QtWebPageEventHandler.h:
     31        (QtWebPageEventHandler::interactionEngine):
     32
    1332011-11-25  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
    234
  • trunk/Source/WebKit2/UIProcess/qt/QtGestureRecognizer.cpp

    r99845 r101179  
    2727#include "QtGestureRecognizer.h"
    2828
     29#include "QtWebPageEventHandler.h"
     30
    2931namespace WebKit {
    3032
    31 QtGestureRecognizer::QtGestureRecognizer(QtViewportInteractionEngine* viewportInteractionEngine)
    32     : m_viewportInteractionEngine(viewportInteractionEngine)
     33QtGestureRecognizer::QtGestureRecognizer(QtWebPageEventHandler* eventHandler)
     34    : m_eventHandler(eventHandler)
    3335    , m_state(NoGesture)
    3436{
     
    4042}
    4143
    42 void QtGestureRecognizer::setViewportInteractionEngine(QtViewportInteractionEngine* engine)
     44QtViewportInteractionEngine* QtGestureRecognizer::interactionEngine()
    4345{
    44     m_viewportInteractionEngine = engine;
     46    return m_eventHandler->interactionEngine();
    4547}
    4648
  • trunk/Source/WebKit2/UIProcess/qt/QtGestureRecognizer.h

    r99845 r101179  
    2727#define QtGestureRecognizer_h
    2828
     29class QtWebPageEventHandler;
     30
    2931namespace WebKit {
    3032
     
    3638
    3739protected:
    38     QtGestureRecognizer(QtViewportInteractionEngine*);
    39     void setViewportInteractionEngine(QtViewportInteractionEngine*);
     40    QtGestureRecognizer(QtWebPageEventHandler*);
    4041    void reset();
    4142
    42     QtViewportInteractionEngine* m_viewportInteractionEngine;
     43    QtWebPageEventHandler* m_eventHandler;
    4344    enum State {
    4445        NoGesture,
     
    4647        GestureRecognized
    4748    } m_state;
     49
     50    QtViewportInteractionEngine* interactionEngine();
    4851};
    4952
  • trunk/Source/WebKit2/UIProcess/qt/QtPanGestureRecognizer.cpp

    r99845 r101179  
    2727#include "QtPanGestureRecognizer.h"
    2828
    29 #include "QtViewportInteractionEngine.h"
     29#include "QtWebPageEventHandler.h"
    3030#include <QTouchEvent>
    3131
    3232namespace WebKit {
    3333
    34 QtPanGestureRecognizer::QtPanGestureRecognizer(QtViewportInteractionEngine* interactionEngine)
    35     : QtGestureRecognizer(interactionEngine)
     34QtPanGestureRecognizer::QtPanGestureRecognizer(QtWebPageEventHandler* eventHandler)
     35    : QtGestureRecognizer(eventHandler)
    3636{
    37     reset();
    38 }
    39 
    40 void QtPanGestureRecognizer::setViewportInteractionEngine(QtViewportInteractionEngine* engine)
    41 {
    42     QtGestureRecognizer::setViewportInteractionEngine(engine);
    4337    reset();
    4438}
     
    4640bool QtPanGestureRecognizer::recognize(const QTouchEvent* event, qint64 eventTimestampMillis)
    4741{
    48     if (!m_viewportInteractionEngine)
     42    if (interactionEngine())
    4943        return false;
    5044
     
    5751    if (event->touchPoints().size() > 1) {
    5852        if (m_state == GestureRecognized)
    59             m_viewportInteractionEngine->panGestureCancelled();
     53            interactionEngine()->panGestureCancelled();
    6054        reset();
    6155        return false;
     
    8074
    8175            m_state = GestureRecognized;
    82             m_viewportInteractionEngine->panGestureStarted(touchPoint.pos(), eventTimestampMillis);
     76            interactionEngine()->panGestureStarted(touchPoint.pos(), eventTimestampMillis);
    8377        }
    8478
    8579        ASSERT(m_state == GestureRecognized);
    86         m_viewportInteractionEngine->panGestureRequestUpdate(touchPoint.pos(), eventTimestampMillis);
     80        interactionEngine()->panGestureRequestUpdate(touchPoint.pos(), eventTimestampMillis);
    8781        return true;
    8882    }
    8983    case QEvent::TouchEnd:
    9084        if (m_state == GestureRecognized) {
    91             m_viewportInteractionEngine->panGestureEnded(touchPoint.pos(), eventTimestampMillis);
     85            interactionEngine()->panGestureEnded(touchPoint.pos(), eventTimestampMillis);
    9286            reset();
    9387            return true;
  • trunk/Source/WebKit2/UIProcess/qt/QtPanGestureRecognizer.h

    r99845 r101179  
    4242class QtPanGestureRecognizer : public QtGestureRecognizer {
    4343public:
    44     QtPanGestureRecognizer(QtViewportInteractionEngine*);
    45     void setViewportInteractionEngine(QtViewportInteractionEngine*);
     44    QtPanGestureRecognizer(QtWebPageEventHandler*);
    4645    bool recognize(const QTouchEvent*, qint64 eventTimestampMillis);
    4746    void reset();
  • trunk/Source/WebKit2/UIProcess/qt/QtPinchGestureRecognizer.cpp

    r99845 r101179  
    2727#include "QtPinchGestureRecognizer.h"
    2828
    29 #include "QtViewportInteractionEngine.h"
     29#include "QtWebPageEventHandler.h"
    3030#include <QtCore/QLineF>
    3131
     
    5050}
    5151
    52 QtPinchGestureRecognizer::QtPinchGestureRecognizer(QtViewportInteractionEngine* interactionEngine)
    53     : QtGestureRecognizer(interactionEngine)
     52QtPinchGestureRecognizer::QtPinchGestureRecognizer(QtWebPageEventHandler* eventHandler)
     53    : QtGestureRecognizer(eventHandler)
    5454{
    5555    reset();
     
    5858bool QtPinchGestureRecognizer::recognize(const QTouchEvent* event)
    5959{
    60     if (!m_viewportInteractionEngine)
     60    if (!interactionEngine())
    6161        return false;
    6262
     
    6464    if (touchPoints.size() < 2) {
    6565        if (m_state == GestureRecognized)
    66             m_viewportInteractionEngine->pinchGestureEnded();
     66            interactionEngine()->pinchGestureEnded();
    6767        reset();
    6868        return false;
     
    100100                    return false;
    101101                m_state = GestureRecognized;
    102                 m_viewportInteractionEngine->pinchGestureStarted(computePinchCenter(point1, point2));
     102                interactionEngine()->pinchGestureStarted(computePinchCenter(point1, point2));
    103103
    104104                // We reset the initial position to the previous position in order to avoid the jump caused
     
    114114            const qreal totalScaleFactor = currentSpanDistance / initialSpanDistance;
    115115            const QPointF touchCenterInPageViewCoordinates = computePinchCenter(point1, point2);
    116             m_viewportInteractionEngine->pinchGestureRequestUpdate(touchCenterInPageViewCoordinates, totalScaleFactor);
     116            interactionEngine()->pinchGestureRequestUpdate(touchCenterInPageViewCoordinates, totalScaleFactor);
    117117            return true;
    118118            break;
     
    121121    case QEvent::TouchEnd:
    122122        if (m_state == GestureRecognized) {
    123             m_viewportInteractionEngine->pinchGestureEnded();
     123            interactionEngine()->pinchGestureEnded();
    124124            reset();
    125125            return true;
     
    132132
    133133    return false;
    134 }
    135 
    136 void QtPinchGestureRecognizer::setViewportInteractionEngine(QtViewportInteractionEngine* engine)
    137 {
    138     QtGestureRecognizer::setViewportInteractionEngine(engine);
    139     reset();
    140134}
    141135
  • trunk/Source/WebKit2/UIProcess/qt/QtPinchGestureRecognizer.h

    r99845 r101179  
    5151    };
    5252
    53     QtPinchGestureRecognizer(QtViewportInteractionEngine*);
    54     void setViewportInteractionEngine(QtViewportInteractionEngine*);
     53    QtPinchGestureRecognizer(QtWebPageEventHandler*);
    5554    bool recognize(const QTouchEvent*);
    5655    void reset();
  • trunk/Source/WebKit2/UIProcess/qt/QtTapGestureRecognizer.cpp

    r101164 r101179  
    2727
    2828#include "QtWebPageEventHandler.h"
    29 #include "QtViewportInteractionEngine.h"
    3029#include <QLineF>
    3130#include <QTouchEvent>
     
    3332namespace WebKit {
    3433
    35 QtTapGestureRecognizer::QtTapGestureRecognizer(QtViewportInteractionEngine* interactionEngine, QtWebPageEventHandler* eventHandler)
    36     : QtGestureRecognizer(interactionEngine)
    37     , m_eventHandler(eventHandler)
     34QtTapGestureRecognizer::QtTapGestureRecognizer(QtWebPageEventHandler* eventHandler)
     35    : QtGestureRecognizer(eventHandler)
    3836    , m_tapState(NoTap)
    3937{
    40     reset();
    41 }
    42 
    43 void QtTapGestureRecognizer::setViewportInteractionEngine(QtViewportInteractionEngine* engine)
    44 {
    45     QtGestureRecognizer::setViewportInteractionEngine(engine);
    4638    reset();
    4739}
  • trunk/Source/WebKit2/UIProcess/qt/QtTapGestureRecognizer.h

    r101164 r101179  
    5050class QtTapGestureRecognizer : public QObject, private QtGestureRecognizer {
    5151public:
    52     QtTapGestureRecognizer(QtViewportInteractionEngine*, QtWebPageEventHandler*);
    53     void setViewportInteractionEngine(QtViewportInteractionEngine*);
     52    QtTapGestureRecognizer(QtWebPageEventHandler*);
    5453    bool recognize(const QTouchEvent*, qint64 eventTimestampMillis);
    5554    void reset();
     
    6160
    6261private:
    63     QtWebPageEventHandler* m_eventHandler;
    6462    QBasicTimer m_doubleTapTimer;
    6563    QBasicTimer m_tapAndHoldTimer;
  • trunk/Source/WebKit2/UIProcess/qt/QtWebPageEventHandler.cpp

    r101164 r101179  
    8181    : m_webPageProxy(toImpl(pageRef))
    8282    , m_interactionEngine(viewportInteractionEngine)
    83     , m_panGestureRecognizer(viewportInteractionEngine)
    84     , m_pinchGestureRecognizer(viewportInteractionEngine)
    85     , m_tapGestureRecognizer(viewportInteractionEngine, this)
     83    , m_panGestureRecognizer(this)
     84    , m_pinchGestureRecognizer(this)
     85    , m_tapGestureRecognizer(this)
    8686{
    8787}
     
    304304{
    305305    m_interactionEngine = engine;
    306     m_panGestureRecognizer.setViewportInteractionEngine(engine);
    307     m_pinchGestureRecognizer.setViewportInteractionEngine(engine);
    308     m_tapGestureRecognizer.setViewportInteractionEngine(engine);
    309306}
    310307
  • trunk/Source/WebKit2/UIProcess/qt/QtWebPageEventHandler.h

    r101164 r101179  
    2525#include "QtPinchGestureRecognizer.h"
    2626#include "QtTapGestureRecognizer.h"
     27#include "QtViewportInteractionEngine.h"
    2728#include "WebPageProxy.h"
    2829#include <QBasicTimer>
     
    5455    void doneWithTouchEvent(const NativeWebTouchEvent&, bool wasEventHandled);
    5556    void resetGestureRecognizers();
     57
     58    QtViewportInteractionEngine* interactionEngine() { return m_interactionEngine; }
    5659
    5760protected:
Note: See TracChangeset for help on using the changeset viewer.