Changeset 90458 in webkit
- Timestamp:
- Jul 6, 2011 8:22:45 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 42 added
- 26 deleted
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r90457 r90458 1 2011-07-06 Andreas Kling <kling@webkit.org> 2 3 [Qt][WK2] Split Qt API into two different web views (touch and desktop) 4 https://bugs.webkit.org/show_bug.cgi?id=63950 5 6 Co-authored with Benjamin Poulain <benjamin@webkit.org>. 7 8 Reviewed by Kenneth Rohde Christiansen. 9 10 Replace the QGraphicsWKView/QWKPage mess with QDesktopWebView and QTouchWebView. 11 12 QDesktopWebView is a traditional web view, similar to QGraphicsWebView. It will 13 will have the expected "desktop" behavior for things like subframes and 14 fixed-position elements. 15 16 QTouchWebView is intended for use on touch devices, and will manage the viewport, 17 gestures, tiled rendering, and other things that the user should never have to 18 worry about. It will use "resize to contents" and frame flattening by default. 19 20 API-wise, the biggest difference between the two is that QTouchWebView is really 21 a viewport that contains a QTouchWebPage. These are decoupled for flexibility in 22 UI design. This decoupling is not necessary for the desktop use-case, and so 23 QDesktopWebView is the only class we need. 24 25 Much of the Qt/WebKit2 API has been removed (snapshots, history, preferences..) 26 but will be re-added incrementally in a way that fits the new API vision. 27 28 * UIProcess/API/qt/WKView.h: 29 * UIProcess/API/qt/qdesktopwebview.cpp: Added. 30 (QDesktopWebViewPrivate::QDesktopWebViewPrivate): 31 (QDesktopWebViewPrivate::setViewNeedsDisplay): 32 (QDesktopWebViewPrivate::drawingAreaSize): 33 (QDesktopWebViewPrivate::contentSizeChanged): 34 (QDesktopWebViewPrivate::isActive): 35 (QDesktopWebViewPrivate::hasFocus): 36 (QDesktopWebViewPrivate::isVisible): 37 (QDesktopWebViewPrivate::startDrag): 38 (QDesktopWebViewPrivate::didChangeUrl): 39 (QDesktopWebViewPrivate::didChangeTitle): 40 (QDesktopWebViewPrivate::didChangeToolTip): 41 (QDesktopWebViewPrivate::didChangeStatusText): 42 (QDesktopWebViewPrivate::didChangeCursor): 43 (QDesktopWebViewPrivate::loadDidBegin): 44 (QDesktopWebViewPrivate::loadDidSucceed): 45 (QDesktopWebViewPrivate::didChangeLoadProgress): 46 (QDesktopWebViewPrivate::showContextMenu): 47 (QDesktopWebViewPrivate::hideContextMenu): 48 (QDesktopWebView::QDesktopWebView): 49 (QDesktopWebView::init): 50 (QDesktopWebView::~QDesktopWebView): 51 (QDesktopWebView::load): 52 (QDesktopWebView::url): 53 (QDesktopWebView::title): 54 (QDesktopWebView::resizeEvent): 55 (QDesktopWebView::paint): 56 (QDesktopWebView::event): 57 (QDesktopWebView::pageRef): 58 * UIProcess/API/qt/qdesktopwebview.h: Added. 59 * UIProcess/API/qt/qdesktopwebview_p.h: Added. 60 * UIProcess/API/qt/qgraphicswkview.cpp: Removed. 61 * UIProcess/API/qt/qgraphicswkview.h: Removed. 62 * UIProcess/API/qt/qtouchwebpage.cpp: Added. 63 (QTouchWebPage::QTouchWebPage): 64 (QTouchWebPage::~QTouchWebPage): 65 (QTouchWebPage::paint): 66 (QTouchWebPage::load): 67 (QTouchWebPage::url): 68 (QTouchWebPage::title): 69 (QTouchWebPage::focusNextPrevChildCallback): 70 (QTouchWebPage::focusNextPrevChild): 71 (QTouchWebPage::event): 72 (QTouchWebPage::timerEvent): 73 (QTouchWebPage::resizeEvent): 74 (QTouchWebPagePrivate::QTouchWebPagePrivate): 75 (QTouchWebPage::visibleRect): 76 (QTouchWebPagePrivate::prepareScaleChange): 77 (QTouchWebPagePrivate::commitScaleChange): 78 (QTouchWebPagePrivate::onScaleChanged): 79 (QTouchWebPagePrivate::setPage): 80 * UIProcess/API/qt/qtouchwebpage.h: Added. 81 * UIProcess/API/qt/qtouchwebpage_p.h: Added. 82 (QTouchWebPagePrivate::getPageViewPrivate): 83 * UIProcess/API/qt/qtouchwebview.cpp: Added. 84 (QTouchWebViewPrivate::QTouchWebViewPrivate): 85 (QTouchWebView::QTouchWebView): 86 (QTouchWebView::~QTouchWebView): 87 (QTouchWebView::page): 88 * UIProcess/API/qt/qtouchwebview.h: Added. 89 * UIProcess/API/qt/qtouchwebview_p.h: Added. 90 * UIProcess/API/qt/qwkpage.cpp: Removed. 91 * UIProcess/API/qt/qwkpage.h: Removed. 92 * UIProcess/API/qt/tests/commonviewtests/commonviewtests.pro: Added. 93 * UIProcess/API/qt/tests/commonviewtests/tst_commonviewtests.cpp: Added. 94 (tst_CommonViewTests::init): 95 (tst_CommonViewTests::cleanup): 96 (tst_CommonViewTests::baseUrl): 97 (tst_CommonViewTests::loadEmptyUrl): 98 (tst_CommonViewTests::loadEmptyPageViewVisible): 99 (tst_CommonViewTests::loadEmptyPageViewHidden): 100 (tst_CommonViewTests::show): 101 * UIProcess/API/qt/tests/commonviewtests/webviewabstraction.cpp: Added. 102 (WebViewAbstraction::WebViewAbstraction): 103 (WebViewAbstraction::show): 104 (WebViewAbstraction::hide): 105 (WebViewAbstraction::load): 106 (WebViewAbstraction::url): 107 (WebViewAbstraction::touchViewLoadStarted): 108 (WebViewAbstraction::desktopViewLoadStarted): 109 (WebViewAbstraction::touchViewLoadSucceeded): 110 (WebViewAbstraction::desktopViewLoadSucceeded): 111 (WebViewAbstraction::touchWebView): 112 (WebViewAbstraction::desktopWebView): 113 * UIProcess/API/qt/tests/commonviewtests/webviewabstraction.h: Copied from Source/WebKit2/UIProcess/API/qt/tests/qwkpage/tst_qwkpage.cpp. 114 * UIProcess/API/qt/tests/html/a.htm: Removed. 115 * UIProcess/API/qt/tests/html/b.htm: Removed. 116 * UIProcess/API/qt/tests/html/c.htm: Removed. 117 * UIProcess/API/qt/tests/html/d.htm: Removed. 118 * UIProcess/API/qt/tests/qdesktopwebview/qdesktopwebview.pro: Renamed from Source/WebKit2/UIProcess/API/qt/tests/qgraphicswkview/qgraphicswkview.pro. 119 * UIProcess/API/qt/tests/qdesktopwebview/tst_qdesktopwebview.cpp: Renamed from Source/WebKit2/UIProcess/API/qt/tests/qwkpage/tst_qwkpage.cpp. 120 (tst_QDesktopWebView::init): 121 (tst_QDesktopWebView::cleanup): 122 (tst_QDesktopWebView::webView): 123 * UIProcess/API/qt/tests/qgraphicswkview/tst_qgraphicswkview.cpp: Removed. 124 * UIProcess/API/qt/tests/qtouchwebview/qtouchwebview.pro: Renamed from Source/WebKit2/UIProcess/API/qt/tests/qwkhistory/qwkhistory.pro. 125 * UIProcess/API/qt/tests/qtouchwebview/tst_qtouchwebview.cpp: Added. 126 (tst_QTouchWebView::tst_QTouchWebView): 127 (tst_QTouchWebView::init): 128 (tst_QTouchWebView::cleanup): 129 (tst_QTouchWebView::webView): 130 (tst_QTouchWebView::accessPage): 131 * UIProcess/API/qt/tests/qwkhistory/tst_qwkhistory.cpp: Removed. 132 * UIProcess/API/qt/tests/qwkpage/qwkpage.pro: Removed. 133 * UIProcess/API/qt/tests/tests.pro: 134 * UIProcess/API/qt/tests/testwindow.h: Added. 135 (TestWindow::TestWindow): 136 (TestWindow::resizeEvent): 137 * UIProcess/TiledDrawingAreaProxy.cpp: 138 * UIProcess/TiledDrawingAreaProxy.h: 139 * UIProcess/WebFullScreenManagerProxy.h: 140 * UIProcess/qt/ClientImpl.cpp: Renamed from Source/WebKit2/UIProcess/API/qt/ClientImpl.cpp. 141 (toQWKContext): 142 (toQtWebPageProxy): 143 (loadFinished): 144 (qt_wk_didStartProvisionalLoadForFrame): 145 (qt_wk_didReceiveServerRedirectForProvisionalLoadForFrame): 146 (qt_wk_didFailProvisionalLoadWithErrorForFrame): 147 (qt_wk_didCommitLoadForFrame): 148 (qt_wk_didFinishDocumentLoadForFrame): 149 (qt_wk_didFinishLoadForFrame): 150 (qt_wk_didFailLoadWithErrorForFrame): 151 (qt_wk_didReceiveTitleForFrame): 152 (qt_wk_didFirstLayoutForFrame): 153 (qt_wk_didRemoveFrameFromHierarchy): 154 (qt_wk_didFirstVisuallyNonEmptyLayoutForFrame): 155 (qt_wk_didStartProgress): 156 (qt_wk_didChangeProgress): 157 (qt_wk_didFinishProgress): 158 (qt_wk_didBecomeUnresponsive): 159 (qt_wk_didBecomeResponsive): 160 (qt_wk_createNewPage): 161 (qt_wk_showPage): 162 (qt_wk_close): 163 (qt_wk_takeFocus): 164 (qt_wk_runJavaScriptAlert): 165 (qt_wk_setStatusText): 166 (qt_wk_didSameDocumentNavigationForFrame): 167 (qt_wk_didChangeIconForPageURL): 168 (qt_wk_didRemoveAllIcons): 169 * UIProcess/qt/ClientImpl.h: Renamed from Source/WebKit2/UIProcess/API/qt/ClientImpl.h. 170 * UIProcess/qt/QtWebPageProxy.cpp: Added. 171 (defaultWKContext): 172 (contextMenuActionForWebAction): 173 (dragOperationToDropActions): 174 (dropActionToDragOperation): 175 (QtWebPageProxy::QtWebPageProxy): 176 (QtWebPageProxy::init): 177 (QtWebPageProxy::~QtWebPageProxy): 178 (QtWebPageProxy::handleEvent): 179 (QtWebPageProxy::handleKeyPressEvent): 180 (QtWebPageProxy::handleKeyReleaseEvent): 181 (QtWebPageProxy::handleFocusInEvent): 182 (QtWebPageProxy::handleFocusOutEvent): 183 (QtWebPageProxy::setCursor): 184 (QtWebPageProxy::setViewNeedsDisplay): 185 (QtWebPageProxy::displayView): 186 (QtWebPageProxy::scrollView): 187 (QtWebPageProxy::viewSize): 188 (QtWebPageProxy::isViewWindowActive): 189 (QtWebPageProxy::isViewFocused): 190 (QtWebPageProxy::isViewVisible): 191 (QtWebPageProxy::isViewInWindow): 192 (QtWebPageProxy::enterAcceleratedCompositingMode): 193 (QtWebPageProxy::exitAcceleratedCompositingMode): 194 (QtWebPageProxy::pageDidRequestScroll): 195 (QtWebPageProxy::didChangeContentsSize): 196 (QtWebPageProxy::toolTipChanged): 197 (QtWebPageProxy::registerEditCommand): 198 (QtWebPageProxy::clearAllEditCommands): 199 (QtWebPageProxy::canUndoRedo): 200 (QtWebPageProxy::executeUndoRedo): 201 (QtWebPageProxy::convertToDeviceSpace): 202 (QtWebPageProxy::screenToWindow): 203 (QtWebPageProxy::windowToScreen): 204 (QtWebPageProxy::convertToUserSpace): 205 (QtWebPageProxy::selectionChanged): 206 (QtWebPageProxy::doneWithKeyEvent): 207 (QtWebPageProxy::createPopupMenuProxy): 208 (QtWebPageProxy::createContextMenuProxy): 209 (QtWebPageProxy::setFindIndicator): 210 (QtWebPageProxy::didCommitLoadForMainFrame): 211 (QtWebPageProxy::didFinishLoadingDataForCustomRepresentation): 212 (QtWebPageProxy::flashBackingStoreUpdates): 213 (QtWebPageProxy::pageRef): 214 (QtWebPageProxy::didChangeUrl): 215 (QtWebPageProxy::didChangeTitle): 216 (QtWebPageProxy::didChangeStatusText): 217 (QtWebPageProxy::showContextMenu): 218 (QtWebPageProxy::hideContextMenu): 219 (QtWebPageProxy::loadDidBegin): 220 (QtWebPageProxy::loadDidSucceed): 221 (QtWebPageProxy::didChangeLoadProgress): 222 (QtWebPageProxy::paint): 223 (QtWebPageProxy::updateAction): 224 (QtWebPageProxy::updateNavigationActions): 225 (QtWebPageProxy::webActionTriggered): 226 (QtWebPageProxy::didRelaunchProcess): 227 (QtWebPageProxy::processDidCrash): 228 (QtWebPageProxy::setActualVisibleContentsRect): 229 (QtWebPageProxy::preferences): 230 (QtWebPageProxy::setCreateNewPageFunction): 231 (QtWebPageProxy::setCustomUserAgent): 232 (QtWebPageProxy::customUserAgent): 233 (QtWebPageProxy::load): 234 (QtWebPageProxy::url): 235 (QtWebPageProxy::title): 236 (QtWebPageProxy::setDrawingAreaSize): 237 (QtWebPageProxy::textZoomFactor): 238 (QtWebPageProxy::setTextZoomFactor): 239 (QtWebPageProxy::pageZoomFactor): 240 (QtWebPageProxy::setPageZoomFactor): 241 (QtWebPageProxy::setPageAndTextZoomFactors): 242 (QtWebPageProxy::history): 243 (QtWebPageProxy::setResizesToContentsUsingLayoutSize): 244 (QtWebPageProxy::triggerAction): 245 (QtWebPageProxy::action): 246 (QtWebPageProxy::findZoomableAreaForPoint): 247 (QtWebPageProxy::didFindZoomableArea): 248 (QtWebPageProxy::startDrag): 249 (QtWebPageProxy::viewportVisibleRect): 250 (QtWebPageProxy::isConnectedToEngine): 251 (QtWebPageProxy::setPageIsVisible): 252 * UIProcess/qt/QtWebPageProxy.h: Renamed from Source/WebKit2/UIProcess/API/qt/qwkpage_p.h. 253 (QtWebPageProxy::pageClosed): 254 (QtWebPageProxy::customRepresentationZoomFactor): 255 (QtWebPageProxy::setCustomRepresentationZoomFactor): 256 (QtWebPageProxy::didChangeScrollbarsForMainFrame): 257 (QtWebPageProxy::findStringInCustomRepresentation): 258 (QtWebPageProxy::countStringMatchesInCustomRepresentation): 259 (QtWebPageProxy::userSpaceScaleFactor): 260 (QtWebPageProxy::createNewPageFunction): 261 * UIProcess/qt/TiledDrawingAreaProxyQt.cpp: 262 (WebKit::TiledDrawingAreaProxy::page): 263 * UIProcess/qt/TouchViewInterface.cpp: Added. 264 (WebKit::TouchViewInterface::TouchViewInterface): 265 (WebKit::TouchViewInterface::setViewNeedsDisplay): 266 (WebKit::TouchViewInterface::drawingAreaSize): 267 (WebKit::TouchViewInterface::contentSizeChanged): 268 (WebKit::TouchViewInterface::isActive): 269 (WebKit::TouchViewInterface::hasFocus): 270 (WebKit::TouchViewInterface::isVisible): 271 (WebKit::TouchViewInterface::startDrag): 272 (WebKit::TouchViewInterface::didChangeUrl): 273 (WebKit::TouchViewInterface::didChangeTitle): 274 (WebKit::TouchViewInterface::didChangeToolTip): 275 (WebKit::TouchViewInterface::didChangeStatusText): 276 (WebKit::TouchViewInterface::didChangeCursor): 277 (WebKit::TouchViewInterface::loadDidBegin): 278 (WebKit::TouchViewInterface::loadDidSucceed): 279 (WebKit::TouchViewInterface::didChangeLoadProgress): 280 (WebKit::TouchViewInterface::showContextMenu): 281 (WebKit::TouchViewInterface::hideContextMenu): 282 * UIProcess/qt/TouchViewInterface.h: Added. 283 (WebKit::TouchViewInterface::pageView): 284 * UIProcess/qt/ViewInterface.cpp: Added. 285 (WebKit::ViewInterface::ownerWidget): 286 * UIProcess/qt/ViewInterface.h: Added. 287 * UIProcess/qt/WebContextMenuProxyQt.cpp: 288 (WebKit::webActionForContextMenuAction): 289 (WebKit::WebContextMenuProxyQt::WebContextMenuProxyQt): 290 (WebKit::WebContextMenuProxyQt::create): 291 (WebKit::WebContextMenuProxyQt::showContextMenu): 292 (WebKit::WebContextMenuProxyQt::hideContextMenu): 293 (WebKit::WebContextMenuProxyQt::createContextMenu): 294 * UIProcess/qt/WebContextMenuProxyQt.h: 295 * UIProcess/qt/qdesktopwebpageproxy.cpp: Added. 296 (dragOperationToDropAction): 297 (QDesktopWebPageProxy::QDesktopWebPageProxy): 298 (QDesktopWebPageProxy::createDrawingAreaProxy): 299 (QDesktopWebPageProxy::paintContent): 300 (QDesktopWebPageProxy::setViewportArguments): 301 (QDesktopWebPageProxy::handleEvent): 302 (QDesktopWebPageProxy::handleMouseMoveEvent): 303 (QDesktopWebPageProxy::handleMousePressEvent): 304 (QDesktopWebPageProxy::handleMouseReleaseEvent): 305 (QDesktopWebPageProxy::handleMouseDoubleClickEvent): 306 (QDesktopWebPageProxy::handleWheelEvent): 307 (QDesktopWebPageProxy::handleHoverMoveEvent): 308 (QDesktopWebPageProxy::handleDragEnterEvent): 309 (QDesktopWebPageProxy::handleDragLeaveEvent): 310 (QDesktopWebPageProxy::handleDragMoveEvent): 311 (QDesktopWebPageProxy::handleDropEvent): 312 (QDesktopWebPageProxy::timerEvent): 313 * UIProcess/qt/qdesktopwebpageproxy.h: Added. 314 * UIProcess/qt/qtouchwebpageproxy.cpp: Added. 315 (QTouchWebPageProxy::QTouchWebPageProxy): 316 (QTouchWebPageProxy::createDrawingAreaProxy): 317 (QTouchWebPageProxy::paintContent): 318 (QTouchWebPageProxy::setViewportArguments): 319 (QTouchWebPageProxy::handleEvent): 320 (QTouchWebPageProxy::touchEvent): 321 * UIProcess/qt/qtouchwebpageproxy.h: Added. 322 (QTouchWebPageProxy::touchViewInterface): 323 (QTouchWebPageProxy::pageView): 324 * UIProcess/qt/qwkcontext.cpp: Renamed from Source/WebKit2/UIProcess/API/qt/qwkcontext.cpp. 325 (initializePlatformStrategiesIfNeeded): 326 (QWKContextPrivate::QWKContextPrivate): 327 (QWKContextPrivate::~QWKContextPrivate): 328 (QWKContext::QWKContext): 329 (QWKContext::~QWKContext): 330 (QWKContext::setIconDatabasePath): 331 (QWKContext::iconForPageURL): 332 * UIProcess/qt/qwkcontext.h: Renamed from Source/WebKit2/UIProcess/API/qt/qwkcontext.h. 333 * UIProcess/qt/qwkcontext_p.h: Renamed from Source/WebKit2/UIProcess/API/qt/qwkcontext_p.h. 334 * UIProcess/qt/qwkhistory.cpp: Renamed from Source/WebKit2/UIProcess/API/qt/qwkhistory.cpp. 335 (QWKHistoryItemPrivate::QWKHistoryItemPrivate): 336 (QWKHistoryItemPrivate::~QWKHistoryItemPrivate): 337 (QWKHistoryItem::QWKHistoryItem): 338 (QWKHistoryItem::QWKHistoryItem::operator=): 339 (QWKHistoryItem::~QWKHistoryItem): 340 (QWKHistoryItem::title): 341 (QWKHistoryItem::url): 342 (QWKHistoryPrivate::QWKHistoryPrivate): 343 (QWKHistoryPrivate::createHistory): 344 (QWKHistoryPrivate::~QWKHistoryPrivate): 345 (QWKHistory::QWKHistory): 346 (QWKHistory::~QWKHistory): 347 (QWKHistory::backListCount): 348 (QWKHistory::forwardListCount): 349 (QWKHistory::count): 350 (QWKHistory::currentItem): 351 (QWKHistory::backItem): 352 (QWKHistory::forwardItem): 353 (QWKHistory::itemAt): 354 (QWKHistory::goToItemAt): 355 (QWKHistory::backItems): 356 (QWKHistory::forwardItems): 357 * UIProcess/qt/qwkhistory.h: Renamed from Source/WebKit2/UIProcess/API/qt/qwkhistory.h. 358 * UIProcess/qt/qwkhistory_p.h: Renamed from Source/WebKit2/UIProcess/API/qt/qwkhistory_p.h. 359 * UIProcess/qt/qwkpreferences.cpp: Renamed from Source/WebKit2/UIProcess/API/qt/qwkpreferences.cpp. 360 (QWKPreferencesPrivate::createPreferences): 361 (QWKPreferencesPrivate::createSharedPreferences): 362 (QWKPreferences::sharedPreferences): 363 (QWKPreferences::QWKPreferences): 364 (QWKPreferences::~QWKPreferences): 365 (QWKPreferences::setFontFamily): 366 (QWKPreferences::fontFamily): 367 (QWKPreferences::testAttribute): 368 (QWKPreferences::setAttribute): 369 (QWKPreferences::setFontSize): 370 (QWKPreferences::fontSize): 371 * UIProcess/qt/qwkpreferences.h: Renamed from Source/WebKit2/UIProcess/API/qt/qwkpreferences.h. 372 * UIProcess/qt/qwkpreferences_p.h: Renamed from Source/WebKit2/UIProcess/API/qt/qwkpreferences_p.h. 373 * WebKit2.pro: 374 * WebKit2API.pri: 375 * WebProcess/WebPage/TiledDrawingArea.cpp: 376 * WebProcess/WebPage/TiledDrawingArea.h: 377 1 378 2011-07-05 Jeff Miller <jeffm@apple.com> 2 379 -
trunk/Source/WebKit2/UIProcess/API/qt/WKView.h
r83297 r90458 21 21 #define WKView_h 22 22 23 #include <WebKit2/qgraphicswkview.h> 24 #include <WebKit2/qwkcontext.h> 25 #include <WebKit2/qwkhistory.h> 26 #include <WebKit2/qwkpage.h> 27 #include <WebKit2/qwkpreferences.h> 23 #include <WebKit2/qdesktopwebview.h> 24 #include <WebKit2/qtouchwebview.h> 25 #include <WebKit2/qtouchwebpage.h> 28 26 29 27 #endif /* WKView_h */ -
trunk/Source/WebKit2/UIProcess/API/qt/tests/tests.pro
r87727 r90458 1 1 TEMPLATE = subdirs 2 SUBDIRS = q graphicswkview qwkpage qwkhistory2 SUBDIRS = qtouchwebview qdesktopwebview commonviewtests -
trunk/Source/WebKit2/UIProcess/TiledDrawingAreaProxy.cpp
r89803 r90458 175 175 } 176 176 177 void TiledDrawingAreaProxy::takeSnapshot(const IntSize& size, const IntRect& contentsRect)178 {179 WebPageProxy* page = this->page();180 page->process()->send(Messages::DrawingArea::TakeSnapshot(size, contentsRect), page->pageID());181 }182 183 177 void TiledDrawingAreaProxy::invalidate(const IntRect& contentsDirtyRect) 184 178 { -
trunk/Source/WebKit2/UIProcess/TiledDrawingAreaProxy.h
r88463 r90458 45 45 #endif 46 46 #elif PLATFORM(QT) 47 class Q GraphicsWKView;47 class QTouchWebPage; 48 48 #include <QImage> 49 49 #endif … … 60 60 typedef WebView PlatformWebView; 61 61 #elif PLATFORM(QT) 62 typedef Q GraphicsWKViewPlatformWebView;62 typedef QTouchWebPage PlatformWebView; 63 63 #endif 64 64 … … 72 72 float contentsScale() const { return m_contentsScale; } 73 73 void setContentsScale(float); 74 75 void takeSnapshot(const WebCore::IntSize& size, const WebCore::IntRect& contentsRect);76 74 77 75 #if USE(ACCELERATED_COMPOSITING) … … 107 105 WebCore::IntRect webViewVisibleRect(); 108 106 void updateWebView(const Vector<WebCore::IntRect>& paintedArea); 109 110 void snapshotTaken(ShareableBitmap*);111 107 112 108 // DrawingAreaProxy -
trunk/Source/WebKit2/UIProcess/WebFullScreenManagerProxy.h
r87839 r90458 55 55 typedef WebView PlatformWebView; 56 56 #elif PLATFORM(QT) 57 typedef QGraphicsWKView PlatformWebView; 57 // FIXME: We need to investigate how to abstract QDesktopWebView/QTouchWebView here. 58 typedef QObject PlatformWebView; 58 59 #elif PLATFORM(GTK) 59 60 class WebView; -
trunk/Source/WebKit2/UIProcess/qt/TiledDrawingAreaProxyQt.cpp
r88463 r90458 33 33 #include "WebPageProxy.h" 34 34 35 #include "q graphicswkview.h"35 #include "qtouchwebpage.h" 36 36 37 37 using namespace WebCore; … … 58 58 WebPageProxy* TiledDrawingAreaProxy::page() 59 59 { 60 return toImpl(m_webView->page()->pageRef()); 61 } 62 63 void TiledDrawingAreaProxy::snapshotTaken(ShareableBitmap* bitmap) 64 { 65 emit m_webView->snapshotTaken(bitmap->createQImage()); 60 return m_webPageProxy; 66 61 } 67 62 -
trunk/Source/WebKit2/UIProcess/qt/WebContextMenuProxyQt.cpp
r85603 r90458 32 32 #include <WebContextMenuItemData.h> 33 33 #include <qmenu.h> 34 #include < qwkpage.h>34 #include <QtWebPageProxy.h> 35 35 36 36 using namespace WebCore; … … 38 38 namespace WebKit { 39 39 40 static Q WKPage::WebAction webActionForContextMenuAction(WebCore::ContextMenuAction action)40 static QtWebPageProxy::WebAction webActionForContextMenuAction(WebCore::ContextMenuAction action) 41 41 { 42 42 switch (action) { 43 43 case WebCore::ContextMenuItemTagOpenLink: 44 return Q WKPage::OpenLink;44 return QtWebPageProxy::OpenLink; 45 45 case WebCore::ContextMenuItemTagOpenLinkInNewWindow: 46 return Q WKPage::OpenLinkInNewWindow;46 return QtWebPageProxy::OpenLinkInNewWindow; 47 47 case WebCore::ContextMenuItemTagCopyLinkToClipboard: 48 return Q WKPage::CopyLinkToClipboard;48 return QtWebPageProxy::CopyLinkToClipboard; 49 49 case WebCore::ContextMenuItemTagOpenImageInNewWindow: 50 return Q WKPage::OpenImageInNewWindow;50 return QtWebPageProxy::OpenImageInNewWindow; 51 51 case WebCore::ContextMenuItemTagGoBack: 52 return Q WKPage::Back;52 return QtWebPageProxy::Back; 53 53 case WebCore::ContextMenuItemTagGoForward: 54 return Q WKPage::Forward;54 return QtWebPageProxy::Forward; 55 55 case WebCore::ContextMenuItemTagStop: 56 return Q WKPage::Stop;56 return QtWebPageProxy::Stop; 57 57 case WebCore::ContextMenuItemTagReload: 58 return Q WKPage::Reload;58 return QtWebPageProxy::Reload; 59 59 case WebCore::ContextMenuItemTagCut: 60 return Q WKPage::Cut;60 return QtWebPageProxy::Cut; 61 61 case WebCore::ContextMenuItemTagCopy: 62 return Q WKPage::Copy;62 return QtWebPageProxy::Copy; 63 63 case WebCore::ContextMenuItemTagPaste: 64 return Q WKPage::Paste;64 return QtWebPageProxy::Paste; 65 65 case WebCore::ContextMenuItemTagSelectAll: 66 return Q WKPage::SelectAll;66 return QtWebPageProxy::SelectAll; 67 67 default: 68 68 break; 69 69 } 70 return Q WKPage::NoWebAction;70 return QtWebPageProxy::NoWebAction; 71 71 } 72 72 73 WebContextMenuProxyQt::WebContextMenuProxyQt(Q WKPage* page)73 WebContextMenuProxyQt::WebContextMenuProxyQt(QtWebPageProxy* page) 74 74 : m_page(page) 75 75 { 76 76 } 77 77 78 PassRefPtr<WebContextMenuProxyQt> WebContextMenuProxyQt::create(Q WKPage* page)78 PassRefPtr<WebContextMenuProxyQt> WebContextMenuProxyQt::create(QtWebPageProxy* page) 79 79 { 80 80 return adoptRef(new WebContextMenuProxyQt(page)); … … 88 88 OwnPtr<QMenu> menu = createContextMenu(items); 89 89 90 // We send the signal, even with no items, because the client should be able to show custom items91 // evenif WebKit has nothing to show.90 // We call showContextMenu(), even with no items, because the client should be able to show custom items 91 // if WebKit has nothing to show. 92 92 if (!menu) 93 93 menu = adoptPtr(new QMenu); 94 94 95 95 menu->move(position); 96 emitm_page->showContextMenu(QSharedPointer<QMenu>(menu.leakPtr()));96 m_page->showContextMenu(QSharedPointer<QMenu>(menu.leakPtr())); 97 97 } 98 98 99 99 void WebContextMenuProxyQt::hideContextMenu() 100 100 { 101 m_page->hideContextMenu(); 101 102 } 102 103 … … 109 110 case WebCore::CheckableActionType: /* fall through */ 110 111 case WebCore::ActionType: { 111 Q WKPage::WebAction action = webActionForContextMenuAction(item.action());112 QtWebPageProxy::WebAction action = webActionForContextMenuAction(item.action()); 112 113 QAction* qtAction = m_page->action(action); 113 114 if (qtAction) { -
trunk/Source/WebKit2/UIProcess/qt/WebContextMenuProxyQt.h
r79316 r90458 32 32 33 33 class QMenu; 34 class Q WKPage;34 class QtWebPageProxy; 35 35 class WebContextMenuItemData; 36 36 … … 39 39 class WebContextMenuProxyQt : public WebContextMenuProxy { 40 40 public: 41 static PassRefPtr<WebContextMenuProxyQt> create(Q WKPage*);41 static PassRefPtr<WebContextMenuProxyQt> create(QtWebPageProxy*); 42 42 43 43 private: 44 WebContextMenuProxyQt(Q WKPage*);44 WebContextMenuProxyQt(QtWebPageProxy*); 45 45 46 46 virtual void showContextMenu(const WebCore::IntPoint&, const Vector<WebContextMenuItemData>&); … … 49 49 PassOwnPtr<QMenu> createContextMenu(const Vector<WebContextMenuItemData>& items) const; 50 50 51 Q WKPage* const m_page;51 QtWebPageProxy* const m_page; 52 52 }; 53 53 -
trunk/Source/WebKit2/WebKit2.pro
r90162 r90458 235 235 UIProcess/WebResourceLoadClient.h \ 236 236 UIProcess/WebUIClient.h \ 237 UIProcess/qt/ClientImpl.h \ 238 UIProcess/qt/TouchViewInterface.h \ 239 UIProcess/qt/qdesktopwebpageproxy.h \ 240 UIProcess/qt/qtouchwebpageproxy.h \ 241 UIProcess/qt/QtWebPageProxy.h \ 242 UIProcess/qt/qwkcontext.h \ 243 UIProcess/qt/qwkcontext_p.h \ 244 UIProcess/qt/qwkhistory.h \ 245 UIProcess/qt/qwkhistory_p.h \ 246 UIProcess/qt/qwkpreferences.h \ 247 UIProcess/qt/qwkpreferences_p.h \ 248 UIProcess/qt/ViewInterface.h \ 237 249 UIProcess/qt/WebUndoCommandQt.h \ 238 250 UIProcess/qt/WebContextMenuProxyQt.h \ … … 452 464 UIProcess/WebResourceLoadClient.cpp \ 453 465 UIProcess/WebUIClient.cpp \ 466 UIProcess/qt/ClientImpl.cpp \ 467 UIProcess/qt/TouchViewInterface.cpp \ 468 UIProcess/qt/qdesktopwebpageproxy.cpp \ 469 UIProcess/qt/qtouchwebpageproxy.cpp \ 470 UIProcess/qt/QtWebPageProxy.cpp \ 471 UIProcess/qt/qwkcontext.cpp \ 472 UIProcess/qt/qwkhistory.cpp \ 473 UIProcess/qt/qwkpreferences.cpp \ 474 UIProcess/qt/ViewInterface.cpp \ 454 475 UIProcess/qt/TiledDrawingAreaProxyQt.cpp \ 455 476 UIProcess/qt/TiledDrawingAreaTileQt.cpp \ -
trunk/Source/WebKit2/WebKit2API.pri
r86694 r90458 45 45 $$SOURCE_DIR/WebKit2/UIProcess/API/cpp/qt/WKStringQt.cpp \ 46 46 $$SOURCE_DIR/WebKit2/UIProcess/API/cpp/qt/WKURLQt.cpp \ 47 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/ClientImpl.cpp \ 48 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qgraphicswkview.cpp \ 49 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qwkcontext.cpp \ 50 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qwkhistory.cpp \ 51 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qwkpage.cpp \ 52 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qwkpreferences.cpp \ 47 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qdesktopwebview.cpp \ 48 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qtouchwebpage.cpp \ 49 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qtouchwebview.cpp \ 53 50 $$SOURCE_DIR/WebKit2/WebProcess/InjectedBundle/API/c/WKBundle.cpp \ 54 51 $$SOURCE_DIR/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.cpp \ … … 123 120 $$SOURCE_DIR/WebKit2/UIProcess/API/cpp/qt/WKStringQt.h \ 124 121 $$SOURCE_DIR/WebKit2/UIProcess/API/cpp/qt/WKURLQt.h \ 125 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/ClientImpl.h \ 126 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qgraphicswkview.h \ 127 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qwkcontext.h \ 128 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qwkcontext_p.h \ 129 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qwkhistory.h \ 130 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qwkhistory_p.h \ 131 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qwkpage.h \ 132 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qwkpage_p.h \ 133 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qwkpreferences.h \ 122 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qdesktopwebview.h \ 123 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qdesktopwebview_p.h \ 124 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qtouchwebpage.h \ 125 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qtouchwebpage_p.h \ 126 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qtouchwebview.h \ 127 $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qtouchwebview_p.h \ 134 128 $$SOURCE_DIR/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.h \ 135 129 $$SOURCE_DIR/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.h \ -
trunk/Source/WebKit2/WebProcess/WebPage/TiledDrawingArea.cpp
r88463 r90458 205 205 } 206 206 207 void TiledDrawingArea::takeSnapshot(const WebCore::IntSize& targetSize, const WebCore::IntRect& contentsRect)208 {209 m_webPage->layoutIfNeeded();210 211 WebCore::IntRect rect(contentsRect);212 rect.intersect(IntRect(IntPoint::zero(), m_webPage->mainFrame()->coreFrame()->view()->contentsSize()));213 214 float targetScale = float(targetSize.width()) / rect.width();215 IntRect tileRect(IntPoint(rect.x() * targetScale, rect.y() * targetScale), targetSize);216 217 UpdateInfo updateInfo;218 updateInfo.updateRectBounds = tileRect;219 RefPtr<ShareableBitmap> bitmap = ShareableBitmap::createShareable(tileRect.size(), ShareableBitmap::SupportsAlpha);220 bitmap->createHandle(updateInfo.bitmapHandle);221 222 paintIntoBitmap(bitmap.get(), tileRect, targetScale);223 m_webPage->send(Messages::DrawingAreaProxy::SnapshotTaken(updateInfo));224 }225 226 207 } // namespace WebKit 227 208 -
trunk/Source/WebKit2/WebProcess/WebPage/TiledDrawingArea.h
r88463 r90458 65 65 virtual void cancelTileUpdate(int tileID); 66 66 virtual void requestTileUpdate(int tileID, const WebCore::IntRect& dirtyRect, float scale); 67 virtual void takeSnapshot(const WebCore::IntSize& targetSize, const WebCore::IntRect& contentsRect);68 67 69 68 // Platform overrides -
trunk/Tools/ChangeLog
r90449 r90458 1 2011-07-06 Andreas Kling <kling@webkit.org> 2 3 [Qt][WK2] Split Qt API into two different web views (touch and desktop) 4 https://bugs.webkit.org/show_bug.cgi?id=63950 5 6 Co-authored with Benjamin Poulain <benjamin@webkit.org>. 7 8 Reviewed by Kenneth Rohde Christiansen. 9 10 Port WTR/Qt to use QDesktopWebView and force a 800x600 viewport. 11 12 The Qt MiniBrowser now defaults to QDesktopWebView but can be started 13 in QTouchWebView mode by passing -touch on the command line. 14 15 A lot of functionality has been removed and/or disabled from 16 MiniBrowser until we reintroduce the necessary API's. 17 18 * MiniBrowser/qt/BrowserView.cpp: 19 (BrowserView::BrowserView): 20 (BrowserView::~BrowserView): 21 (BrowserView::load): 22 (BrowserView::view): 23 (BrowserView::touchWebView): 24 (BrowserView::desktopWebView): 25 * MiniBrowser/qt/BrowserView.h: 26 * MiniBrowser/qt/BrowserWindow.cpp: 27 (newPageFunction): 28 (BrowserWindow::BrowserWindow): 29 (BrowserWindow::webView): 30 (BrowserWindow::newWindow): 31 (BrowserWindow::showUserAgentDialog): 32 (BrowserWindow::updateUserAgentList): 33 * MiniBrowser/qt/BrowserWindow.h: 34 * MiniBrowser/qt/MiniBrowserApplication.cpp: 35 (MiniBrowserApplication::handleUserOptions): 36 * MiniBrowser/qt/MiniBrowserApplication.h: 37 (WindowOptions::WindowOptions): 38 * MiniBrowser/qt/UrlLoader.cpp: 39 (UrlLoader::UrlLoader): 40 * MiniBrowser/qt/main.cpp: 41 (main): 42 * WebKitTestRunner/qt/PlatformWebViewQt.cpp: 43 (WTR::WebView::wkView): 44 (WTR::WebView::pageRef): 45 (WTR::WebView::WebView): 46 (WTR::PlatformWebView::page): 47 (WTR::PlatformWebView::windowFrame): 48 (WTR::PlatformWebView::setWindowFrame): 49 1 50 2011-07-06 Eric Seidel <eric@webkit.org> 2 51 -
trunk/Tools/MiniBrowser/qt/BrowserView.cpp
r77767 r90458 30 30 31 31 #include <QGraphicsScene> 32 #include <qdesktopwebview.h> 33 #include <qtouchwebview.h> 34 #include <qtouchwebpage.h> 32 35 33 BrowserView::BrowserView( QGraphicsWKView::BackingStoreType backingStoreType, QWKContext* context, QWidget* parent)36 BrowserView::BrowserView(bool useTouchWebView, QWidget* parent) 34 37 : QGraphicsView(parent) 35 38 , m_item(0) 36 39 { 37 m_item = new QGraphicsWKView(context, backingStoreType, 0); 40 if (useTouchWebView) 41 m_item = new QTouchWebView; 42 else 43 m_item = new QDesktopWebView; 44 38 45 setScene(new QGraphicsScene(this)); 39 46 scene()->addItem(m_item); … … 42 49 setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 43 50 setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 51 } 52 53 BrowserView::~BrowserView() 54 { 55 delete m_item; 56 m_item = 0; 44 57 } 45 58 … … 52 65 } 53 66 54 void BrowserView::load(const QString& url )67 void BrowserView::load(const QString& urlString) 55 68 { 56 return m_item->load(QUrl::fromUserInput(url)); 69 QUrl url(QUrl::fromUserInput(urlString)); 70 71 if (desktopWebView()) 72 desktopWebView()->load(url); 73 else if (touchWebView()) 74 touchWebView()->page()->load(url); 57 75 } 58 76 59 QGraphicsW KView* BrowserView::view() const77 QGraphicsWidget* BrowserView::view() const 60 78 { 61 79 return m_item; 62 80 } 81 82 QTouchWebView* BrowserView::touchWebView() const 83 { 84 return qobject_cast<QTouchWebView*>(m_item); 85 } 86 87 QDesktopWebView* BrowserView::desktopWebView() const 88 { 89 return qobject_cast<QDesktopWebView*>(m_item); 90 } -
trunk/Tools/MiniBrowser/qt/BrowserView.h
r77253 r90458 31 31 32 32 #include <QGraphicsView> 33 #include "qgraphicswkview.h" 34 #include "qwkcontext.h" 33 34 class QDesktopWebView; 35 class QTouchWebView; 35 36 36 37 class BrowserView : public QGraphicsView { … … 38 39 39 40 public: 40 BrowserView( QGraphicsWKView::BackingStoreType, QWKContext*, QWidget* parent = 0);41 virtual ~BrowserView() { delete m_item; }41 BrowserView(bool useTouchWebView, QWidget* parent = 0); 42 virtual ~BrowserView(); 42 43 43 44 void load(const QString&); 44 QGraphicsWKView* view() const; 45 QGraphicsWidget* view() const; 46 47 QTouchWebView* touchWebView() const; 48 QDesktopWebView* desktopWebView() const; 45 49 46 50 protected: … … 48 52 49 53 private: 50 QGraphicsW KView* m_item;54 QGraphicsWidget* m_item; 51 55 }; 52 56 -
trunk/Tools/MiniBrowser/qt/BrowserWindow.cpp
r89139 r90458 30 30 31 31 #include "UrlLoader.h" 32 #include "qwkpreferences.h" 32 #include "qdesktopwebview.h" 33 #include "qtouchwebview.h" 34 #include "qtouchwebpage.h" 33 35 34 36 #if defined(QT_CONFIGURED_WITH_OPENGL) … … 36 38 #endif 37 39 40 #if 0 41 // FIXME 38 42 static QWKPage* newPageFunction(QWKPage* page) 39 43 { 40 BrowserWindow* window = new BrowserWindow( page->context());44 BrowserWindow* window = new BrowserWindow(); 41 45 return window->page(); 42 46 } 43 44 QVector<qreal> BrowserWindow::m_zoomLevels; 45 46 BrowserWindow::BrowserWindow(QWKContext* context, WindowOptions* options) 47 : m_isZoomTextOnly(false) 48 , m_currentZoom(1) 49 , m_urlLoader(0) 50 , m_context(context) 47 #endif 48 49 BrowserWindow::BrowserWindow(WindowOptions* options) 50 : m_urlLoader(0) 51 , m_browser(0) 51 52 { 52 53 if (options) … … 57 58 } 58 59 59 if (m_windowOptions.useTiledBackingStore) 60 m_browser = new BrowserView(QGraphicsWKView::Tiled, context); 61 else 62 m_browser = new BrowserView(QGraphicsWKView::Simple, context); 60 m_browser = new BrowserView(m_windowOptions.useTouchWebView); 63 61 64 62 #if defined(QT_CONFIGURED_WITH_OPENGL) … … 69 67 setAttribute(Qt::WA_DeleteOnClose); 70 68 71 connect( m_browser->view(), SIGNAL(loadProgress(int)), SLOT(loadProgress(int)));72 connect( m_browser->view(), SIGNAL(titleChanged(const QString&)), SLOT(setWindowTitle(const QString&)));73 connect( m_browser->view(), SIGNAL(urlChanged(const QUrl&)), SLOT(urlChanged(const QUrl&)));69 connect(webView(), SIGNAL(loadProgress(int)), SLOT(loadProgress(int))); 70 connect(webView(), SIGNAL(titleChanged(QString)), SLOT(setWindowTitle(QString))); 71 connect(webView(), SIGNAL(urlChanged(QUrl)), SLOT(urlChanged(QUrl))); 74 72 75 73 if (m_windowOptions.printLoadedUrls) 76 connect(page(), SIGNAL(urlChanged(QUrl)), this, SLOT(printURL(QUrl))); 74 connect(webView(), SIGNAL(urlChanged(QUrl)), this, SLOT(printURL(QUrl))); 75 76 if (QDesktopWebView* const desktopWebView = m_browser->desktopWebView()) 77 connect(desktopWebView, SIGNAL(statusBarMessageChanged(QString)), statusBar(), SLOT(showMessage(QString))); 77 78 78 79 this->setCentralWidget(m_browser); … … 85 86 fileMenu->addAction("Quit", this, SLOT(close())); 86 87 88 #if 0 87 89 QMenu* editMenu = menuBar()->addMenu("&Edit"); 88 90 QAction* undo = page()->action(QWKPage::Undo); … … 98 100 viewMenu->addAction(page()->action(QWKPage::Reload)); 99 101 viewMenu->addSeparator(); 100 QAction* zoomIn = viewMenu->addAction("Zoom &In", this, SLOT(zoomIn()));101 QAction* zoomOut = viewMenu->addAction("Zoom &Out", this, SLOT(zoomOut()));102 QAction* resetZoom = viewMenu->addAction("Reset Zoom", this, SLOT(resetZoom()));103 QAction* zoomText = viewMenu->addAction("Zoom Text Only", this, SLOT(toggleZoomTextOnly(bool)));104 zoomText->setCheckable(true);105 zoomText->setChecked(false);106 viewMenu->addSeparator();107 102 viewMenu->addAction("Take Screen Shot...", this, SLOT(screenshot())); 108 109 zoomIn->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Plus)); 110 zoomOut->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Minus)); 111 resetZoom->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_0)); 103 #endif 112 104 113 105 QMenu* windowMenu = menuBar()->addMenu("&Window"); … … 122 114 123 115 QMenu* toolsMenu = menuBar()->addMenu("&Develop"); 124 QAction* toggleFrameFlattening = toolsMenu->addAction("Toggle Frame Flattening", this, SLOT(toggleFrameFlattening(bool)));125 toggleFrameFlattening->setCheckable(true);126 toggleFrameFlattening->setChecked(false);127 116 #if defined(QT_CONFIGURED_WITH_OPENGL) 128 117 QAction* toggleGLViewport = toolsMenu->addAction("Toggle GL Viewport", this, SLOT(toggleGLViewport(bool))); … … 135 124 toolsMenu->addAction("Load URLs from file", this, SLOT(loadURLListFromFile())); 136 125 137 QMenu* settingsMenu = menuBar()->addMenu("&Settings");138 QAction* toggleAutoLoadImages = settingsMenu->addAction("Disable Auto Load Images", this, SLOT(toggleAutoLoadImages(bool)));139 toggleAutoLoadImages->setCheckable(true);140 toggleAutoLoadImages->setChecked(false);141 QAction* toggleDisableJavaScript = settingsMenu->addAction("Disable JavaScript", this, SLOT(toggleDisableJavaScript(bool)));142 toggleDisableJavaScript->setCheckable(true);143 toggleDisableJavaScript->setChecked(false);144 145 126 m_addressBar = new QLineEdit(); 146 127 connect(m_addressBar, SIGNAL(returnPressed()), SLOT(changeLocation())); … … 150 131 bar->setIconSize(QSize(16, 16)); 151 132 #endif 133 #if 0 152 134 bar->addAction(page()->action(QWKPage::Back)); 153 135 bar->addAction(page()->action(QWKPage::Forward)); 154 136 bar->addAction(page()->action(QWKPage::Reload)); 155 137 bar->addAction(page()->action(QWKPage::Stop)); 138 #endif 156 139 #if defined(Q_OS_SYMBIAN) 157 140 addToolBarBreak(); … … 164 147 connect(selectAddressBar, SIGNAL(activated()), this, SLOT(openLocation())); 165 148 149 #if 0 150 // FIXME 166 151 page()->setCreateNewPageFunction(newPageFunction); 167 168 // the zoom values are chosen to be like in Mozilla Firefox 3 169 if (!m_zoomLevels.count()) { 170 m_zoomLevels << 0.3 << 0.5 << 0.67 << 0.8 << 0.9; 171 m_zoomLevels << 1; 172 m_zoomLevels << 1.1 << 1.2 << 1.33 << 1.5 << 1.7 << 2 << 2.4 << 3; 173 } 152 #endif 174 153 175 154 if (m_windowOptions.startMaximized) … … 186 165 } 187 166 188 Q WKPage* BrowserWindow::page()189 { 190 return m_browser-> view()->page();167 QObject* BrowserWindow::webView() const 168 { 169 return m_browser->touchWebView() ? static_cast<QObject*>(m_browser->touchWebView()->page()) : static_cast<QObject*>(m_browser->desktopWebView()); 191 170 } 192 171 193 172 BrowserWindow* BrowserWindow::newWindow(const QString& url) 194 173 { 195 BrowserWindow* window; 196 if (m_windowOptions.useSeparateWebProcessPerWindow) { 197 QWKContext* context = new QWKContext(); 198 window = new BrowserWindow(context); 199 context->setParent(window); 200 } else 201 window = new BrowserWindow(m_context); 202 174 BrowserWindow* window = new BrowserWindow(); 203 175 window->load(url); 204 176 return window; … … 290 262 } 291 263 292 void BrowserWindow::zoomIn()293 {294 if (m_isZoomTextOnly)295 m_currentZoom = page()->textZoomFactor();296 else297 m_currentZoom = page()->pageZoomFactor();298 299 int i = m_zoomLevels.indexOf(m_currentZoom);300 Q_ASSERT(i >= 0);301 if (i < m_zoomLevels.count() - 1)302 m_currentZoom = m_zoomLevels[i + 1];303 304 applyZoom();305 }306 307 void BrowserWindow::zoomOut()308 {309 if (m_isZoomTextOnly)310 m_currentZoom = page()->textZoomFactor();311 else312 m_currentZoom = page()->pageZoomFactor();313 314 int i = m_zoomLevels.indexOf(m_currentZoom);315 Q_ASSERT(i >= 0);316 if (i > 0)317 m_currentZoom = m_zoomLevels[i - 1];318 319 applyZoom();320 }321 322 void BrowserWindow::resetZoom()323 {324 m_currentZoom = 1;325 applyZoom();326 }327 328 void BrowserWindow::toggleZoomTextOnly(bool b)329 {330 m_isZoomTextOnly = b;331 }332 333 264 void BrowserWindow::toggleFullScreenMode(bool enable) 334 265 { … … 338 269 } 339 270 340 void BrowserWindow::toggleFrameFlattening(bool toggle)341 {342 page()->preferences()->setAttribute(QWKPreferences::FrameFlatteningEnabled, toggle);343 }344 345 346 271 void BrowserWindow::showUserAgentDialog() 347 272 { 273 #if 0 274 // FIXME 348 275 updateUserAgentList(); 349 276 … … 371 298 if (dialog.exec() && !combo->currentText().isEmpty()) 372 299 page()->setCustomUserAgent(combo->currentText()); 300 #endif 373 301 } 374 302 … … 393 321 } 394 322 395 void BrowserWindow::toggleDisableJavaScript(bool enable)396 {397 page()->preferences()->setAttribute(QWKPreferences::JavascriptEnabled, !enable);398 }399 400 void BrowserWindow::toggleAutoLoadImages(bool enable)401 {402 page()->preferences()->setAttribute(QWKPreferences::AutoLoadImages, !enable);403 }404 405 323 void BrowserWindow::updateUserAgentList() 406 324 { 325 #if 0 326 // FIXME 407 327 QFile file(":/useragentlist.txt"); 408 328 … … 420 340 if (!(wkPage->customUserAgent().isEmpty() || m_userAgentList.contains(wkPage->customUserAgent()))) 421 341 m_userAgentList << wkPage->customUserAgent(); 422 } 423 424 void BrowserWindow::applyZoom() 425 { 426 if (m_isZoomTextOnly) 427 page()->setTextZoomFactor(m_currentZoom); 428 else 429 page()->setPageZoomFactor(m_currentZoom); 342 #endif 430 343 } 431 344 -
trunk/Tools/MiniBrowser/qt/BrowserWindow.h
r87824 r90458 42 42 43 43 public: 44 BrowserWindow( QWKContext*,WindowOptions* = 0);44 BrowserWindow(WindowOptions* = 0); 45 45 ~BrowserWindow(); 46 46 void load(const QString& url); 47 47 48 Q WKPage* page();48 QObject* webView() const; 49 49 50 50 public slots: … … 61 61 void openFile(); 62 62 63 void zoomIn();64 void zoomOut();65 void resetZoom();66 void toggleZoomTextOnly(bool on);67 63 void screenshot(); 68 64 69 65 void toggleFullScreenMode(bool enable); 70 66 71 void toggleFrameFlattening(bool);72 67 void showUserAgentDialog(); 73 68 … … 76 71 void printURL(const QUrl&); 77 72 78 void toggleAutoLoadImages(bool);79 void toggleDisableJavaScript(bool);80 73 void toggleGLViewport(bool); 81 74 … … 83 76 void updateUserAgentList(); 84 77 85 void applyZoom();86 87 static QVector<qreal> m_zoomLevels;88 bool m_isZoomTextOnly;89 qreal m_currentZoom;90 91 78 UrlLoader* m_urlLoader; 92 QWKContext* m_context;93 79 WindowOptions m_windowOptions; 94 80 BrowserView* m_browser; -
trunk/Tools/MiniBrowser/qt/MiniBrowserApplication.cpp
r87824 r90458 56 56 if (args.contains("-help")) { 57 57 qDebug() << "Usage:" << programName.toLatin1().data() 58 << "[-touch]" 58 59 << "[-maximize]" 59 60 << "[-r list]" … … 61 62 << "[-robot-extra-time seconds]" 62 63 << "[-chunked-drawing-area]" 63 << "[-separate-web-process-per-window]"64 64 << "[-print-loaded-urls]" 65 65 #if defined(QT_CONFIGURED_WITH_OPENGL) … … 69 69 appQuit(0); 70 70 } 71 72 if (args.contains("-touch")) 73 m_windowOptions.useTouchWebView = true; 71 74 72 75 if (args.contains("-maximize")) … … 96 99 m_robotExtraTimeSeconds = takeOptionValue(&args, robotExtraTimeIndex).toInt(); 97 100 98 if (args.contains("-chunked-drawing-area"))99 m_windowOptions.useTiledBackingStore = false;100 101 if (args.contains("-separate-web-process-per-window"))102 m_windowOptions.useSeparateWebProcessPerWindow = true;103 104 101 if (args.contains("-print-loaded-urls")) 105 102 m_windowOptions.printLoadedUrls = true; -
trunk/Tools/MiniBrowser/qt/MiniBrowserApplication.h
r87824 r90458 35 35 struct WindowOptions { 36 36 WindowOptions() 37 : useTiledBackingStore(true) 38 , useSeparateWebProcessPerWindow(false) 39 , printLoadedUrls(false) 37 : printLoadedUrls(false) 38 , useTouchWebView(false) 40 39 #if defined(Q_OS_SYMBIAN) 41 40 , startMaximized(true) … … 49 48 } 50 49 51 bool useTiledBackingStore;52 bool useSeparateWebProcessPerWindow;53 50 bool printLoadedUrls; 51 bool useTouchWebView; 54 52 bool startMaximized; 55 53 #if defined(QT_CONFIGURED_WITH_OPENGL) -
trunk/Tools/MiniBrowser/qt/UrlLoader.cpp
r82927 r90458 42 42 connect(&m_checkIfFinishedTimer, SIGNAL(timeout()), this, SLOT(checkIfFinished())); 43 43 // loadStarted and loadFinished on QWebPage is emitted for each frame/sub-frame 44 connect(m_browserWindow-> page(), SIGNAL(loadStarted()), this, SLOT(frameLoadStarted()));45 connect(m_browserWindow-> page(), SIGNAL(loadFinished(bool)), this, SLOT(frameLoadFinished()));44 connect(m_browserWindow->webView(), SIGNAL(loadStarted()), this, SLOT(frameLoadStarted())); 45 connect(m_browserWindow->webView(), SIGNAL(loadFinished(bool)), this, SLOT(frameLoadFinished())); 46 46 47 47 if (timeoutSeconds) { 48 48 m_timeoutTimer.setInterval(timeoutSeconds * 1000); 49 49 m_timeoutTimer.setSingleShot(true); 50 connect(m_browserWindow-> page(), SIGNAL(loadStarted()), &m_timeoutTimer, SLOT(start()));50 connect(m_browserWindow->webView(), SIGNAL(loadStarted()), &m_timeoutTimer, SLOT(start())); 51 51 connect(&m_timeoutTimer, SIGNAL(timeout()), this, SLOT(loadNext())); 52 52 } -
trunk/Tools/MiniBrowser/qt/main.cpp
r82938 r90458 33 33 #include <QLatin1String> 34 34 #include <QRegExp> 35 #include <qgraphicswkview.h>36 35 #include <QtGui> 37 36 … … 41 40 42 41 if (app.isRobotized()) { 43 QWKContext* context = new QWKContext; 44 BrowserWindow* window = new BrowserWindow(context, &app.m_windowOptions); 42 BrowserWindow* window = new BrowserWindow(&app.m_windowOptions); 45 43 UrlLoader loader(window, app.urls().at(0), app.robotTimeout(), app.robotExtraTime()); 46 44 loader.loadNext(); … … 59 57 } 60 58 61 QWKContext* context = new QWKContext; 62 BrowserWindow* window = new BrowserWindow(context, &app.m_windowOptions); 63 if (app.m_windowOptions.useSeparateWebProcessPerWindow) 64 context->setParent(window); 65 59 BrowserWindow* window = new BrowserWindow(&app.m_windowOptions); 66 60 window->load(urls.at(0)); 67 61 -
trunk/Tools/WebKitTestRunner/qt/PlatformWebViewQt.cpp
r90095 r90458 28 28 29 29 #include "PlatformWebView.h" 30 #include "qgraphicswkview.h" 31 #include "qwkcontext.h" 30 #include "qdesktopwebview.h" 32 31 #include <QtGui> 33 32 … … 38 37 WebView(WKContextRef, WKPageGroupRef); 39 38 40 QGraphicsWKView* wkView() const { return m_item; } 39 QDesktopWebView* wkView() const { return m_item; } 40 WKPageRef pageRef() const { return m_item->pageRef(); } 41 41 42 42 virtual ~WebView() { delete m_item; } 43 43 44 44 private: 45 Q GraphicsWKView* m_item;45 QDesktopWebView* m_item; 46 46 }; 47 47 48 48 WebView::WebView(WKContextRef contextRef, WKPageGroupRef pageGroupRef) 49 49 : QGraphicsView() 50 , m_item(new Q GraphicsWKView(new QWKContext(contextRef, this), pageGroupRef))50 , m_item(new QDesktopWebView(contextRef, pageGroupRef)) 51 51 { 52 m_item->setPreferredSize(800, 600); 52 53 setScene(new QGraphicsScene(this)); 53 54 scene()->addItem(m_item); … … 79 80 WKPageRef PlatformWebView::page() 80 81 { 81 return m_view-> wkView()->page()->pageRef();82 return m_view->pageRef(); 82 83 } 83 84 … … 89 90 WKRect PlatformWebView::windowFrame() 90 91 { 91 QRect windowRect = m_window->geometry(); 92 // Implement. 93 92 94 WKRect wkFrame; 93 wkFrame.origin.x = windowRect.x();94 wkFrame.origin.y = windowRect.y();95 wkFrame.size.width = windowRect.size().width();96 wkFrame.size.height = windowRect.size().height();95 wkFrame.origin.x = 0; 96 wkFrame.origin.y = 0; 97 wkFrame.size.width = 0; 98 wkFrame.size.height = 0; 97 99 return wkFrame; 98 100 } 99 101 100 void PlatformWebView::setWindowFrame(WKRect rect)102 void PlatformWebView::setWindowFrame(WKRect) 101 103 { 102 m_window->setGeometry(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height);104 // Implement. 103 105 } 104 106
Note: See TracChangeset
for help on using the changeset viewer.