Changeset 90647 in webkit


Ignore:
Timestamp:
Jul 8, 2011 11:37:38 AM (13 years ago)
Author:
andreas.kling@nokia.com
Message:

[Qt][WK2] Views should expose QActions for basic navigation.
https://bugs.webkit.org/show_bug.cgi?id=64174

Source/WebKit2:

Add navigationAction() methods to the views to provide default
QActions for Back, Forward, Stop and Reload.

Reviewed by Benjamin Poulain.

  • UIProcess/API/qt/WKView.h:
  • UIProcess/API/qt/qdesktopwebview.cpp:

(QDesktopWebView::navigationAction):

  • UIProcess/API/qt/qdesktopwebview.h:
  • UIProcess/API/qt/qtouchwebpage.cpp:

(QTouchWebPage::navigationAction):

  • UIProcess/API/qt/qtouchwebpage.h:
  • UIProcess/API/qt/qwebkittypes.h: Added.
  • UIProcess/API/qt/tests/commonviewtests/tst_commonviewtests.cpp:

(tst_CommonViewTests::backAndForward):
(tst_CommonViewTests::reload):
(tst_CommonViewTests::stop):

  • UIProcess/API/qt/tests/commonviewtests/webviewabstraction.cpp:

(WebViewAbstraction::triggerNavigationAction):

  • UIProcess/API/qt/tests/commonviewtests/webviewabstraction.h:
  • UIProcess/API/qt/tests/html/basic_page2.html: Added.
  • UIProcess/qt/QtWebPageProxy.cpp:

(QtWebPageProxy::navigationAction):

  • UIProcess/qt/QtWebPageProxy.h:
  • WebKit2API.pri:

Tools:

Reviewed by Benjamin Poulain.

Bring the toolbar in Qt's MiniBrowser back to life.

  • MiniBrowser/qt/BrowserView.cpp:

(BrowserView::navigationAction):

  • MiniBrowser/qt/BrowserView.h:
  • MiniBrowser/qt/BrowserWindow.cpp:

(BrowserWindow::BrowserWindow):

