Changeset 55025 in webkit


Ignore:
Timestamp:
Feb 19, 2010 11:47:00 AM (14 years ago)
Author:
eric@webkit.org
Message:

2010-02-19 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>

Reviewed by Kenneth Rohde Christiansen.

[Qt] Need a final integration between QtLauncher and QGVLauncher
https://bugs.webkit.org/show_bug.cgi?id=35161

Add animated flip support to QtLauncher when running on QGraphicsView mode.

  • QtLauncher/main.cpp: (LauncherWindow::initializeView): (LauncherWindow::setupUI):
  • QtLauncher/webview.cpp: (WebViewGraphicsBased::WebViewGraphicsBased): (WebViewGraphicsBased::animatedFlip): (WebViewGraphicsBased::animatedYFlip):
  • QtLauncher/webview.h: (WebViewGraphicsBased::setYRotation): (WebViewGraphicsBased::yRotation):
Location:
trunk/WebKitTools
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKitTools/ChangeLog

    r55019 r55025  
     12010-02-19  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
     2
     3        Reviewed by Kenneth Rohde Christiansen.
     4
     5        [Qt] Need a final integration between QtLauncher and QGVLauncher
     6        https://bugs.webkit.org/show_bug.cgi?id=35161
     7
     8        Add animated flip support to QtLauncher when running on QGraphicsView mode.
     9
     10        * QtLauncher/main.cpp:
     11        (LauncherWindow::initializeView):
     12        (LauncherWindow::setupUI):
     13        * QtLauncher/webview.cpp:
     14        (WebViewGraphicsBased::WebViewGraphicsBased):
     15        (WebViewGraphicsBased::animatedFlip):
     16        (WebViewGraphicsBased::animatedYFlip):
     17        * QtLauncher/webview.h:
     18        (WebViewGraphicsBased::setYRotation):
     19        (WebViewGraphicsBased::yRotation):
     20
    1212010-02-19  Andras Becsi  <abecsi@webkit.org>
    222
  • trunk/WebKitTools/QtLauncher/main.cpp

    r54721 r55025  
    134134
    135135    QAction* formatMenuAction;
     136    QAction* flipAnimated;
     137    QAction* flipYAnimated;
    136138
    137139#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
     
    462464            view->enableFrameRateMeasurement();
    463465        page()->settings()->setAttribute(QWebSettings::AcceleratedCompositingEnabled, gUseCompositing);
     466
     467        if (flipAnimated)
     468            connect(flipAnimated, SIGNAL(triggered()), view, SLOT(animatedFlip()));
     469
     470        if (flipYAnimated)
     471            connect(flipYAnimated, SIGNAL(triggered()), view, SLOT(animatedYFlip()));
     472
    464473        m_view = view;
    465474    }
     
    541550#endif
    542551
    543     QAction* toggleAcceleratedCompositing = toolsMenu->addAction("Toggle Accelerated Compositing", this, SLOT(toggleAcceleratedCompositing(bool)));
     552    QMenu* graphicsViewMenu = toolsMenu->addMenu("QGraphicsView");
     553    QAction* toggleGraphicsView = graphicsViewMenu->addAction("Toggle use of QGraphicsView", this, SLOT(initializeView(bool)));
     554    toggleGraphicsView->setCheckable(true);
     555    toggleGraphicsView->setChecked(false);
     556
     557    QAction* toggleAcceleratedCompositing = graphicsViewMenu->addAction("Toggle Accelerated Compositing", this, SLOT(toggleAcceleratedCompositing(bool)));
    544558    toggleAcceleratedCompositing->setCheckable(true);
    545559    toggleAcceleratedCompositing->setChecked(false);
    546 
    547     QAction* toggleGraphicsView = toolsMenu->addAction("Toggle use of QGraphicsView", this, SLOT(initializeView(bool)));
    548     toggleGraphicsView->setCheckable(true);
    549     toggleGraphicsView->setChecked(false);
     560    toggleAcceleratedCompositing->setEnabled(false);
     561    toggleAcceleratedCompositing->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool)));
     562
     563    graphicsViewMenu->addSeparator();
     564
     565    flipAnimated = graphicsViewMenu->addAction("Animated Flip");
     566    flipAnimated->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool)));
     567    flipAnimated->setEnabled(false);
     568
     569    flipYAnimated = graphicsViewMenu->addAction("Animated Y-Flip");
     570    flipYAnimated->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool)));
     571    flipYAnimated->setEnabled(false);
    550572}
    551573
  • trunk/WebKitTools/QtLauncher/webview.cpp

    r54708 r55025  
    4949    setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    5050
     51#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
     52    QStateMachine* machine = new QStateMachine(this);
     53    QState* s0 = new QState(machine);
     54    s0->assignProperty(this, "yRotation", 0);
     55
     56    QState* s1 = new QState(machine);
     57    s1->assignProperty(this, "yRotation", 90);
     58
     59    QAbstractTransition* t1 = s0->addTransition(this, SIGNAL(yFlipRequest()), s1);
     60    QPropertyAnimation* yRotationAnim = new QPropertyAnimation(this, "yRotation", this);
     61    yRotationAnim->setDuration(1000);
     62    t1->addAnimation(yRotationAnim);
     63
     64    QState* s2 = new QState(machine);
     65    s2->assignProperty(this, "yRotation", -90);
     66    s1->addTransition(s1, SIGNAL(propertiesAssigned()), s2);
     67
     68    QAbstractTransition* t2 = s2->addTransition(s0);
     69    t2->addAnimation(yRotationAnim);
     70
     71    machine->setInitialState(s0);
     72    machine->start();
     73#endif
    5174}
    5275
     
    82105    m_lastConsultTime = now;
    83106    m_numPaintsSinceLastMeasure = 0;
     107}
     108
     109void WebViewGraphicsBased::animatedFlip()
     110{
     111#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
     112    QSizeF center = m_item->boundingRect().size() / 2;
     113    QPointF centerPoint = QPointF(center.width(), center.height());
     114    m_item->setTransformOriginPoint(centerPoint);
     115
     116    QPropertyAnimation* animation = new QPropertyAnimation(m_item, "rotation", this);
     117    animation->setDuration(1000);
     118
     119    int rotation = int(m_item->rotation());
     120
     121    animation->setStartValue(rotation);
     122    animation->setEndValue(rotation + 180 - (rotation % 180));
     123
     124    animation->start(QAbstractAnimation::DeleteWhenStopped);
     125#endif
     126}
     127
     128void WebViewGraphicsBased::animatedYFlip()
     129{
     130    emit yFlipRequest();
    84131}
    85132
  • trunk/WebKitTools/QtLauncher/webview.h

    r54512 r55025  
    6767class WebViewGraphicsBased : public QGraphicsView {
    6868    Q_OBJECT
     69    Q_PROPERTY(qreal yRotation READ yRotation WRITE setYRotation)
    6970
    7071public:
     
    7778    virtual void paintEvent(QPaintEvent* event);
    7879
     80    void setYRotation(qreal angle)
     81    {
     82#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
     83        QRectF r = m_item->boundingRect();
     84        m_item->setTransform(QTransform()
     85            .translate(r.width() / 2, r.height() / 2)
     86            .rotate(angle, Qt::YAxis)
     87            .translate(-r.width() / 2, -r.height() / 2));
     88#endif
     89        m_yRotation = angle;
     90    }
     91    qreal yRotation() const
     92    {
     93        return m_yRotation;
     94    }
     95
    7996public slots:
    8097    void updateFrameRate();
     98    void animatedFlip();
     99    void animatedYFlip();
     100
     101signals:
     102    void yFlipRequest();
    81103
    82104private:
     
    87109    QTime m_lastConsultTime;
    88110    bool m_measureFps;
     111    qreal m_yRotation;
    89112};
    90113
Note: See TracChangeset for help on using the changeset viewer.