Changeset 98447 in webkit
- Timestamp:
- Oct 26, 2011 1:28:30 AM (12 years ago)
- Location:
- trunk
- Files:
-
- 1 deleted
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r98438 r98447 1 2011-10-25 Zeno Albisser <zeno.albisser@nokia.com> 2 3 [Qt][WK2] Remove QAction from MiniBrowser 4 https://bugs.webkit.org/show_bug.cgi?id=70525 5 6 In order to rewrite MiniBrowser in QML we need a suitable 7 mechanism for triggering navigation actions. 8 Due to the QtWidgets dependency of QAction the current 9 solution is not suitable anymore. Therefore we introduce 10 invokable methods and export properties in QWebNavigationController. 11 12 Patch by Jocelyn Turcotte <jocelyn.turcotte@nokia.com>, 13 Zeno Albisser <zeno.albisser@nokia.com> 14 15 Reviewed by Simon Hausmann. 16 17 * UIProcess/API/qt/WKView.h: 18 * UIProcess/API/qt/qdesktopwebview.h: 19 * UIProcess/API/qt/qtouchwebpage.h: 20 * UIProcess/API/qt/qwebkittypes.h: Removed. 21 * UIProcess/API/qt/qwebnavigationcontroller.cpp: 22 (QWebNavigationController::QWebNavigationController): 23 (QWebNavigationController::canGoBack): 24 (QWebNavigationController::canGoForward): 25 (QWebNavigationController::canStop): 26 (QWebNavigationController::canReload): 27 (QWebNavigationController::goBack): 28 (QWebNavigationController::goForward): 29 (QWebNavigationController::stop): 30 (QWebNavigationController::reload): 31 * UIProcess/API/qt/qwebnavigationcontroller.h: 32 * UIProcess/API/qt/tests/commonviewtests/tst_commonviewtests.cpp: 33 (tst_CommonViewTests::backAndForward): 34 (tst_CommonViewTests::reload): 35 (tst_CommonViewTests::stop): 36 * UIProcess/API/qt/tests/commonviewtests/webviewabstraction.cpp: 37 (WebViewAbstraction::goBack): 38 (WebViewAbstraction::goForward): 39 (WebViewAbstraction::stop): 40 (WebViewAbstraction::reload): 41 * UIProcess/API/qt/tests/commonviewtests/webviewabstraction.h: 42 * UIProcess/API/qt/tests/qdesktopwebview/tst_qdesktopwebview.cpp: 43 (tst_QDesktopWebView::navigationStatusAtStartup): 44 (LoadStartedCatcher::onLoadStarted): 45 (tst_QDesktopWebView::stopEnabledAfterLoadStarted): 46 * UIProcess/API/qt/tests/qtouchwebview/tst_qtouchwebview.cpp: 47 (tst_QTouchWebView::navigationStatusAtStartup): 48 * UIProcess/qt/ClientImpl.cpp: 49 (dispatchLoadSucceeded): 50 (dispatchLoadFailed): 51 (qt_wk_didStartProvisionalLoadForFrame): 52 (qt_wk_didCommitLoadForFrame): 53 (qt_wk_didSameDocumentNavigationForFrame): 54 * UIProcess/qt/QtWebPageProxy.cpp: 55 (QtWebPageProxy::QtWebPageProxy): 56 (QtWebPageProxy::canGoBack): 57 (QtWebPageProxy::goBack): 58 (QtWebPageProxy::canGoForward): 59 (QtWebPageProxy::goForward): 60 (QtWebPageProxy::canStop): 61 (QtWebPageProxy::stop): 62 (QtWebPageProxy::canReload): 63 (QtWebPageProxy::reload): 64 (QtWebPageProxy::navigationStateChanged): 65 (QtWebPageProxy::didRelaunchProcess): 66 (QtWebPageProxy::processDidCrash): 67 * UIProcess/qt/QtWebPageProxy.h: 68 * WebKit2API.pri: 69 1 70 2011-10-26 Ryosuke Niwa <rniwa@webkit.org> 2 71 -
trunk/Source/WebKit2/UIProcess/API/qt/WKView.h
r97740 r98447 21 21 #define WKView_h 22 22 23 #include <WebKit2/qwebkittypes.h>24 23 #include <WebKit2/qdesktopwebview.h> 25 24 #include <WebKit2/qtouchwebview.h> -
trunk/Source/WebKit2/UIProcess/API/qt/qdesktopwebview.h
r98337 r98447 23 23 24 24 #include "qwebkitglobal.h" 25 #include "qwebkittypes.h"26 25 #include <QUrl> 27 26 #include <QtDeclarative/qsgpainteditem.h> -
trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebpage.h
r98332 r98447 23 23 24 24 #include "qwebkitglobal.h" 25 #include "qwebkittypes.h"26 25 27 26 #include <QtDeclarative/qsgitem.h> -
trunk/Source/WebKit2/UIProcess/API/qt/qwebnavigationcontroller.cpp
r95901 r98447 24 24 25 25 #include "QtWebPageProxy.h" 26 #include "qwebkittypes.h"27 26 28 27 class QWebNavigationControllerPrivate { … … 41 40 , d(new QWebNavigationControllerPrivate(pageProxy)) 42 41 { 42 connect(pageProxy, SIGNAL(updateNavigationState()), this, SIGNAL(navigationStateChanged())); 43 43 } 44 44 … … 48 48 } 49 49 50 QAction* QWebNavigationController::backAction() const50 bool QWebNavigationController::canGoBack() const 51 51 { 52 return d->pageProxy-> navigationAction(QtWebKit::Back);52 return d->pageProxy->canGoBack(); 53 53 } 54 54 55 QAction* QWebNavigationController::forwardAction() const55 bool QWebNavigationController::canGoForward() const 56 56 { 57 return d->pageProxy-> navigationAction(QtWebKit::Forward);57 return d->pageProxy->canGoForward(); 58 58 } 59 59 60 QAction* QWebNavigationController::stopAction() const60 bool QWebNavigationController::canStop() const 61 61 { 62 return d->pageProxy-> navigationAction(QtWebKit::Stop);62 return d->pageProxy->canStop(); 63 63 } 64 64 65 QAction* QWebNavigationController::reloadAction() const65 bool QWebNavigationController::canReload() const 66 66 { 67 return d->pageProxy-> navigationAction(QtWebKit::Reload);67 return d->pageProxy->canReload(); 68 68 } 69 69 70 QAction* QWebNavigationController::navigationAction(QtWebKit::NavigationAction which) const 70 void QWebNavigationController::goBack() 71 71 { 72 return d->pageProxy->navigationAction(which);72 d->pageProxy->goBack(); 73 73 } 74 74 75 void QWebNavigationController:: back()75 void QWebNavigationController::goForward() 76 76 { 77 d->pageProxy->navigationAction(QtWebKit::Back)->trigger(); 78 } 79 80 void QWebNavigationController::forward() 81 { 82 d->pageProxy->navigationAction(QtWebKit::Forward)->trigger(); 77 d->pageProxy->goForward(); 83 78 } 84 79 85 80 void QWebNavigationController::stop() 86 81 { 87 d->pageProxy-> navigationAction(QtWebKit::Stop)->trigger();82 d->pageProxy->stop(); 88 83 } 89 84 90 85 void QWebNavigationController::reload() 91 86 { 92 d->pageProxy-> navigationAction(QtWebKit::Reload)->trigger();87 d->pageProxy->reload(); 93 88 } -
trunk/Source/WebKit2/UIProcess/API/qt/qwebnavigationcontroller.h
r96079 r98447 24 24 25 25 #include "qwebkitglobal.h" 26 #include "qwebkittypes.h"27 26 #include <QtCore/QObject> 28 27 … … 36 35 class QWEBKIT_EXPORT QWebNavigationController : public QObject { 37 36 Q_OBJECT 38 Q_PROPERTY( QAction* backAction READ backAction CONSTANTFINAL)39 Q_PROPERTY( QAction* forwardAction READ forwardAction CONSTANTFINAL)40 Q_PROPERTY( QAction* stopAction READ stopAction CONSTANTFINAL)41 Q_PROPERTY( QAction* reloadAction READ reloadAction CONSTANTFINAL)37 Q_PROPERTY(bool canGoBack READ canGoBack NOTIFY navigationStateChanged FINAL) 38 Q_PROPERTY(bool canGoForward READ canGoForward NOTIFY navigationStateChanged FINAL) 39 Q_PROPERTY(bool canStop READ canStop NOTIFY navigationStateChanged FINAL) 40 Q_PROPERTY(bool canReload READ canReload NOTIFY navigationStateChanged FINAL) 42 41 public: 43 42 QWebNavigationController(QtWebPageProxy*); 44 43 ~QWebNavigationController(); 45 44 46 QAction* backAction() const; 47 QAction* forwardAction() const; 48 QAction* stopAction() const; 49 QAction* reloadAction() const; 50 51 QAction* navigationAction(QtWebKit::NavigationAction which) const; 45 bool canGoBack() const; 46 bool canGoForward() const; 47 bool canStop() const; 48 bool canReload() const; 52 49 53 50 public slots: 54 void back();55 void forward();51 void goBack(); 52 void goForward(); 56 53 void stop(); 57 54 void reload(); 55 56 Q_SIGNALS: 57 void navigationStateChanged(); 58 58 59 59 private: -
trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/tst_commonviewtests.cpp
r95901 r98447 118 118 QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page2.html")); 119 119 120 viewAbstraction-> triggerNavigationAction(QtWebKit::Back);120 viewAbstraction->goBack(); 121 121 QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded()))); 122 122 … … 124 124 QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html")); 125 125 126 viewAbstraction-> triggerNavigationAction(QtWebKit::Forward);126 viewAbstraction->goForward(); 127 127 QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded()))); 128 128 … … 140 140 QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html")); 141 141 142 viewAbstraction-> triggerNavigationAction(QtWebKit::Reload);142 viewAbstraction->reload(); 143 143 QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded()))); 144 144 … … 157 157 158 158 // FIXME: This test should be fleshed out. Right now it's just here to make sure we don't crash. 159 viewAbstraction-> triggerNavigationAction(QtWebKit::Stop);159 viewAbstraction->stop(); 160 160 } 161 161 -
trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/webviewabstraction.cpp
r95901 r98447 98 98 } 99 99 100 void WebViewAbstraction:: triggerNavigationAction(QtWebKit::NavigationAction which)100 void WebViewAbstraction::goBack() 101 101 { 102 QAction* touchAction = touchWebView()->page()->navigationController()->navigationAction(which); 103 touchAction->trigger(); 104 QAction* desktopAction = desktopWebView()->navigationController()->navigationAction(which); 105 desktopAction->trigger(); 102 touchWebView()->page()->navigationController()->goBack(); 103 } 104 105 void WebViewAbstraction::goForward() 106 { 107 touchWebView()->page()->navigationController()->goForward(); 108 } 109 110 void WebViewAbstraction::stop() 111 { 112 touchWebView()->page()->navigationController()->stop(); 113 } 114 115 void WebViewAbstraction::reload() 116 { 117 touchWebView()->page()->navigationController()->reload(); 106 118 } 107 119 -
trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/webviewabstraction.h
r95901 r98447 42 42 int loadProgress() const; 43 43 44 void triggerNavigationAction(QtWebKit::NavigationAction); 44 void goBack(); 45 void goForward(); 46 void stop(); 47 void reload(); 45 48 46 49 Q_SIGNALS: -
trunk/Source/WebKit2/UIProcess/API/qt/tests/qdesktopwebview/tst_qdesktopwebview.cpp
r95901 r98447 18 18 */ 19 19 20 #include <QAction>21 20 #include <QScopedPointer> 22 21 #include <QtTest/QtTest> … … 35 34 void cleanup(); 36 35 37 void navigation ActionsStatusAtStartup();38 void stop ActionEnabledAfterLoadStarted();36 void navigationStatusAtStartup(); 37 void stopEnabledAfterLoadStarted(); 39 38 40 39 private: … … 63 62 } 64 63 65 void tst_QDesktopWebView::navigation ActionsStatusAtStartup()64 void tst_QDesktopWebView::navigationStatusAtStartup() 66 65 { 67 QAction* backAction = webView()->navigationController()->backAction(); 68 QVERIFY(backAction); 69 QCOMPARE(backAction->isEnabled(), false); 66 QCOMPARE(webView()->navigationController()->canGoBack(), false); 70 67 71 QAction* forwardAction = webView()->navigationController()->forwardAction(); 72 QVERIFY(forwardAction); 73 QCOMPARE(forwardAction->isEnabled(), false); 68 QCOMPARE(webView()->navigationController()->canGoForward(), false); 74 69 75 QAction* stopAction = webView()->navigationController()->stopAction(); 76 QVERIFY(stopAction); 77 QCOMPARE(stopAction->isEnabled(), false); 70 QCOMPARE(webView()->navigationController()->canStop(), false); 78 71 79 QAction* reloadAction = webView()->navigationController()->reloadAction(); 80 QVERIFY(reloadAction); 81 QCOMPARE(reloadAction->isEnabled(), false); 72 QCOMPARE(webView()->navigationController()->canReload(), false); 82 73 } 83 74 … … 96 87 QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection); 97 88 98 QAction* stopAction = m_webView->navigationController()->stopAction(); 99 QVERIFY(stopAction); 100 QCOMPARE(stopAction->isEnabled(), true); 89 QCOMPARE(m_webView->navigationController()->canStop(), true); 101 90 } 102 91 … … 108 97 }; 109 98 110 void tst_QDesktopWebView::stop ActionEnabledAfterLoadStarted()99 void tst_QDesktopWebView::stopEnabledAfterLoadStarted() 111 100 { 112 QAction* stopAction = webView()->navigationController()->stopAction(); 113 QVERIFY(stopAction); 114 QCOMPARE(stopAction->isEnabled(), false); 101 QCOMPARE(webView()->navigationController()->canStop(), false); 115 102 116 103 LoadStartedCatcher catcher(webView()); … … 118 105 waitForSignal(&catcher, SIGNAL(finished())); 119 106 120 QCOMPARE( stopAction->isEnabled(), true);107 QCOMPARE(webView()->navigationController()->canStop(), true); 121 108 122 109 waitForSignal(webView(), SIGNAL(loadSucceeded())); -
trunk/Source/WebKit2/UIProcess/API/qt/tests/qtouchwebview/tst_qtouchwebview.cpp
r95901 r98447 18 18 */ 19 19 20 #include <QAction>21 20 #include <QtTest/QtTest> 22 21 #include <qtouchwebpage.h> … … 37 36 38 37 void accessPage(); 39 void navigation ActionsStatusAtStartup();38 void navigationStatusAtStartup(); 40 39 41 40 private: … … 74 73 } 75 74 76 void tst_QTouchWebView::navigation ActionsStatusAtStartup()75 void tst_QTouchWebView::navigationStatusAtStartup() 77 76 { 78 QAction* backAction = webView()->page()->navigationController()->backAction(); 79 QVERIFY(backAction); 80 QCOMPARE(backAction->isEnabled(), false); 77 QCOMPARE(webView()->page()->navigationController()->canGoBack(), false); 81 78 82 QAction* forwardAction = webView()->page()->navigationController()->forwardAction(); 83 QVERIFY(forwardAction); 84 QCOMPARE(forwardAction->isEnabled(), false); 79 QCOMPARE(webView()->page()->navigationController()->canGoForward(), false); 85 80 86 QAction* stopAction = webView()->page()->navigationController()->stopAction(); 87 QVERIFY(stopAction); 88 QCOMPARE(stopAction->isEnabled(), false); 81 QCOMPARE(webView()->page()->navigationController()->canStop(), false); 89 82 90 QAction* reloadAction = webView()->page()->navigationController()->reloadAction(); 91 QVERIFY(reloadAction); 92 QCOMPARE(reloadAction->isEnabled(), false); 83 QCOMPARE(webView()->page()->navigationController()->canReload(), false); 93 84 } 94 85 -
trunk/Source/WebKit2/UIProcess/qt/ClientImpl.cpp
r98030 r98447 64 64 return; 65 65 66 toQtWebPageProxy(clientInfo)->updateNavigation Actions();66 toQtWebPageProxy(clientInfo)->updateNavigationState(); 67 67 toQtWebPageProxy(clientInfo)->loadDidSucceed(); 68 68 } … … 73 73 return; 74 74 75 toQtWebPageProxy(clientInfo)->updateNavigation Actions();75 toQtWebPageProxy(clientInfo)->updateNavigationState(); 76 76 77 77 int errorCode = WKErrorGetErrorCode(error); … … 87 87 return; 88 88 89 toQtWebPageProxy(clientInfo)->updateNavigation Actions();89 toQtWebPageProxy(clientInfo)->updateNavigationState(); 90 90 toQtWebPageProxy(clientInfo)->loadDidBegin(); 91 91 } … … 103 103 QString urlStr(wkframe->url()); 104 104 QUrl qUrl = urlStr; 105 toQtWebPageProxy(clientInfo)->updateNavigation Actions();105 toQtWebPageProxy(clientInfo)->updateNavigationState(); 106 106 toQtWebPageProxy(clientInfo)->didChangeUrl(qUrl); 107 107 toQtWebPageProxy(clientInfo)->loadDidCommit(); … … 123 123 QString urlStr(wkframe->url()); 124 124 QUrl qUrl = urlStr; 125 toQtWebPageProxy(clientInfo)->updateNavigation Actions();125 toQtWebPageProxy(clientInfo)->updateNavigationState(); 126 126 toQtWebPageProxy(clientInfo)->didChangeUrl(qUrl); 127 127 } -
trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.cpp
r98332 r98447 43 43 #include "WKStringQt.h" 44 44 #include "WKURLQt.h" 45 #include <QAction>46 45 #include <QApplication> 47 46 #include <QGraphicsSceneMouseEvent> 48 47 #include <QJSEngine> 49 48 #include <QMimeData> 50 #include <QStyle>51 49 #include <QTouchEvent> 52 50 #include <QUndoStack> … … 112 110 { 113 111 ASSERT(viewInterface); 114 memset(m_actions, 0, sizeof(m_actions));115 112 m_webPageProxy = m_context->createWebPage(this, toImpl(pageGroupRef)); 116 113 m_history = QWKHistoryPrivate::createHistory(this, m_webPageProxy->backForwardList()); … … 431 428 } 432 429 433 void QtWebPageProxy::updateAction(QtWebPageProxy::WebAction action) 434 { 435 QAction* a = m_actions[action]; 436 if (!a) 437 return; 438 430 bool QtWebPageProxy::canGoBack() const 431 { 432 return m_webPageProxy->canGoBack(); 433 } 434 435 void QtWebPageProxy::goBack() 436 { 437 m_webPageProxy->goBack(); 438 } 439 440 bool QtWebPageProxy::canGoForward() const 441 { 442 return m_webPageProxy->canGoForward(); 443 } 444 445 void QtWebPageProxy::goForward() 446 { 447 m_webPageProxy->goForward(); 448 } 449 450 bool QtWebPageProxy::canStop() const 451 { 439 452 RefPtr<WebKit::WebFrameProxy> mainFrame = m_webPageProxy->mainFrame(); 440 441 bool enabled = a->isEnabled(); 442 443 switch (action) { 444 case QtWebPageProxy::Back: 445 enabled = m_webPageProxy->canGoBack(); 446 break; 447 case QtWebPageProxy::Forward: 448 enabled = m_webPageProxy->canGoForward(); 449 break; 450 case QtWebPageProxy::Stop: 451 enabled = mainFrame && !(WebFrameProxy::LoadStateFinished == mainFrame->loadState()); 452 break; 453 case QtWebPageProxy::Reload: 454 if (mainFrame) 455 enabled = (WebFrameProxy::LoadStateFinished == mainFrame->loadState()); 456 else 457 enabled = m_webPageProxy->backForwardList()->currentItem(); 458 break; 459 default: 460 ASSERT_NOT_REACHED(); 461 } 462 463 a->setEnabled(enabled); 464 } 465 466 void QtWebPageProxy::updateNavigationActions() 467 { 468 updateAction(QtWebPageProxy::Back); 469 updateAction(QtWebPageProxy::Forward); 470 updateAction(QtWebPageProxy::Stop); 471 updateAction(QtWebPageProxy::Reload); 472 } 473 474 void QtWebPageProxy::webActionTriggered(bool checked) 475 { 476 QAction* a = qobject_cast<QAction*>(sender()); 477 if (!a) 478 return; 479 QtWebPageProxy::WebAction action = static_cast<QtWebPageProxy::WebAction>(a->data().toInt()); 480 triggerAction(action, checked); 453 return mainFrame && !(WebFrameProxy::LoadStateFinished == mainFrame->loadState()); 454 } 455 456 void QtWebPageProxy::stop() 457 { 458 m_webPageProxy->stopLoading(); 459 } 460 461 bool QtWebPageProxy::canReload() const 462 { 463 RefPtr<WebKit::WebFrameProxy> mainFrame = m_webPageProxy->mainFrame(); 464 if (mainFrame) 465 return (WebFrameProxy::LoadStateFinished == mainFrame->loadState()); 466 return m_webPageProxy->backForwardList()->currentItem(); 467 } 468 469 void QtWebPageProxy::reload() 470 { 471 m_webPageProxy->reload(/* reloadFromOrigin */ true); 472 } 473 474 void QtWebPageProxy::navigationStateChanged() 475 { 476 emit updateNavigationState(); 481 477 } 482 478 483 479 void QtWebPageProxy::didRelaunchProcess() 484 480 { 485 updateNavigation Actions();481 updateNavigationState(); 486 482 m_viewInterface->didRelaunchProcess(); 487 483 setDrawingAreaSize(m_viewInterface->drawingAreaSize()); … … 490 486 void QtWebPageProxy::processDidCrash() 491 487 { 492 updateNavigation Actions();488 updateNavigationState(); 493 489 m_viewInterface->processDidCrash(); 494 490 } … … 569 565 { 570 566 return m_history; 571 }572 573 void QtWebPageProxy::triggerAction(WebAction webAction, bool)574 {575 switch (webAction) {576 case Back:577 m_webPageProxy->goBack();578 return;579 case Forward:580 m_webPageProxy->goForward();581 return;582 case Stop:583 m_webPageProxy->stopLoading();584 return;585 case Reload:586 m_webPageProxy->reload(/* reloadFromOrigin */ true);587 return;588 default:589 ASSERT_NOT_REACHED();590 }591 }592 593 QAction* QtWebPageProxy::navigationAction(QtWebKit::NavigationAction which) const594 {595 switch (which) {596 case QtWebKit::Back:597 return action(QtWebPageProxy::Back);598 case QtWebKit::Forward:599 return action(QtWebPageProxy::Forward);600 case QtWebKit::Reload:601 return action(QtWebPageProxy::Reload);602 case QtWebKit::Stop:603 return action(QtWebPageProxy::Stop);604 }605 606 return 0;607 }608 609 QAction* QtWebPageProxy::action(WebAction action) const610 {611 if (action == QtWebPageProxy::NoWebAction || action >= WebActionCount)612 return 0;613 614 if (m_actions[action])615 return m_actions[action];616 617 QString text;618 QIcon icon;619 QStyle* style = qobject_cast<QApplication*>(QCoreApplication::instance())->style();620 bool checkable = false;621 QtWebPageProxy* mutableSelf = const_cast<QtWebPageProxy*>(this);622 623 switch (action) {624 case Back:625 text = contextMenuItemTagGoBack();626 icon = style->standardIcon(QStyle::SP_ArrowBack);627 break;628 case Forward:629 text = contextMenuItemTagGoForward();630 icon = style->standardIcon(QStyle::SP_ArrowForward);631 break;632 case Stop:633 text = contextMenuItemTagStop();634 icon = style->standardIcon(QStyle::SP_BrowserStop);635 break;636 case Reload:637 text = contextMenuItemTagReload();638 icon = style->standardIcon(QStyle::SP_BrowserReload);639 break;640 case Undo: {641 QAction* undoAction = m_undoStack->createUndoAction(mutableSelf);642 m_actions[action] = undoAction;643 return undoAction;644 }645 case Redo: {646 QAction* redoAction = m_undoStack->createRedoAction(mutableSelf);647 m_actions[action] = redoAction;648 return redoAction;649 }650 default:651 ASSERT_NOT_REACHED();652 break;653 }654 655 if (text.isEmpty())656 return 0;657 658 QAction* a = new QAction(mutableSelf);659 a->setText(text);660 a->setData(action);661 a->setCheckable(checkable);662 a->setIcon(icon);663 664 connect(a, SIGNAL(triggered(bool)), this, SLOT(webActionTriggered(bool)));665 666 m_actions[action] = a;667 mutableSelf->updateAction(action);668 return a;669 567 } 670 568 -
trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.h
r98332 r98447 26 26 #include "QtPolicyInterface.h" 27 27 #include "QtViewInterface.h" 28 #include "qwebkittypes.h"29 28 #include "ShareableBitmap.h" 30 29 #include "ViewportArguments.h" … … 140 139 void paint(QPainter*, const QRect&); 141 140 142 void updateAction(QtWebPageProxy::WebAction action); 143 void updateNavigationActions(); 141 bool canGoBack() const; 142 void goBack(); 143 bool canGoForward() const; 144 void goForward(); 145 bool canStop() const; 146 void stop(); 147 bool canReload() const; 148 void reload(); 149 144 150 void updateEditorActions(); 145 151 … … 154 160 155 161 QString title() const; 156 157 QAction* navigationAction(QtWebKit::NavigationAction) const;158 159 QAction* action(WebAction action) const;160 void triggerAction(WebAction action, bool checked = false);161 162 162 163 void setCustomUserAgent(const QString&); … … 172 173 173 174 public Q_SLOTS: 174 void webActionTriggered(bool checked);175 void navigationStateChanged(); 175 176 176 177 public: 177 178 Q_SIGNAL void scrollRequested(int dx, int dy); 178 179 Q_SIGNAL void zoomableAreaFound(const QRect&); 180 Q_SIGNAL void updateNavigationState(); 179 181 180 182 protected: … … 199 201 QWKHistory* m_history; 200 202 201 mutable QAction* m_actions[QtWebPageProxy::WebActionCount];202 203 mutable QWebPreferences* m_preferences; 203 204 -
trunk/Source/WebKit2/WebKit2API.pri
r97740 r98447 137 137 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qtouchwebview.h \ 138 138 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qtouchwebview_p.h \ 139 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qwebkittypes.h \140 139 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qwebnavigationcontroller.h \ 141 140 $$SOURCE_DIR/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.h \ -
trunk/Tools/ChangeLog
r98444 r98447 1 2011-10-25 Zeno Albisser <zeno.albisser@nokia.com> 2 3 [Qt][WK2] Remove QAction from MiniBrowser 4 https://bugs.webkit.org/show_bug.cgi?id=70525 5 6 In order to rewrite MiniBrowser in QML we need a suitable 7 mechanism for triggering navigation actions. 8 Due to the QtWidgets dependency of QAction the current 9 solution is not suitable anymore. Therefore we introduce 10 invokable methods and export properties in QWebNavigationController. 11 12 Patch by Jocelyn Turcotte <jocelyn.turcotte@nokia.com>, 13 Zeno Albisser <zeno.albisser@nokia.com> 14 15 Reviewed by Simon Hausmann. 16 17 * MiniBrowser/qt/BrowserView.cpp: 18 * MiniBrowser/qt/BrowserView.h: 19 * MiniBrowser/qt/BrowserWindow.cpp: 20 (BrowserWindow::BrowserWindow): 21 1 22 2011-10-26 Gyuyoung Kim <gyuyoung.kim@samsung.com> 2 23 -
trunk/Tools/MiniBrowser/qt/BrowserView.cpp
r96345 r98447 86 86 } 87 87 88 QAction* BrowserView::navigationAction(QtWebKit::NavigationAction which) const89 {90 if (desktopWebView())91 return desktopWebView()->navigationController()->navigationAction(which);92 if (touchWebView())93 return touchWebView()->page()->navigationController()->navigationAction(which);94 Q_ASSERT(false);95 return 0;96 } -
trunk/Tools/MiniBrowser/qt/BrowserView.h
r96345 r98447 32 32 #include <QAction> 33 33 #include <QtDeclarative/qsgcanvas.h> 34 #include <qwebkittypes.h>35 34 36 35 class QDesktopWebView; … … 48 47 QSGItem* view() const; 49 48 50 QAction* navigationAction(QtWebKit::NavigationAction which) const;51 52 49 QTouchWebView* touchWebView() const; 53 50 QDesktopWebView* desktopWebView() const; -
trunk/Tools/MiniBrowser/qt/BrowserWindow.cpp
r96345 r98447 144 144 connect(m_addressBar, SIGNAL(returnPressed()), SLOT(changeLocation())); 145 145 146 QToolBar* bar = addToolBar("Navigation");147 bar->addAction(m_browser->navigationAction(QtWebKit::Back));148 bar->addAction(m_browser->navigationAction(QtWebKit::Forward));149 bar->addAction(m_browser->navigationAction(QtWebKit::Reload));150 bar->addAction(m_browser->navigationAction(QtWebKit::Stop));151 bar->addWidget(m_addressBar);152 153 146 QShortcut* selectAddressBar = new QShortcut(Qt::CTRL | Qt::Key_L, this); 154 147 connect(selectAddressBar, SIGNAL(activated()), this, SLOT(openLocation()));
Note: See TracChangeset
for help on using the changeset viewer.