Location:
trunk
Files:
2 added
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r90644 r90647  
     12011-07-08  Andreas Kling  <kling@webkit.org>
     2
     3        [Qt][WK2] Views should expose QActions for basic navigation.
     4        https://bugs.webkit.org/show_bug.cgi?id=64174
     5
     6        Add navigationAction() methods to the views to provide default
     7        QActions for Back, Forward, Stop and Reload.
     8
     9        Reviewed by Benjamin Poulain.
     10
     11        * UIProcess/API/qt/WKView.h:
     12        * UIProcess/API/qt/qdesktopwebview.cpp:
     13        (QDesktopWebView::navigationAction):
     14        * UIProcess/API/qt/qdesktopwebview.h:
     15        * UIProcess/API/qt/qtouchwebpage.cpp:
     16        (QTouchWebPage::navigationAction):
     17        * UIProcess/API/qt/qtouchwebpage.h:
     18        * UIProcess/API/qt/qwebkittypes.h: Added.
     19        * UIProcess/API/qt/tests/commonviewtests/tst_commonviewtests.cpp:
     20        (tst_CommonViewTests::backAndForward):
     21        (tst_CommonViewTests::reload):
     22        (tst_CommonViewTests::stop):
     23        * UIProcess/API/qt/tests/commonviewtests/webviewabstraction.cpp:
     24        (WebViewAbstraction::triggerNavigationAction):
     25        * UIProcess/API/qt/tests/commonviewtests/webviewabstraction.h:
     26        * UIProcess/API/qt/tests/html/basic_page2.html: Added.
     27        * UIProcess/qt/QtWebPageProxy.cpp:
     28        (QtWebPageProxy::navigationAction):
     29        * UIProcess/qt/QtWebPageProxy.h:
     30        * WebKit2API.pri:
     31
    1322011-07-08  Benjamin Poulain  <benjamin@webkit.org>
    233
  • trunk/Source/WebKit2/UIProcess/API/qt/WKView.h

    r90458 r90647  
    2121#define WKView_h
    2222
     23#include <WebKit2/qwebkittypes.h>
    2324#include <WebKit2/qdesktopwebview.h>
    2425#include <WebKit2/qtouchwebview.h>
  • trunk/Source/WebKit2/UIProcess/API/qt/qdesktopwebview.cpp

    r90572 r90647  
    185185}
    186186
     187QAction* QDesktopWebView::navigationAction(QtWebKit::NavigationAction which) const
     188{
     189    return d->page.navigationAction(which);
     190}
     191
    187192void QDesktopWebView::resizeEvent(QGraphicsSceneResizeEvent* ev)
    188193{
  • trunk/Source/WebKit2/UIProcess/API/qt/qdesktopwebview.h

    r90458 r90647  
    2323
    2424#include "qwebkitglobal.h"
     25#include "qwebkittypes.h"
    2526#include <WebKit2/WKBase.h>
    2627
     
    4546    QUrl url() const;
    4647    QString title() const;
     48
     49    QAction* navigationAction(QtWebKit::NavigationAction which) const;
    4750
    4851public Q_SLOTS:
  • trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebpage.cpp

    r90644 r90647  
    142142}
    143143
     144QAction* QTouchWebPage::navigationAction(QtWebKit::NavigationAction which)
     145{
     146    return d->page->navigationAction(which);
     147}
     148
    144149QTouchWebPagePrivate::QTouchWebPagePrivate(QTouchWebPage* view)
    145150    : q(view)
  • trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebpage.h

    r90458 r90647  
    2323
    2424#include "qwebkitglobal.h"
     25#include "qwebkittypes.h"
    2526
    2627#include <QGraphicsWidget>
     
    4849
    4950    Q_INVOKABLE QString title() const;
     51
     52    QAction* navigationAction(QtWebKit::NavigationAction which);
    5053
    5154    virtual void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*);
  • trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/tst_commonviewtests.cpp

    r90458 r90647  
    3434    void loadEmptyPageViewVisible();
    3535    void loadEmptyPageViewHidden();
     36    void backAndForward();
     37    void reload();
     38    void stop();
    3639
    3740    void show();
     
    8083}
    8184
     85void tst_CommonViewTests::backAndForward()
     86{
     87    viewAbstraction->load(QUrl::fromLocalFile(QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html")));
     88    QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded())));
     89
     90    QUrl url;
     91    QVERIFY(viewAbstraction->url(url));
     92    QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html"));
     93
     94    viewAbstraction->load(QUrl::fromLocalFile(QLatin1String(TESTS_SOURCE_DIR "/html/basic_page2.html")));
     95    QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded())));
     96
     97    QVERIFY(viewAbstraction->url(url));
     98    QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page2.html"));
     99
     100    viewAbstraction->triggerNavigationAction(QtWebKit::Back);
     101    QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded())));
     102
     103    QVERIFY(viewAbstraction->url(url));
     104    QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html"));
     105
     106    viewAbstraction->triggerNavigationAction(QtWebKit::Forward);
     107    QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded())));
     108
     109    QVERIFY(viewAbstraction->url(url));
     110    QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page2.html"));
     111}
     112
     113void tst_CommonViewTests::reload()
     114{
     115    viewAbstraction->load(QUrl::fromLocalFile(QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html")));
     116    QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded())));
     117
     118    QUrl url;
     119    QVERIFY(viewAbstraction->url(url));
     120    QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html"));
     121
     122    viewAbstraction->triggerNavigationAction(QtWebKit::Reload);
     123    QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded())));
     124
     125    QVERIFY(viewAbstraction->url(url));
     126    QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html"));
     127}
     128
     129void tst_CommonViewTests::stop()
     130{
     131    viewAbstraction->load(QUrl::fromLocalFile(QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html")));
     132    QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded())));
     133
     134    QUrl url;
     135    QVERIFY(viewAbstraction->url(url));
     136    QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html"));
     137
     138    // FIXME: This test should be fleshed out. Right now it's just here to make sure we don't crash.
     139    viewAbstraction->triggerNavigationAction(QtWebKit::Stop);
     140}
     141
    82142void tst_CommonViewTests::show()
    83143{
  • trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/webviewabstraction.cpp

    r90458 r90647  
    1818*/
    1919
     20#include <QAction>
    2021#include <QApplication>
    2122#include <QDesktopWidget>
     
    7778}
    7879
     80void WebViewAbstraction::triggerNavigationAction(QtWebKit::NavigationAction which)
     81{
     82    QAction* touchAction = touchWebView()->page()->navigationAction(which);
     83    touchAction->trigger();
     84    QAction* desktopAction = desktopWebView()->navigationAction(which);
     85    desktopAction->trigger();
     86}
     87
    7988void WebViewAbstraction::touchViewLoadStarted()
    8089{
  • trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/webviewabstraction.h

    r90458 r90647  
    4141    bool url(QUrl&) const;
    4242
     43    void triggerNavigationAction(QtWebKit::NavigationAction);
     44
    4345Q_SIGNALS:
    4446    void loadStarted();
  • trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.cpp

    r90644 r90647  
    649649}
    650650
     651QAction* QtWebPageProxy::navigationAction(QtWebKit::NavigationAction which) const
     652{
     653    switch (which) {
     654    case QtWebKit::Back:
     655        return action(QtWebPageProxy::Back);
     656    case QtWebKit::Forward:
     657        return action(QtWebPageProxy::Forward);
     658    case QtWebKit::Reload:
     659        return action(QtWebPageProxy::Reload);
     660    case QtWebKit::Stop:
     661        return action(QtWebPageProxy::Stop);
     662    }
     663
     664    return 0;
     665}
     666
    651667QAction* QtWebPageProxy::action(WebAction action) const
    652668{
  • trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.h

    r90577 r90647  
    2626#include "LayerTreeContext.h"
    2727#include "PageClient.h"
     28#include "qwebkittypes.h"
    2829#include "ShareableBitmap.h"
    2930#include "ViewportArguments.h"
     
    173174    void setResizesToContentsUsingLayoutSize(const QSize& targetLayoutSize);
    174175
     176    QAction* navigationAction(QtWebKit::NavigationAction) const;
     177
    175178    QAction* action(WebAction action) const;
    176179    void triggerAction(WebAction action, bool checked = false);
  • trunk/Source/WebKit2/WebKit2API.pri

    r90458 r90647  
    126126    $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qtouchwebview.h \
    127127    $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qtouchwebview_p.h \
     128    $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qwebkittypes.h \
    128129    $$SOURCE_DIR/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.h \
    129130    $$SOURCE_DIR/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.h \
  • trunk/Tools/ChangeLog

    r90639 r90647  
     12011-07-08  Andreas Kling  <kling@webkit.org>
     2
     3        [Qt][WK2] Views should expose QActions for basic navigation.
     4        https://bugs.webkit.org/show_bug.cgi?id=64174
     5
     6        Reviewed by Benjamin Poulain.
     7
     8        Bring the toolbar in Qt's MiniBrowser back to life.
     9
     10        * MiniBrowser/qt/BrowserView.cpp:
     11        (BrowserView::navigationAction):
     12        * MiniBrowser/qt/BrowserView.h:
     13        * MiniBrowser/qt/BrowserWindow.cpp:
     14        (BrowserWindow::BrowserWindow):
     15
    1162011-07-08  Adam Roben  <aroben@apple.com>
    217
  • trunk/Tools/MiniBrowser/qt/BrowserView.cpp

    r90458 r90647  
    8989    return qobject_cast<QDesktopWebView*>(m_item);
    9090}
     91
     92QAction* BrowserView::navigationAction(QtWebKit::NavigationAction which) const
     93{
     94    if (desktopWebView())
     95        return desktopWebView()->navigationAction(which);
     96    if (touchWebView())
     97        return touchWebView()->page()->navigationAction(which);
     98    Q_ASSERT(false);
     99    return 0;
     100}
  • trunk/Tools/MiniBrowser/qt/BrowserView.h

    r90458 r90647  
    3131
    3232#include <QGraphicsView>
     33#include <qwebkittypes.h>
    3334
    3435class QDesktopWebView;
     
    4546    QGraphicsWidget* view() const;
    4647
     48    QAction* navigationAction(QtWebKit::NavigationAction which) const;
     49
    4750    QTouchWebView* touchWebView() const;
    4851    QDesktopWebView* desktopWebView() const;
  • trunk/Tools/MiniBrowser/qt/BrowserWindow.cpp

    r90578 r90647  
    128128
    129129    QToolBar* bar = addToolBar("Navigation");
    130 #if 0
    131     bar->addAction(page()->action(QWKPage::Back));
    132     bar->addAction(page()->action(QWKPage::Forward));
    133     bar->addAction(page()->action(QWKPage::Reload));
    134     bar->addAction(page()->action(QWKPage::Stop));
    135 #endif
     130    bar->addAction(m_browser->navigationAction(QtWebKit::Back));
     131    bar->addAction(m_browser->navigationAction(QtWebKit::Forward));
     132    bar->addAction(m_browser->navigationAction(QtWebKit::Reload));
     133    bar->addAction(m_browser->navigationAction(QtWebKit::Stop));
    136134    bar->addWidget(m_addressBar);
    137135
Note: See TracChangeset for help on using the changeset viewer.