From f05b935882198ccf7d81675736e3aeb089c5113a Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Thu, 5 May 2011 14:36:32 +0100 Subject: Merge WebKit at r74534: Initial merge by git. Change-Id: I6ccd1154fa1b19c2ec2a66878eb675738735f1eb --- WebKitTools/QtTestBrowser/QtTestBrowser.pro | 61 -- WebKitTools/QtTestBrowser/QtTestBrowser.qrc | 5 - WebKitTools/QtTestBrowser/fpstimer.cpp | 80 --- WebKitTools/QtTestBrowser/fpstimer.h | 54 -- WebKitTools/QtTestBrowser/launcherwindow.cpp | 861 --------------------------- WebKitTools/QtTestBrowser/launcherwindow.h | 206 ------- WebKitTools/QtTestBrowser/locationedit.cpp | 80 --- WebKitTools/QtTestBrowser/locationedit.h | 54 -- WebKitTools/QtTestBrowser/main.cpp | 258 -------- WebKitTools/QtTestBrowser/mainwindow.cpp | 197 ------ WebKitTools/QtTestBrowser/mainwindow.h | 72 --- WebKitTools/QtTestBrowser/urlloader.cpp | 130 ---- WebKitTools/QtTestBrowser/urlloader.h | 71 --- WebKitTools/QtTestBrowser/useragentlist.txt | 10 - WebKitTools/QtTestBrowser/utils.cpp | 88 --- WebKitTools/QtTestBrowser/utils.h | 52 -- WebKitTools/QtTestBrowser/webinspector.h | 56 -- WebKitTools/QtTestBrowser/webpage.cpp | 204 ------- WebKitTools/QtTestBrowser/webpage.h | 69 --- WebKitTools/QtTestBrowser/webview.cpp | 273 --------- WebKitTools/QtTestBrowser/webview.h | 129 ---- 21 files changed, 3010 deletions(-) delete mode 100644 WebKitTools/QtTestBrowser/QtTestBrowser.pro delete mode 100644 WebKitTools/QtTestBrowser/QtTestBrowser.qrc delete mode 100644 WebKitTools/QtTestBrowser/fpstimer.cpp delete mode 100644 WebKitTools/QtTestBrowser/fpstimer.h delete mode 100644 WebKitTools/QtTestBrowser/launcherwindow.cpp delete mode 100644 WebKitTools/QtTestBrowser/launcherwindow.h delete mode 100644 WebKitTools/QtTestBrowser/locationedit.cpp delete mode 100644 WebKitTools/QtTestBrowser/locationedit.h delete mode 100644 WebKitTools/QtTestBrowser/main.cpp delete mode 100644 WebKitTools/QtTestBrowser/mainwindow.cpp delete mode 100644 WebKitTools/QtTestBrowser/mainwindow.h delete mode 100644 WebKitTools/QtTestBrowser/urlloader.cpp delete mode 100644 WebKitTools/QtTestBrowser/urlloader.h delete mode 100644 WebKitTools/QtTestBrowser/useragentlist.txt delete mode 100644 WebKitTools/QtTestBrowser/utils.cpp delete mode 100644 WebKitTools/QtTestBrowser/utils.h delete mode 100644 WebKitTools/QtTestBrowser/webinspector.h delete mode 100644 WebKitTools/QtTestBrowser/webpage.cpp delete mode 100644 WebKitTools/QtTestBrowser/webpage.h delete mode 100644 WebKitTools/QtTestBrowser/webview.cpp delete mode 100644 WebKitTools/QtTestBrowser/webview.h (limited to 'WebKitTools/QtTestBrowser') diff --git a/WebKitTools/QtTestBrowser/QtTestBrowser.pro b/WebKitTools/QtTestBrowser/QtTestBrowser.pro deleted file mode 100644 index 62d2c02..0000000 --- a/WebKitTools/QtTestBrowser/QtTestBrowser.pro +++ /dev/null @@ -1,61 +0,0 @@ -TEMPLATE = app - -SOURCES += \ - locationedit.cpp \ - launcherwindow.cpp \ - main.cpp \ - mainwindow.cpp \ - urlloader.cpp \ - utils.cpp \ - webpage.cpp \ - webview.cpp \ - fpstimer.cpp \ - -HEADERS += \ - locationedit.h \ - launcherwindow.h \ - mainwindow.h \ - urlloader.h \ - utils.h \ - webinspector.h \ - webpage.h \ - webview.h \ - fpstimer.h \ - -CONFIG += uitools - -isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../.. -include(../../WebKit.pri) - -DESTDIR = $$OUTPUT_DIR/bin -!CONFIG(standalone_package): CONFIG -= app_bundle - -QT += network -macx:QT+=xml - -linux-* { - # From Creator's src/rpath.pri: - # Do the rpath by hand since it's not possible to use ORIGIN in QMAKE_RPATHDIR - # this expands to $ORIGIN (after qmake and make), it does NOT read a qmake var. - QMAKE_RPATHDIR = \$\$ORIGIN/../lib $$QMAKE_RPATHDIR - MY_RPATH = $$join(QMAKE_RPATHDIR, ":") - - QMAKE_LFLAGS += -Wl,-z,origin \'-Wl,-rpath,$${MY_RPATH}\' - QMAKE_RPATHDIR = -} else { - QMAKE_RPATHDIR = $$OUTPUT_DIR/lib $$QMAKE_RPATHDIR -} - -symbian { - TARGET.UID3 = 0xA000E543 - TARGET.CAPABILITY = ReadUserData WriteUserData NetworkServices Location - MMP_RULES *= pageddata -} - -contains(QT_CONFIG, opengl) { - QT += opengl - DEFINES += QT_CONFIGURED_WITH_OPENGL -} - -RESOURCES += \ - QtTestBrowser.qrc diff --git a/WebKitTools/QtTestBrowser/QtTestBrowser.qrc b/WebKitTools/QtTestBrowser/QtTestBrowser.qrc deleted file mode 100644 index ffe77b0..0000000 --- a/WebKitTools/QtTestBrowser/QtTestBrowser.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - useragentlist.txt - - diff --git a/WebKitTools/QtTestBrowser/fpstimer.cpp b/WebKitTools/QtTestBrowser/fpstimer.cpp deleted file mode 100644 index eae3d9c..0000000 --- a/WebKitTools/QtTestBrowser/fpstimer.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "fpstimer.h" - -#include -#include - -// We save a maximum of 10000 frames, and purge 2000 at a time -#define MAX_FRAMES_SAVED 10000 -#define FRAMES_TO_PURGE_WHEN_FULL 2000 -// 60 FPS -#define FPS_MEASURE_INTERVAL 1000 / 60 - -FpsTimer::FpsTimer(QObject* parent) - : QObject(parent) - , m_timer(0) -{ -} - -int FpsTimer::numFrames(int spanMillis) const -{ - const QTime now = QTime::currentTime(); - - int count = 0; - for (int i = m_frames.length() - 1; i >= 0; --i, ++count) { - int msecs = m_frames[i].msecsTo(now); - if (msecs < 0) - msecs += 24 * 60 * 60 * 1000; - if (msecs > spanMillis) - break; - } - return count; -} - -void FpsTimer::start() -{ - m_timer = startTimer(FPS_MEASURE_INTERVAL); -} - -void FpsTimer::stop() -{ - if (!m_timer) - return; - killTimer(m_timer); - m_frames.clear(); -} - -void FpsTimer::timerEvent(QTimerEvent* event) -{ - if (event->timerId() != m_timer) - return; - m_frames.append(QTime::currentTime()); - if (m_frames.length() > MAX_FRAMES_SAVED) - m_frames.erase(m_frames.begin(), m_frames.begin() + FRAMES_TO_PURGE_WHEN_FULL); -} diff --git a/WebKitTools/QtTestBrowser/fpstimer.h b/WebKitTools/QtTestBrowser/fpstimer.h deleted file mode 100644 index eed1198..0000000 --- a/WebKitTools/QtTestBrowser/fpstimer.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef fpstimer_h -#define fpstimer_h - -#include -#include -#include - -class FpsTimer : public QObject { - Q_OBJECT - -public: - FpsTimer(QObject* parent = 0); - int numFrames(int spanMillis = 1000) const; - -public Q_SLOTS: - void start(); - void stop(); - -protected slots: - virtual void timerEvent(QTimerEvent*); - -private: - int m_timer; - QList m_frames; -}; - -#endif // FPSMEASURE_H diff --git a/WebKitTools/QtTestBrowser/launcherwindow.cpp b/WebKitTools/QtTestBrowser/launcherwindow.cpp deleted file mode 100644 index 7608063..0000000 --- a/WebKitTools/QtTestBrowser/launcherwindow.cpp +++ /dev/null @@ -1,861 +0,0 @@ -/* - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - * Copyright (C) 2009 Girish Ramakrishnan - * Copyright (C) 2006 George Staikos - * Copyright (C) 2006 Dirk Mueller - * Copyright (C) 2006 Zack Rusin - * Copyright (C) 2006 Simon Hausmann - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "launcherwindow.h" - -const int gExitClickArea = 80; -QVector LauncherWindow::m_zoomLevels; - -LauncherWindow::LauncherWindow(WindowOptions* data, QGraphicsScene* sharedScene) - : MainWindow() - , m_currentZoom(100) - , m_view(0) - , m_inspector(0) - , m_formatMenuAction(0) - , m_zoomAnimation(0) -{ - if (data) - m_windowOptions = *data; - - init(); - if (sharedScene && data->useGraphicsView) - static_cast(m_view)->setScene(sharedScene); - - createChrome(); -} - -LauncherWindow::~LauncherWindow() -{ - grabZoomKeys(false); -} - -void LauncherWindow::init() -{ - QSplitter* splitter = new QSplitter(Qt::Vertical, this); - setCentralWidget(splitter); - -#if defined(Q_OS_SYMBIAN) - setWindowState(Qt::WindowMaximized); -#else - setWindowState(Qt::WindowNoState); - resize(800, 600); -#endif - - m_inspector = new WebInspector; -#ifndef QT_NO_PROPERTIES - if (!m_windowOptions.inspectorUrl.isEmpty()) - m_inspector->setProperty("_q_inspectorUrl", m_windowOptions.inspectorUrl); -#endif - connect(this, SIGNAL(destroyed()), m_inspector, SLOT(deleteLater())); - - // the zoom values are chosen to be like in Mozilla Firefox 3 - if (!m_zoomLevels.count()) { - m_zoomLevels << 30 << 50 << 67 << 80 << 90; - m_zoomLevels << 100; - m_zoomLevels << 110 << 120 << 133 << 150 << 170 << 200 << 240 << 300; - } - - grabZoomKeys(true); - - initializeView(); -} - -void LauncherWindow::initializeView() -{ - delete m_view; - - QUrl url = page()->mainFrame()->url(); - setPage(new WebPage(this)); - - QSplitter* splitter = static_cast(centralWidget()); - - if (!m_windowOptions.useGraphicsView) { - WebViewTraditional* view = new WebViewTraditional(splitter); - view->setPage(page()); - - view->installEventFilter(this); - - m_view = view; - } else { - WebViewGraphicsBased* view = new WebViewGraphicsBased(splitter); - view->setPage(page()); - - connect(view, SIGNAL(currentFPSUpdated(int)), this, SLOT(updateFPS(int))); - - view->installEventFilter(this); - // The implementation of QAbstractScrollArea::eventFilter makes us need - // to install the event filter also on the viewport of a QGraphicsView. - view->viewport()->installEventFilter(this); - - m_view = view; - } - - m_touchMocking = false; - - connect(page(), SIGNAL(loadStarted()), this, SLOT(loadStarted())); - connect(page(), SIGNAL(loadFinished(bool)), this, SLOT(loadFinished())); - connect(page(), SIGNAL(linkHovered(const QString&, const QString&, const QString&)), - this, SLOT(showLinkHover(const QString&, const QString&))); - connect(this, SIGNAL(enteredFullScreenMode(bool)), this, SLOT(toggleFullScreenMode(bool))); - - applyPrefs(); - - splitter->addWidget(m_inspector); - m_inspector->setPage(page()); - m_inspector->hide(); - - if (m_windowOptions.remoteInspectorPort) - page()->setProperty("_q_webInspectorServerPort", m_windowOptions.remoteInspectorPort); - - if (url.isValid()) - page()->mainFrame()->load(url); -} - -void LauncherWindow::applyPrefs() -{ - QWebSettings* settings = page()->settings(); - settings->setAttribute(QWebSettings::AcceleratedCompositingEnabled, m_windowOptions.useCompositing); - settings->setAttribute(QWebSettings::TiledBackingStoreEnabled, m_windowOptions.useTiledBackingStore); - settings->setAttribute(QWebSettings::FrameFlatteningEnabled, m_windowOptions.useFrameFlattening); - settings->setAttribute(QWebSettings::WebGLEnabled, m_windowOptions.useWebGL); - - if (!isGraphicsBased()) - return; - - WebViewGraphicsBased* view = static_cast(m_view); - view->setViewportUpdateMode(m_windowOptions.viewportUpdateMode); - view->setFrameRateMeasurementEnabled(m_windowOptions.showFrameRate); - view->setItemCacheMode(m_windowOptions.cacheWebView ? QGraphicsItem::DeviceCoordinateCache : QGraphicsItem::NoCache); - - if (m_windowOptions.resizesToContents) - toggleResizesToContents(m_windowOptions.resizesToContents); -} - -void LauncherWindow::createChrome() -{ - QMenu* fileMenu = menuBar()->addMenu("&File"); - fileMenu->addAction("New Window", this, SLOT(newWindow()), QKeySequence::New); - fileMenu->addAction(tr("Open File..."), this, SLOT(openFile()), QKeySequence::Open); - fileMenu->addAction(tr("Open Location..."), this, SLOT(openLocation()), QKeySequence(Qt::CTRL | Qt::Key_L)); - fileMenu->addAction("Close Window", this, SLOT(close()), QKeySequence::Close); - fileMenu->addSeparator(); - fileMenu->addAction("Take Screen Shot...", this, SLOT(screenshot())); - fileMenu->addAction(tr("Print..."), this, SLOT(print()), QKeySequence::Print); - fileMenu->addSeparator(); - fileMenu->addAction("Quit", QApplication::instance(), SLOT(closeAllWindows()), QKeySequence(Qt::CTRL | Qt::Key_Q)); - - QMenu* editMenu = menuBar()->addMenu("&Edit"); - editMenu->addAction(page()->action(QWebPage::Undo)); - editMenu->addAction(page()->action(QWebPage::Redo)); - editMenu->addSeparator(); - editMenu->addAction(page()->action(QWebPage::Cut)); - editMenu->addAction(page()->action(QWebPage::Copy)); - editMenu->addAction(page()->action(QWebPage::Paste)); - editMenu->addSeparator(); - QAction* setEditable = editMenu->addAction("Set Editable", this, SLOT(setEditable(bool))); - setEditable->setCheckable(true); - - QMenu* viewMenu = menuBar()->addMenu("&View"); - viewMenu->addAction(page()->action(QWebPage::Stop)); - viewMenu->addAction(page()->action(QWebPage::Reload)); - viewMenu->addSeparator(); - QAction* zoomIn = viewMenu->addAction("Zoom &In", this, SLOT(zoomIn())); - QAction* zoomOut = viewMenu->addAction("Zoom &Out", this, SLOT(zoomOut())); - QAction* resetZoom = viewMenu->addAction("Reset Zoom", this, SLOT(resetZoom())); - QAction* zoomTextOnly = viewMenu->addAction("Zoom Text Only", this, SLOT(toggleZoomTextOnly(bool))); - zoomTextOnly->setCheckable(true); - zoomTextOnly->setChecked(false); - viewMenu->addSeparator(); - viewMenu->addAction("Dump HTML", this, SLOT(dumpHtml())); - // viewMenu->addAction("Dump plugins", this, SLOT(dumpPlugins())); - - zoomIn->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Plus)); - zoomOut->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Minus)); - resetZoom->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_0)); - - QMenu* formatMenu = new QMenu("F&ormat", this); - m_formatMenuAction = menuBar()->addMenu(formatMenu); - m_formatMenuAction->setVisible(false); - formatMenu->addAction(page()->action(QWebPage::ToggleBold)); - formatMenu->addAction(page()->action(QWebPage::ToggleItalic)); - formatMenu->addAction(page()->action(QWebPage::ToggleUnderline)); - QMenu* writingMenu = formatMenu->addMenu(tr("Writing Direction")); - writingMenu->addAction(page()->action(QWebPage::SetTextDirectionDefault)); - writingMenu->addAction(page()->action(QWebPage::SetTextDirectionLeftToRight)); - writingMenu->addAction(page()->action(QWebPage::SetTextDirectionRightToLeft)); - - QMenu* windowMenu = menuBar()->addMenu("&Window"); - QAction* toggleFullScreen = windowMenu->addAction("Toggle FullScreen", this, SIGNAL(enteredFullScreenMode(bool))); - toggleFullScreen->setShortcut(Qt::Key_F11); - toggleFullScreen->setCheckable(true); - toggleFullScreen->setChecked(false); - // When exit fullscreen mode by clicking on the exit area (bottom right corner) we must - // uncheck the Toggle FullScreen action. - toggleFullScreen->connect(this, SIGNAL(enteredFullScreenMode(bool)), SLOT(setChecked(bool))); - - QWebSettings* settings = page()->settings(); - - QMenu* toolsMenu = menuBar()->addMenu("&Develop"); - QMenu* graphicsViewMenu = toolsMenu->addMenu("QGraphicsView"); - QAction* toggleGraphicsView = graphicsViewMenu->addAction("Toggle use of QGraphicsView", this, SLOT(toggleWebView(bool))); - toggleGraphicsView->setCheckable(true); - toggleGraphicsView->setChecked(isGraphicsBased()); - - QAction* toggleWebGL = toolsMenu->addAction("Toggle WebGL", this, SLOT(toggleWebGL(bool))); - toggleWebGL->setCheckable(true); - toggleWebGL->setChecked(settings->testAttribute(QWebSettings::WebGLEnabled)); - - QAction* spatialNavigationAction = toolsMenu->addAction("Toggle Spatial Navigation", this, SLOT(toggleSpatialNavigation(bool))); - spatialNavigationAction->setCheckable(true); - spatialNavigationAction->setShortcut(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_S)); - - QAction* toggleFrameFlattening = toolsMenu->addAction("Toggle Frame Flattening", this, SLOT(toggleFrameFlattening(bool))); - toggleFrameFlattening->setCheckable(true); - toggleFrameFlattening->setChecked(settings->testAttribute(QWebSettings::FrameFlatteningEnabled)); - - QAction* touchMockAction = toolsMenu->addAction("Toggle touch mocking", this, SLOT(setTouchMocking(bool))); - touchMockAction->setCheckable(true); - touchMockAction->setShortcut(QKeySequence(Qt::CTRL | Qt::ALT | Qt::Key_T)); - - toolsMenu->addSeparator(); - - QAction* toggleInterruptingJavaScripteEnabled = toolsMenu->addAction("Enable interrupting js scripts", this, SLOT(toggleInterruptingJavaScriptEnabled(bool))); - toggleInterruptingJavaScripteEnabled->setCheckable(true); - toggleInterruptingJavaScripteEnabled->setChecked(false); - - QAction* toggleJavascriptCanOpenWindows = toolsMenu->addAction("Enable js popup windows", this, SLOT(toggleJavascriptCanOpenWindows(bool))); - toggleJavascriptCanOpenWindows->setCheckable(true); - toggleJavascriptCanOpenWindows->setChecked(false); - - toolsMenu->addSeparator(); - - QAction* userAgentAction = toolsMenu->addAction("Change User Agent", this, SLOT(showUserAgentDialog())); - userAgentAction->setShortcut(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_U)); - - toolsMenu->addAction("Select Elements...", this, SLOT(selectElements())); - - QAction* showInspectorAction = toolsMenu->addAction("Show Web Inspector", m_inspector, SLOT(setVisible(bool)), QKeySequence(Qt::CTRL | Qt::ALT | Qt::Key_I)); - showInspectorAction->setCheckable(true); - showInspectorAction->connect(m_inspector, SIGNAL(visibleChanged(bool)), SLOT(setChecked(bool))); - - // GraphicsView sub menu. - QAction* toggleAcceleratedCompositing = graphicsViewMenu->addAction("Toggle Accelerated Compositing", this, SLOT(toggleAcceleratedCompositing(bool))); - toggleAcceleratedCompositing->setCheckable(true); - toggleAcceleratedCompositing->setChecked(settings->testAttribute(QWebSettings::AcceleratedCompositingEnabled)); - toggleAcceleratedCompositing->setEnabled(isGraphicsBased()); - toggleAcceleratedCompositing->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); - - QAction* toggleResizesToContents = graphicsViewMenu->addAction("Toggle Resizes To Contents Mode", this, SLOT(toggleResizesToContents(bool))); - toggleResizesToContents->setCheckable(true); - toggleResizesToContents->setChecked(m_windowOptions.resizesToContents); - toggleResizesToContents->setEnabled(isGraphicsBased()); - toggleResizesToContents->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); - - QAction* toggleTiledBackingStore = graphicsViewMenu->addAction("Toggle Tiled Backing Store", this, SLOT(toggleTiledBackingStore(bool))); - toggleTiledBackingStore->setCheckable(true); - toggleTiledBackingStore->setChecked(m_windowOptions.useTiledBackingStore); - toggleTiledBackingStore->setEnabled(isGraphicsBased()); - toggleTiledBackingStore->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); - -#if defined(QT_CONFIGURED_WITH_OPENGL) - QAction* toggleQGLWidgetViewport = graphicsViewMenu->addAction("Toggle use of QGLWidget Viewport", this, SLOT(toggleQGLWidgetViewport(bool))); - toggleQGLWidgetViewport->setCheckable(true); - toggleQGLWidgetViewport->setChecked(m_windowOptions.useQGLWidgetViewport); - toggleQGLWidgetViewport->setEnabled(isGraphicsBased()); - toggleQGLWidgetViewport->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); -#endif - - QMenu* viewportUpdateMenu = graphicsViewMenu->addMenu("Change Viewport Update Mode"); - viewportUpdateMenu->setEnabled(isGraphicsBased()); - viewportUpdateMenu->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); - - QAction* fullUpdate = viewportUpdateMenu->addAction("FullViewportUpdate"); - fullUpdate->setCheckable(true); - fullUpdate->setChecked((m_windowOptions.viewportUpdateMode == QGraphicsView::FullViewportUpdate) ? true : false); - - QAction* minimalUpdate = viewportUpdateMenu->addAction("MinimalViewportUpdate"); - minimalUpdate->setCheckable(true); - minimalUpdate->setChecked((m_windowOptions.viewportUpdateMode == QGraphicsView::MinimalViewportUpdate) ? true : false); - - QAction* smartUpdate = viewportUpdateMenu->addAction("SmartViewportUpdate"); - smartUpdate->setCheckable(true); - smartUpdate->setChecked((m_windowOptions.viewportUpdateMode == QGraphicsView::SmartViewportUpdate) ? true : false); - - QAction* boundingRectUpdate = viewportUpdateMenu->addAction("BoundingRectViewportUpdate"); - boundingRectUpdate->setCheckable(true); - boundingRectUpdate->setChecked((m_windowOptions.viewportUpdateMode == QGraphicsView::BoundingRectViewportUpdate) ? true : false); - - QAction* noUpdate = viewportUpdateMenu->addAction("NoViewportUpdate"); - noUpdate->setCheckable(true); - noUpdate->setChecked((m_windowOptions.viewportUpdateMode == QGraphicsView::NoViewportUpdate) ? true : false); - - QSignalMapper* signalMapper = new QSignalMapper(viewportUpdateMenu); - signalMapper->setMapping(fullUpdate, QGraphicsView::FullViewportUpdate); - signalMapper->setMapping(minimalUpdate, QGraphicsView::MinimalViewportUpdate); - signalMapper->setMapping(smartUpdate, QGraphicsView::SmartViewportUpdate); - signalMapper->setMapping(boundingRectUpdate, QGraphicsView::BoundingRectViewportUpdate); - signalMapper->setMapping(noUpdate, QGraphicsView::NoViewportUpdate); - - connect(fullUpdate, SIGNAL(triggered()), signalMapper, SLOT(map())); - connect(minimalUpdate, SIGNAL(triggered()), signalMapper, SLOT(map())); - connect(smartUpdate, SIGNAL(triggered()), signalMapper, SLOT(map())); - connect(boundingRectUpdate, SIGNAL(triggered()), signalMapper, SLOT(map())); - connect(noUpdate, SIGNAL(triggered()), signalMapper, SLOT(map())); - - connect(signalMapper, SIGNAL(mapped(int)), this, SLOT(changeViewportUpdateMode(int))); - - QActionGroup* viewportUpdateModeActions = new QActionGroup(viewportUpdateMenu); - viewportUpdateModeActions->addAction(fullUpdate); - viewportUpdateModeActions->addAction(minimalUpdate); - viewportUpdateModeActions->addAction(smartUpdate); - viewportUpdateModeActions->addAction(boundingRectUpdate); - viewportUpdateModeActions->addAction(noUpdate); - - graphicsViewMenu->addSeparator(); - - QAction* flipAnimated = graphicsViewMenu->addAction("Animated Flip"); - flipAnimated->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); - flipAnimated->setEnabled(isGraphicsBased()); - connect(flipAnimated, SIGNAL(triggered()), SLOT(animatedFlip())); - - QAction* flipYAnimated = graphicsViewMenu->addAction("Animated Y-Flip"); - flipYAnimated->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); - flipYAnimated->setEnabled(isGraphicsBased()); - connect(flipYAnimated, SIGNAL(triggered()), SLOT(animatedYFlip())); - - QAction* cloneWindow = graphicsViewMenu->addAction("Clone Window", this, SLOT(cloneWindow())); - cloneWindow->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); - cloneWindow->setEnabled(isGraphicsBased()); - - graphicsViewMenu->addSeparator(); - - QAction* showFPS = graphicsViewMenu->addAction("Show FPS", this, SLOT(showFPS(bool))); - showFPS->setCheckable(true); - showFPS->setEnabled(isGraphicsBased()); - showFPS->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); - showFPS->setChecked(m_windowOptions.showFrameRate); -} - -bool LauncherWindow::isGraphicsBased() const -{ - return bool(qobject_cast(m_view)); -} - -void LauncherWindow::keyPressEvent(QKeyEvent* event) -{ -#ifdef Q_WS_MAEMO_5 - switch (event->key()) { - case Qt::Key_F7: - zoomIn(); - event->accept(); - break; - case Qt::Key_F8: - zoomOut(); - event->accept(); - break; - } -#endif - MainWindow::keyPressEvent(event); -} - -void LauncherWindow::grabZoomKeys(bool grab) -{ -#ifdef Q_WS_MAEMO_5 - if (!winId()) { - qWarning("Can't grab keys unless we have a window id"); - return; - } - - Atom atom = XInternAtom(QX11Info::display(), "_HILDON_ZOOM_KEY_ATOM", False); - if (!atom) { - qWarning("Unable to obtain _HILDON_ZOOM_KEY_ATOM"); - return; - } - - unsigned long val = (grab) ? 1 : 0; - XChangeProperty(QX11Info::display(), winId(), atom, XA_INTEGER, 32, PropModeReplace, reinterpret_cast(&val), 1); -#endif -} - -void LauncherWindow::sendTouchEvent() -{ - if (m_touchPoints.isEmpty()) - return; - - QEvent::Type type = QEvent::TouchUpdate; - if (m_touchPoints.size() == 1) { - if (m_touchPoints[0].state() == Qt::TouchPointReleased) - type = QEvent::TouchEnd; - else if (m_touchPoints[0].state() == Qt::TouchPointPressed) - type = QEvent::TouchBegin; - } - - QTouchEvent touchEv(type); - touchEv.setTouchPoints(m_touchPoints); - QCoreApplication::sendEvent(page(), &touchEv); - - // After sending the event, remove all touchpoints that were released - if (m_touchPoints[0].state() == Qt::TouchPointReleased) - m_touchPoints.removeAt(0); - if (m_touchPoints.size() > 1 && m_touchPoints[1].state() == Qt::TouchPointReleased) - m_touchPoints.removeAt(1); -} - -bool LauncherWindow::eventFilter(QObject* obj, QEvent* event) -{ - // If click pos is the bottom right corner (square with size defined by gExitClickArea) - // and the window is on FullScreen, the window must return to its original state. - if (event->type() == QEvent::MouseButtonRelease) { - QMouseEvent* ev = static_cast(event); - if (windowState() == Qt::WindowFullScreen - && ev->pos().x() > (width() - gExitClickArea) - && ev->pos().y() > (height() - gExitClickArea)) { - - emit enteredFullScreenMode(false); - } - } - - if (!m_touchMocking) - return QObject::eventFilter(obj, event); - - if (event->type() == QEvent::MouseButtonPress - || event->type() == QEvent::MouseButtonRelease - || event->type() == QEvent::MouseButtonDblClick - || event->type() == QEvent::MouseMove) { - - QMouseEvent* ev = static_cast(event); - if (ev->type() == QEvent::MouseMove - && !(ev->buttons() & Qt::LeftButton)) - return false; - - QTouchEvent::TouchPoint touchPoint; - touchPoint.setState(Qt::TouchPointMoved); - if ((ev->type() == QEvent::MouseButtonPress - || ev->type() == QEvent::MouseButtonDblClick)) - touchPoint.setState(Qt::TouchPointPressed); - else if (ev->type() == QEvent::MouseButtonRelease) - touchPoint.setState(Qt::TouchPointReleased); - - touchPoint.setId(0); - touchPoint.setScreenPos(ev->globalPos()); - touchPoint.setPos(ev->pos()); - touchPoint.setPressure(1); - - // If the point already exists, update it. Otherwise create it. - if (m_touchPoints.size() > 0 && !m_touchPoints[0].id()) - m_touchPoints[0] = touchPoint; - else if (m_touchPoints.size() > 1 && !m_touchPoints[1].id()) - m_touchPoints[1] = touchPoint; - else - m_touchPoints.append(touchPoint); - - sendTouchEvent(); - } else if (event->type() == QEvent::KeyPress - && static_cast(event)->key() == Qt::Key_F - && static_cast(event)->modifiers() == Qt::ControlModifier) { - - // If the keyboard point is already pressed, release it. - // Otherwise create it and append to m_touchPoints. - if (m_touchPoints.size() > 0 && m_touchPoints[0].id() == 1) { - m_touchPoints[0].setState(Qt::TouchPointReleased); - sendTouchEvent(); - } else if (m_touchPoints.size() > 1 && m_touchPoints[1].id() == 1) { - m_touchPoints[1].setState(Qt::TouchPointReleased); - sendTouchEvent(); - } else { - QTouchEvent::TouchPoint touchPoint; - touchPoint.setState(Qt::TouchPointPressed); - touchPoint.setId(1); - touchPoint.setScreenPos(QCursor::pos()); - touchPoint.setPos(m_view->mapFromGlobal(QCursor::pos())); - touchPoint.setPressure(1); - m_touchPoints.append(touchPoint); - sendTouchEvent(); - - // After sending the event, change the touchpoint state to stationary - m_touchPoints.last().setState(Qt::TouchPointStationary); - } - } - - return false; -} - -void LauncherWindow::loadStarted() -{ - m_view->setFocus(Qt::OtherFocusReason); -} - -void LauncherWindow::loadFinished() -{ - QUrl url = page()->mainFrame()->url(); - setAddressUrl(url.toString(QUrl::RemoveUserInfo)); - addCompleterEntry(url); -} - -void LauncherWindow::showLinkHover(const QString &link, const QString &toolTip) -{ -#ifndef Q_WS_MAEMO_5 - statusBar()->showMessage(link); -#endif -#ifndef QT_NO_TOOLTIP - if (!toolTip.isEmpty()) - QToolTip::showText(QCursor::pos(), toolTip); -#endif -} - -void LauncherWindow::zoomAnimationFinished() -{ - if (!isGraphicsBased()) - return; - QGraphicsWebView* view = static_cast(m_view)->graphicsWebView(); - view->setTiledBackingStoreFrozen(false); -} - -void LauncherWindow::applyZoom() -{ - if (isGraphicsBased() && page()->settings()->testAttribute(QWebSettings::TiledBackingStoreEnabled)) { - QGraphicsWebView* view = static_cast(m_view)->graphicsWebView(); - view->setTiledBackingStoreFrozen(true); - if (!m_zoomAnimation) { - m_zoomAnimation = new QPropertyAnimation(view, "scale"); - m_zoomAnimation->setStartValue(view->scale()); - connect(m_zoomAnimation, SIGNAL(finished()), this, SLOT(zoomAnimationFinished())); - } else { - m_zoomAnimation->stop(); - m_zoomAnimation->setStartValue(m_zoomAnimation->currentValue()); - } - - m_zoomAnimation->setDuration(300); - m_zoomAnimation->setEndValue(qreal(m_currentZoom) / 100.); - m_zoomAnimation->start(); - return; - } - page()->mainFrame()->setZoomFactor(qreal(m_currentZoom) / 100.0); -} - -void LauncherWindow::zoomIn() -{ - int i = m_zoomLevels.indexOf(m_currentZoom); - Q_ASSERT(i >= 0); - if (i < m_zoomLevels.count() - 1) - m_currentZoom = m_zoomLevels[i + 1]; - - applyZoom(); -} - -void LauncherWindow::zoomOut() -{ - int i = m_zoomLevels.indexOf(m_currentZoom); - Q_ASSERT(i >= 0); - if (i > 0) - m_currentZoom = m_zoomLevels[i - 1]; - - applyZoom(); -} - -void LauncherWindow::resetZoom() -{ - m_currentZoom = 100; - applyZoom(); -} - -void LauncherWindow::toggleZoomTextOnly(bool b) -{ - page()->settings()->setAttribute(QWebSettings::ZoomTextOnly, b); -} - -void LauncherWindow::print() -{ -#if !defined(QT_NO_PRINTER) - QPrintPreviewDialog dlg(this); - connect(&dlg, SIGNAL(paintRequested(QPrinter*)), - page()->mainFrame(), SLOT(print(QPrinter*))); - dlg.exec(); -#endif -} - -void LauncherWindow::screenshot() -{ - QPixmap pixmap = QPixmap::grabWidget(m_view); - QLabel* label = 0; -#if !defined(Q_OS_SYMBIAN) - label = new QLabel; - label->setAttribute(Qt::WA_DeleteOnClose); - label->setWindowTitle("Screenshot - Preview"); - label->setPixmap(pixmap); - label->show(); -#endif - - QString fileName = QFileDialog::getSaveFileName(label, "Screenshot"); - if (!fileName.isEmpty()) { - pixmap.save(fileName, "png"); - if (label) - label->setWindowTitle(QString("Screenshot - Saved at %1").arg(fileName)); - } - -#if defined(QT_CONFIGURED_WITH_OPENGL) - toggleQGLWidgetViewport(m_windowOptions.useQGLWidgetViewport); -#endif -} - -void LauncherWindow::setEditable(bool on) -{ - page()->setContentEditable(on); - m_formatMenuAction->setVisible(on); -} - -/* -void LauncherWindow::dumpPlugins() { - QList plugins = QWebSettings::pluginDatabase()->plugins(); - foreach (const QWebPluginInfo plugin, plugins) { - qDebug() << "Plugin:" << plugin.name(); - foreach (const QWebPluginInfo::MimeType mime, plugin.mimeTypes()) { - qDebug() << " " << mime.name; - } - } -} -*/ - -void LauncherWindow::dumpHtml() -{ - qDebug() << "HTML: " << page()->mainFrame()->toHtml(); -} - -void LauncherWindow::selectElements() -{ - bool ok; - QString str = QInputDialog::getText(this, "Select elements", "Choose elements", - QLineEdit::Normal, "a", &ok); - - if (ok && !str.isEmpty()) { - QWebElementCollection result = page()->mainFrame()->findAllElements(str); - foreach (QWebElement e, result) - e.setStyleProperty("background-color", "yellow"); -#ifndef Q_WS_MAEMO_5 - statusBar()->showMessage(QString("%1 element(s) selected").arg(result.count()), 5000); -#endif - } -} - -void LauncherWindow::setTouchMocking(bool on) -{ - m_touchMocking = on; -} - -void LauncherWindow::toggleWebView(bool graphicsBased) -{ - m_windowOptions.useGraphicsView = graphicsBased; - initializeView(); - menuBar()->clear(); - createChrome(); -} - -void LauncherWindow::toggleAcceleratedCompositing(bool toggle) -{ - m_windowOptions.useCompositing = toggle; - page()->settings()->setAttribute(QWebSettings::AcceleratedCompositingEnabled, toggle); -} - -void LauncherWindow::toggleTiledBackingStore(bool toggle) -{ - page()->settings()->setAttribute(QWebSettings::TiledBackingStoreEnabled, toggle); -} - -void LauncherWindow::toggleResizesToContents(bool toggle) -{ - m_windowOptions.resizesToContents = toggle; - static_cast(m_view)->setResizesToContents(toggle); -} - -void LauncherWindow::toggleWebGL(bool toggle) -{ - m_windowOptions.useWebGL = toggle; - page()->settings()->setAttribute(QWebSettings::WebGLEnabled, toggle); -} - -void LauncherWindow::animatedFlip() -{ - qobject_cast(m_view)->animatedFlip(); -} - -void LauncherWindow::animatedYFlip() -{ - qobject_cast(m_view)->animatedYFlip(); -} -void LauncherWindow::toggleSpatialNavigation(bool b) -{ - page()->settings()->setAttribute(QWebSettings::SpatialNavigationEnabled, b); -} - -void LauncherWindow::toggleFullScreenMode(bool enable) -{ - if (enable) - setWindowState(Qt::WindowFullScreen); - else { -#if defined(Q_OS_SYMBIAN) - setWindowState(Qt::WindowMaximized); -#else - setWindowState(Qt::WindowNoState); -#endif - } -} - -void LauncherWindow::toggleFrameFlattening(bool toggle) -{ - m_windowOptions.useFrameFlattening = toggle; - page()->settings()->setAttribute(QWebSettings::FrameFlatteningEnabled, toggle); -} - -void LauncherWindow::toggleInterruptingJavaScriptEnabled(bool enable) -{ - page()->setInterruptingJavaScriptEnabled(enable); -} - -void LauncherWindow::toggleJavascriptCanOpenWindows(bool enable) -{ - page()->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, enable); -} - -#if defined(QT_CONFIGURED_WITH_OPENGL) -void LauncherWindow::toggleQGLWidgetViewport(bool enable) -{ - if (!isGraphicsBased()) - return; - - m_windowOptions.useQGLWidgetViewport = enable; - WebViewGraphicsBased* view = static_cast(m_view); - - view->setViewport(enable ? new QGLWidget() : 0); -} -#endif - -void LauncherWindow::changeViewportUpdateMode(int mode) -{ - m_windowOptions.viewportUpdateMode = QGraphicsView::ViewportUpdateMode(mode); - - if (!isGraphicsBased()) - return; - - WebViewGraphicsBased* view = static_cast(m_view); - view->setViewportUpdateMode(m_windowOptions.viewportUpdateMode); -} - -void LauncherWindow::showFPS(bool enable) -{ - if (!isGraphicsBased()) - return; - - m_windowOptions.showFrameRate = enable; - WebViewGraphicsBased* view = static_cast(m_view); - view->setFrameRateMeasurementEnabled(enable); - - if (!enable) { -#if defined(Q_WS_MAEMO_5) && defined(Q_OS_SYMBIAN) - setWindowTitle(""); -#else - statusBar()->clearMessage(); -#endif - } -} - -void LauncherWindow::showUserAgentDialog() -{ - QStringList items; - QFile file(":/useragentlist.txt"); - if (file.open(QIODevice::ReadOnly)) { - while (!file.atEnd()) - items << file.readLine().trimmed(); - file.close(); - } - - QSettings settings; - QString customUserAgent = settings.value("CustomUserAgent").toString(); - if (!items.contains(customUserAgent) && !customUserAgent.isEmpty()) - items << customUserAgent; - - QDialog* dialog = new QDialog(this); - dialog->resize(size().width() * 0.7, dialog->size().height()); - dialog->setMaximumHeight(dialog->size().height()); - dialog->setWindowTitle("Change User Agent"); - - QVBoxLayout* layout = new QVBoxLayout(dialog); - dialog->setLayout(layout); - - QComboBox* combo = new QComboBox(dialog); - combo->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLength); - combo->setEditable(true); - combo->insertItems(0, items); - layout->addWidget(combo); - - int index = combo->findText(page()->userAgentForUrl(QUrl())); - combo->setCurrentIndex(index); - - QDialogButtonBox* buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok - | QDialogButtonBox::Cancel, Qt::Horizontal, dialog); - connect(buttonBox, SIGNAL(accepted()), dialog, SLOT(accept())); - connect(buttonBox, SIGNAL(rejected()), dialog, SLOT(reject())); - layout->addWidget(buttonBox); - - if (dialog->exec() && !combo->currentText().isEmpty()) { - page()->setUserAgent(combo->currentText()); - if (!items.contains(combo->currentText())) - settings.setValue("CustomUserAgent", combo->currentText()); - } - - delete dialog; -} - -void LauncherWindow::updateFPS(int fps) -{ - QString fpsStatusText = QString("Current FPS: %1").arg(fps); - -#if defined(Q_WS_MAEMO_5) && defined(Q_OS_SYMBIAN) - setWindowTitle(fpsStatusText); -#else - statusBar()->showMessage(fpsStatusText); -#endif -} - -LauncherWindow* LauncherWindow::newWindow() -{ - LauncherWindow* mw = new LauncherWindow(&m_windowOptions); - mw->show(); - return mw; -} - -LauncherWindow* LauncherWindow::cloneWindow() -{ - LauncherWindow* mw = new LauncherWindow(&m_windowOptions, qobject_cast(m_view)->scene()); - mw->show(); - return mw; -} - diff --git a/WebKitTools/QtTestBrowser/launcherwindow.h b/WebKitTools/QtTestBrowser/launcherwindow.h deleted file mode 100644 index 84dedaa..0000000 --- a/WebKitTools/QtTestBrowser/launcherwindow.h +++ /dev/null @@ -1,206 +0,0 @@ -/* - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - * Copyright (C) 2009 Girish Ramakrishnan - * Copyright (C) 2006 George Staikos - * Copyright (C) 2006 Dirk Mueller - * Copyright (C) 2006 Zack Rusin - * Copyright (C) 2006 Simon Hausmann - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef launcherwindow_h -#define launcherwindow_h - -#include -#include - -#if defined(QT_CONFIGURED_WITH_OPENGL) -#include -#endif - -#if !defined(QT_NO_PRINTER) -#include -#endif - -#ifndef QT_NO_UITOOLS -#include -#endif - -#include - -#include -#include -#include -#include -#include -#include - -#ifdef Q_WS_MAEMO_5 -#include -#endif - -#include "mainwindow.h" -#include "urlloader.h" -#include "utils.h" -#include "webinspector.h" -#include "webpage.h" -#include "webview.h" -#include "../../WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h" - -#ifdef Q_WS_MAEMO_5 -#include -#include -#undef KeyPress -#endif - -class WindowOptions { -public: - WindowOptions() - : useGraphicsView(false) - , useCompositing(true) - , useTiledBackingStore(false) - , useWebGL(false) -#if defined(Q_WS_MAEMO_5) || defined(Q_OS_SYMBIAN) - , useFrameFlattening(true) -#else - , useFrameFlattening(false) -#endif - , cacheWebView(false) - , showFrameRate(false) - , resizesToContents(false) - , viewportUpdateMode(QGraphicsView::MinimalViewportUpdate) -#if defined(QT_CONFIGURED_WITH_OPENGL) - , useQGLWidgetViewport(false) -#endif - { - } - - bool useGraphicsView; - bool useCompositing; - bool useTiledBackingStore; - bool useWebGL; - bool useFrameFlattening; - bool cacheWebView; - bool showFrameRate; - bool resizesToContents; - QGraphicsView::ViewportUpdateMode viewportUpdateMode; -#if defined(QT_CONFIGURED_WITH_OPENGL) - bool useQGLWidgetViewport; -#endif - QUrl inspectorUrl; - quint16 remoteInspectorPort; -}; - -class LauncherWindow : public MainWindow { - Q_OBJECT - -public: - LauncherWindow(WindowOptions* data = 0, QGraphicsScene* sharedScene = 0); - virtual ~LauncherWindow(); - - virtual void keyPressEvent(QKeyEvent* event); - void grabZoomKeys(bool grab); - - void sendTouchEvent(); - - bool eventFilter(QObject* obj, QEvent* event); - -protected slots: - void loadStarted(); - void loadFinished(); - - void showLinkHover(const QString &link, const QString &toolTip); - - void zoomIn(); - void zoomOut(); - void resetZoom(); - void toggleZoomTextOnly(bool on); - void zoomAnimationFinished(); - - void print(); - void screenshot(); - - void setEditable(bool on); - - /* void dumpPlugins() */ - void dumpHtml(); - - void setTouchMocking(bool on); - void toggleWebView(bool graphicsBased); - void toggleAcceleratedCompositing(bool toggle); - void toggleTiledBackingStore(bool toggle); - void toggleResizesToContents(bool toggle); - void toggleWebGL(bool toggle); - void toggleSpatialNavigation(bool b); - void toggleFullScreenMode(bool enable); - void toggleFrameFlattening(bool toggle); - void toggleInterruptingJavaScriptEnabled(bool enable); - void toggleJavascriptCanOpenWindows(bool enable); - -#if defined(QT_CONFIGURED_WITH_OPENGL) - void toggleQGLWidgetViewport(bool enable); -#endif - - void changeViewportUpdateMode(int mode); - void animatedFlip(); - void animatedYFlip(); - void selectElements(); - void showFPS(bool enable); - void showUserAgentDialog(); - -public slots: - LauncherWindow* newWindow(); - LauncherWindow* cloneWindow(); - void updateFPS(int fps); - -signals: - void enteredFullScreenMode(bool on); - -private: - void init(); - void initializeView(); - void createChrome(); - void applyPrefs(); - void applyZoom(); - - bool isGraphicsBased() const; - -private: - static QVector m_zoomLevels; - int m_currentZoom; - - QWidget* m_view; - WebInspector* m_inspector; - - WindowOptions m_windowOptions; - - QAction* m_formatMenuAction; - - QPropertyAnimation* m_zoomAnimation; - QList m_touchPoints; - bool m_touchMocking; -}; - -#endif diff --git a/WebKitTools/QtTestBrowser/locationedit.cpp b/WebKitTools/QtTestBrowser/locationedit.cpp deleted file mode 100644 index a97f148..0000000 --- a/WebKitTools/QtTestBrowser/locationedit.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "locationedit.h" - -LocationEdit::LocationEdit(QWidget* parent) - : QLineEdit(parent) - , m_progress(0) -{ - m_clearTimer.setSingleShot(true); - connect(&m_clearTimer, SIGNAL(timeout()), this, SLOT(reset())); -} - -void LocationEdit::setProgress(int progress) -{ - m_clearTimer.stop(); - m_progress = progress; - update(); -} - -void LocationEdit::reset() -{ - setProgress(0); -} - -void LocationEdit::paintEvent(QPaintEvent* ev) -{ - QColor backgroundColor = QApplication::palette().color(QPalette::Base); - QColor progressColor = QColor(120, 180, 240); - QPalette p = palette(); - - if (!m_progress) - p.setBrush(QPalette::Base, backgroundColor); - else { - QLinearGradient gradient(0, 0, width(), 0); - gradient.setColorAt(0, progressColor); - gradient.setColorAt(((double) m_progress) / 100, progressColor); - if (m_progress != 100) - gradient.setColorAt((double) m_progress / 100 + 0.001, backgroundColor); - p.setBrush(QPalette::Base, gradient); - } - setPalette(p); - - QLineEdit::paintEvent(ev); - - if (m_progress == 100) - m_clearTimer.start(100); -} - -void LocationEdit::focusInEvent(QFocusEvent* ev) -{ - QLineEdit::focusInEvent(ev); -#ifdef Q_WS_MAEMO_5 - QTimer::singleShot(0, this, SLOT(selectAll())); -#endif -} diff --git a/WebKitTools/QtTestBrowser/locationedit.h b/WebKitTools/QtTestBrowser/locationedit.h deleted file mode 100644 index e82920c..0000000 --- a/WebKitTools/QtTestBrowser/locationedit.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef locationedit_h -#define locationedit_h - -#include - -class LocationEdit : public QLineEdit { - Q_OBJECT - -public: - LocationEdit(QWidget* parent = 0); - -public slots: - void setProgress(int progress); - -private slots: - void reset(); - -protected: - virtual void paintEvent(QPaintEvent*); - virtual void focusInEvent(QFocusEvent*); - -private: - int m_progress; - QTimer m_clearTimer; -}; - -#endif diff --git a/WebKitTools/QtTestBrowser/main.cpp b/WebKitTools/QtTestBrowser/main.cpp deleted file mode 100644 index 41471fa..0000000 --- a/WebKitTools/QtTestBrowser/main.cpp +++ /dev/null @@ -1,258 +0,0 @@ -/* - * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) - * Copyright (C) 2009 Girish Ramakrishnan - * Copyright (C) 2006 George Staikos - * Copyright (C) 2006 Dirk Mueller - * Copyright (C) 2006 Zack Rusin - * Copyright (C) 2006 Simon Hausmann - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "launcherwindow.h" -#include "urlloader.h" - -WindowOptions windowOptions; - -int launcherMain(const QApplication& app) -{ -#ifndef NDEBUG - int retVal = app.exec(); - DumpRenderTreeSupportQt::garbageCollectorCollect(); - QWebSettings::clearMemoryCaches(); - return retVal; -#else - return app.exec(); -#endif -} - -class LauncherApplication : public QApplication { - Q_OBJECT - -public: - LauncherApplication(int& argc, char** argv); - QStringList urls() const { return m_urls; } - bool isRobotized() const { return m_isRobotized; } - int robotTimeout() const { return m_robotTimeoutSeconds; } - int robotExtraTime() const { return m_robotExtraTimeSeconds; } - -private: - void handleUserOptions(); - void applyDefaultSettings(); - -private: - bool m_isRobotized; - int m_robotTimeoutSeconds; - int m_robotExtraTimeSeconds; - QStringList m_urls; -}; - -void LauncherApplication::applyDefaultSettings() -{ - QWebSettings::setMaximumPagesInCache(4); - - QWebSettings::setObjectCacheCapacities((16*1024*1024) / 8, (16*1024*1024) / 8, 16*1024*1024); - - QWebSettings::globalSettings()->setAttribute(QWebSettings::PluginsEnabled, true); - QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true); - QWebSettings::enablePersistentStorage(); -} - -LauncherApplication::LauncherApplication(int& argc, char** argv) - : QApplication(argc, argv, QApplication::GuiServer) - , m_isRobotized(false) - , m_robotTimeoutSeconds(0) - , m_robotExtraTimeSeconds(0) -{ - // To allow QWebInspector's configuration persistence - setOrganizationName("Nokia"); - setApplicationName("QtTestBrowser"); - setApplicationVersion("0.1"); - - applyDefaultSettings(); - - handleUserOptions(); -} - -static void requiresGraphicsView(const QString& option) -{ - if (windowOptions.useGraphicsView) - return; - appQuit(1, QString("%1 only works in combination with the -graphicsbased option").arg(option)); -} - -void LauncherApplication::handleUserOptions() -{ - QStringList args = arguments(); - QFileInfo program(args.at(0)); - QString programName("QtTestBrowser"); - if (program.exists()) - programName = program.baseName(); - - QList updateModes(enumToKeys(QGraphicsView::staticMetaObject, - "ViewportUpdateMode", "ViewportUpdate")); - - if (args.contains("-help")) { - qDebug() << "Usage:" << programName.toLatin1().data() - << "[-graphicsbased]" - << "[-no-compositing]" - << QString("[-viewport-update-mode %1]").arg(formatKeys(updateModes)).toLatin1().data() - << "[-cache-webview]" - << "[-show-fps]" - << "[-r list]" - << "[-robot-timeout seconds]" - << "[-robot-extra-time seconds]" - << "[-inspector-url location]" - << "[-tiled-backing-store]" - << "[-resizes-to-contents]" - << "URLs"; - appQuit(0); - } - - const bool defaultForAnimations = args.contains("-default-animations"); - if (args.contains("-graphicsbased") || defaultForAnimations) - windowOptions.useGraphicsView = true; - - if (args.contains("-no-compositing")) { - requiresGraphicsView("-no-compositing"); - windowOptions.useCompositing = false; - } - - if (args.contains("-show-fps")) { - requiresGraphicsView("-show-fps"); - windowOptions.showFrameRate = true; - } - - if (args.contains("-cache-webview") || defaultForAnimations) { - requiresGraphicsView("-cache-webview"); - windowOptions.cacheWebView = true; - } - - if (args.contains("-tiled-backing-store")) { - requiresGraphicsView("-tiled-backing-store"); - windowOptions.useTiledBackingStore = true; - } - - if (args.contains("-resizes-to-contents")) { - requiresGraphicsView("-resizes-to-contents"); - windowOptions.resizesToContents = true; - } - - if (defaultForAnimations) - windowOptions.viewportUpdateMode = QGraphicsView::BoundingRectViewportUpdate; - - QString arg1("-viewport-update-mode"); - int modeIndex = args.indexOf(arg1); - if (modeIndex != -1) { - requiresGraphicsView(arg1); - - QString mode = takeOptionValue(&args, modeIndex); - if (mode.isEmpty()) - appQuit(1, QString("%1 needs a value of one of [%2]").arg(arg1).arg(formatKeys(updateModes))); - int idx = updateModes.indexOf(mode); - if (idx == -1) - appQuit(1, QString("%1 value has to be one of [%2]").arg(arg1).arg(formatKeys(updateModes))); - - windowOptions.viewportUpdateMode = static_cast(idx); - } -#ifdef QT_CONFIGURED_WITH_OPENGL - if (args.contains("-gl-viewport") || defaultForAnimations) { - requiresGraphicsView("-gl-viewport"); - windowOptions.useQGLWidgetViewport = true; - } -#endif - - QString inspectorUrlArg("-inspector-url"); - int inspectorUrlIndex = args.indexOf(inspectorUrlArg); - if (inspectorUrlIndex != -1) - windowOptions.inspectorUrl = takeOptionValue(&args, inspectorUrlIndex); - - QString remoteInspectorPortArg("-remote-inspector-port"); - int remoteInspectorPortIndex = args.indexOf(remoteInspectorPortArg); - if (remoteInspectorPortIndex != -1) - windowOptions.remoteInspectorPort = takeOptionValue(&args, remoteInspectorPortIndex).toInt(); - - int robotIndex = args.indexOf("-r"); - if (robotIndex != -1) { - QString listFile = takeOptionValue(&args, robotIndex); - if (listFile.isEmpty()) - appQuit(1, "-r needs a list file to start in robotized mode"); - if (!QFile::exists(listFile)) - appQuit(1, "The list file supplied to -r does not exist."); - - m_isRobotized = true; - m_urls = QStringList(listFile); - } else { - int lastArg = args.lastIndexOf(QRegExp("^-.*")); - m_urls = (lastArg != -1) ? args.mid(++lastArg) : args.mid(1); - } - - int robotTimeoutIndex = args.indexOf("-robot-timeout"); - if (robotTimeoutIndex != -1) - m_robotTimeoutSeconds = takeOptionValue(&args, robotTimeoutIndex).toInt(); - - int robotExtraTimeIndex = args.indexOf("-robot-extra-time"); - if (robotExtraTimeIndex != -1) - m_robotExtraTimeSeconds = takeOptionValue(&args, robotExtraTimeIndex).toInt(); -} - - -int main(int argc, char **argv) -{ - LauncherApplication app(argc, argv); - - if (app.isRobotized()) { - LauncherWindow* window = new LauncherWindow(); - UrlLoader loader(window->page()->mainFrame(), app.urls().at(0), app.robotTimeout(), app.robotExtraTime()); - loader.loadNext(); - window->show(); - return launcherMain(app); - } - - QStringList urls = app.urls(); - - if (urls.isEmpty()) { - QString defaultIndexFile = QString("%1/%2").arg(QDir::homePath()).arg(QLatin1String("index.html")); - if (QFile(defaultIndexFile).exists()) - urls.append(QString("file://") + defaultIndexFile); - else - urls.append(""); - } - - LauncherWindow* window = 0; - foreach (QString url, urls) { - LauncherWindow* newWindow; - if (!window) - newWindow = window = new LauncherWindow(&windowOptions); - else - newWindow = window->newWindow(); - - newWindow->load(url); - } - - window->show(); - return launcherMain(app); -} - -#include "main.moc" diff --git a/WebKitTools/QtTestBrowser/mainwindow.cpp b/WebKitTools/QtTestBrowser/mainwindow.cpp deleted file mode 100644 index f361fa8..0000000 --- a/WebKitTools/QtTestBrowser/mainwindow.cpp +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) - * Copyright (C) 2009 Girish Ramakrishnan - * Copyright (C) 2006 George Staikos - * Copyright (C) 2006 Dirk Mueller - * Copyright (C) 2006 Zack Rusin - * Copyright (C) 2006 Simon Hausmann - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "mainwindow.h" - -#include "locationedit.h" -#include "utils.h" - -MainWindow::MainWindow() - : m_page(new WebPage(this)) - , m_toolBar(0) - , urlEdit(0) -{ - setAttribute(Qt::WA_DeleteOnClose); - if (qgetenv("QTTESTBROWSER_USE_ARGB_VISUALS").toInt() == 1) - setAttribute(Qt::WA_TranslucentBackground); - - buildUI(); -} - -void MainWindow::buildUI() -{ -#if defined(Q_OS_SYMBIAN) - delete urlEdit; -#endif - delete m_toolBar; - - m_toolBar = addToolBar("Navigation"); -#if defined(Q_OS_SYMBIAN) - m_toolBar->setIconSize(QSize(16, 16)); -#endif - QAction* reloadAction = page()->action(QWebPage::Reload); - connect(reloadAction, SIGNAL(triggered()), this, SLOT(changeLocation())); - - m_toolBar->addAction(page()->action(QWebPage::Back)); - m_toolBar->addAction(page()->action(QWebPage::Forward)); - m_toolBar->addAction(reloadAction); - m_toolBar->addAction(page()->action(QWebPage::Stop)); - - urlEdit = new LocationEdit(m_toolBar); - urlEdit->setSizePolicy(QSizePolicy::Expanding, urlEdit->sizePolicy().verticalPolicy()); - connect(urlEdit, SIGNAL(returnPressed()), SLOT(changeLocation())); - QCompleter* completer = new QCompleter(m_toolBar); - urlEdit->setCompleter(completer); - completer->setModel(&urlModel); -#if defined(Q_OS_SYMBIAN) - addToolBarBreak(); - addToolBar("Location")->addWidget(urlEdit); -#else - m_toolBar->addWidget(urlEdit); -#endif - - connect(page()->mainFrame(), SIGNAL(titleChanged(const QString&)), - this, SLOT(setWindowTitle(const QString&))); - connect(page()->mainFrame(), SIGNAL(urlChanged(QUrl)), this, SLOT(setAddressUrl(QUrl))); - connect(page(), SIGNAL(loadProgress(int)), urlEdit, SLOT(setProgress(int))); - connect(page(), SIGNAL(windowCloseRequested()), this, SLOT(close())); - - // short-cuts - page()->action(QWebPage::Back)->setShortcut(QKeySequence::Back); - page()->action(QWebPage::Stop)->setShortcut(Qt::Key_Escape); - page()->action(QWebPage::Forward)->setShortcut(QKeySequence::Forward); - page()->action(QWebPage::Reload)->setShortcut(QKeySequence::Refresh); - page()->action(QWebPage::Undo)->setShortcut(QKeySequence::Undo); - page()->action(QWebPage::Redo)->setShortcut(QKeySequence::Redo); - page()->action(QWebPage::Cut)->setShortcut(QKeySequence::Cut); - page()->action(QWebPage::Copy)->setShortcut(QKeySequence::Copy); - page()->action(QWebPage::Paste)->setShortcut(QKeySequence::Paste); - - page()->action(QWebPage::ToggleBold)->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_B)); - page()->action(QWebPage::ToggleItalic)->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_I)); - page()->action(QWebPage::ToggleUnderline)->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_U)); -} - -void MainWindow::setPage(WebPage* page) -{ - if (page && m_page) - page->setUserAgent(m_page->userAgentForUrl(QUrl())); - - delete m_page; - m_page = page; - - buildUI(); -} - -WebPage* MainWindow::page() const -{ - return m_page; -} - -void MainWindow::setAddressUrl(const QUrl& url) -{ - setAddressUrl(url.toString(QUrl::RemoveUserInfo)); -} - -void MainWindow::setAddressUrl(const QString& url) -{ - if (!url.contains("about:")) - urlEdit->setText(url); -} - -void MainWindow::addCompleterEntry(const QUrl& url) -{ - QUrl::FormattingOptions opts; - opts |= QUrl::RemoveScheme; - opts |= QUrl::RemoveUserInfo; - opts |= QUrl::StripTrailingSlash; - QString s = url.toString(opts); - s = s.mid(2); - if (s.isEmpty()) - return; - - if (!urlList.contains(s)) - urlList += s; - urlModel.setStringList(urlList); -} - -void MainWindow::load(const QString& url) -{ - QUrl qurl = urlFromUserInput(url); - if (qurl.scheme().isEmpty()) - qurl = QUrl("http://" + url + "/"); - load(qurl); -} - -void MainWindow::load(const QUrl& url) -{ - if (!url.isValid()) - return; - - setAddressUrl(url.toString()); - page()->mainFrame()->load(url); -} - -void MainWindow::changeLocation() -{ - QString string = urlEdit->text(); - QUrl mainFrameURL = page()->mainFrame()->url(); - - if (mainFrameURL.isValid() && string == mainFrameURL.toString()) { - page()->triggerAction(QWebPage::Reload); - return; - } - - load(string); -} - -void MainWindow::openFile() -{ - static const QString filter("HTML Files (*.htm *.html);;Text Files (*.txt);;Image Files (*.gif *.jpg *.png);;All Files (*)"); - - QFileDialog fileDialog(this, tr("Open"), QString(), filter); - fileDialog.setAcceptMode(QFileDialog::AcceptOpen); - fileDialog.setFileMode(QFileDialog::ExistingFile); - fileDialog.setOptions(QFileDialog::ReadOnly); - - if (fileDialog.exec()) { - QString selectedFile = fileDialog.selectedFiles()[0]; - if (!selectedFile.isEmpty()) - load(QUrl::fromLocalFile(selectedFile)); - } -} - -void MainWindow::openLocation() -{ - urlEdit->selectAll(); - urlEdit->setFocus(); -} diff --git a/WebKitTools/QtTestBrowser/mainwindow.h b/WebKitTools/QtTestBrowser/mainwindow.h deleted file mode 100644 index 3a39d57..0000000 --- a/WebKitTools/QtTestBrowser/mainwindow.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) - * Copyright (C) 2009 Girish Ramakrishnan - * Copyright (C) 2006 George Staikos - * Copyright (C) 2006 Dirk Mueller - * Copyright (C) 2006 Zack Rusin - * Copyright (C) 2006 Simon Hausmann - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef mainwindow_h -#define mainwindow_h - -#include -#include "webpage.h" - -class LocationEdit; - -class MainWindow : public QMainWindow { - Q_OBJECT - -public: - MainWindow(); - - void addCompleterEntry(const QUrl& url); - - void load(const QString& url); - void load(const QUrl& url); - - WebPage* page() const; - void setPage(WebPage*); - -protected slots: - void setAddressUrl(const QString& url); - void setAddressUrl(const QUrl& url); - void openFile(); - void openLocation(); - void changeLocation(); - -private: - void buildUI(); - - WebPage* m_page; - QToolBar* m_toolBar; - QStringListModel urlModel; - QStringList urlList; - LocationEdit* urlEdit; -}; - -#endif diff --git a/WebKitTools/QtTestBrowser/urlloader.cpp b/WebKitTools/QtTestBrowser/urlloader.cpp deleted file mode 100644 index 2ae722b..0000000 --- a/WebKitTools/QtTestBrowser/urlloader.cpp +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - * Copyright (C) 2009 University of Szeged - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "urlloader.h" - -#include -#include -#include - -UrlLoader::UrlLoader(QWebFrame* frame, const QString& inputFileName, int timeoutSeconds, int extraTimeSeconds) - : m_frame(frame) - , m_stdOut(stdout) - , m_loaded(0) - , m_numFramesLoading(0) -{ - m_checkIfFinishedTimer.setInterval(200); - m_checkIfFinishedTimer.setSingleShot(true); - connect(&m_checkIfFinishedTimer, SIGNAL(timeout()), this, SLOT(checkIfFinished())); - // loadStarted and loadFinished on QWebPage is emitted for each frame/sub-frame - connect(m_frame->page(), SIGNAL(loadStarted()), this, SLOT(frameLoadStarted())); - connect(m_frame->page(), SIGNAL(loadFinished(bool)), this, SLOT(frameLoadFinished())); - - if (timeoutSeconds) { - m_timeoutTimer.setInterval(timeoutSeconds * 1000); - m_timeoutTimer.setSingleShot(true); - connect(frame, SIGNAL(loadStarted()), &m_timeoutTimer, SLOT(start())); - connect(&m_timeoutTimer, SIGNAL(timeout()), this, SLOT(loadNext())); - } - if (extraTimeSeconds) { - m_extraTimeTimer.setInterval(extraTimeSeconds * 1000); - m_extraTimeTimer.setSingleShot(true); - connect(this, SIGNAL(pageLoadFinished()), &m_extraTimeTimer, SLOT(start())); - connect(&m_extraTimeTimer, SIGNAL(timeout()), this, SLOT(loadNext())); - } else - connect(this, SIGNAL(pageLoadFinished()), this, SLOT(loadNext())); - loadUrlList(inputFileName); -} - -void UrlLoader::loadNext() -{ - m_timeoutTimer.stop(); - m_extraTimeTimer.stop(); - m_checkIfFinishedTimer.stop(); - m_numFramesLoading = 0; - QString qstr; - if (getUrl(qstr)) { - QUrl url(qstr, QUrl::StrictMode); - if (url.isValid()) { - m_stdOut << "Loading " << qstr << " ......" << ++m_loaded << endl; - m_frame->load(url); - } else - loadNext(); - } else - disconnect(m_frame, 0, this, 0); -} - -void UrlLoader::checkIfFinished() -{ - if (!m_numFramesLoading) - emit pageLoadFinished(); -} - -void UrlLoader::frameLoadStarted() -{ - ++m_numFramesLoading; - m_checkIfFinishedTimer.stop(); -} - -void UrlLoader::frameLoadFinished() -{ - Q_ASSERT(m_numFramesLoading > 0); - --m_numFramesLoading; - // Once our frame has finished loading, wait a moment to call loadNext for cases - // where a sub-frame starts loading or another frame is loaded through JavaScript. - m_checkIfFinishedTimer.start(); -} - -void UrlLoader::loadUrlList(const QString& inputFileName) -{ - QFile inputFile(inputFileName); - if (inputFile.open(QIODevice::ReadOnly | QIODevice::Text)) { - QTextStream stream(&inputFile); - QString line; - while (true) { - line = stream.readLine(); - if (line.isNull()) - break; - m_urls.append(line); - } - } else { - qDebug() << "Can't open list file"; - exit(0); - } - m_index = 0; - inputFile.close(); -} - -bool UrlLoader::getUrl(QString& qstr) -{ - if (m_index == m_urls.size()) - return false; - - qstr = m_urls[m_index++]; - return true; -} diff --git a/WebKitTools/QtTestBrowser/urlloader.h b/WebKitTools/QtTestBrowser/urlloader.h deleted file mode 100644 index 8ce24c0..0000000 --- a/WebKitTools/QtTestBrowser/urlloader.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - * Copyright (C) 2009 University of Szeged - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef urlloader_h -#define urlloader_h - -#include "qwebframe.h" - -#include -#include -#include - -class UrlLoader : public QObject { - Q_OBJECT - -public: - UrlLoader(QWebFrame* frame, const QString& inputFileName, int timeoutSeconds, int extraTimeSeconds); - -public slots: - void loadNext(); - -private slots: - void checkIfFinished(); - void frameLoadStarted(); - void frameLoadFinished(); - -signals: - void pageLoadFinished(); - -private: - void loadUrlList(const QString& inputFileName); - bool getUrl(QString& qstr); - -private: - QVector m_urls; - int m_index; - QWebFrame* m_frame; - QTextStream m_stdOut; - int m_loaded; - QTimer m_timeoutTimer; - QTimer m_extraTimeTimer; - QTimer m_checkIfFinishedTimer; - int m_numFramesLoading; -}; - -#endif diff --git a/WebKitTools/QtTestBrowser/useragentlist.txt b/WebKitTools/QtTestBrowser/useragentlist.txt deleted file mode 100644 index 1c424d9..0000000 --- a/WebKitTools/QtTestBrowser/useragentlist.txt +++ /dev/null @@ -1,10 +0,0 @@ -Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/533.3 (KHTML, like Gecko) QtTestBrowser/0.1 Safari/533.3 -Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0; en-GB) AppleWebKit/533.3 (KHTML, like Gecko) QtTestBrowser/0.1 Mobile Safari/533.3 -Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/125.2 (KHTML, like Gecko) Safari/125.8 -Mozilla/5.0 (Linux; U; Android 1.1; en-gb; dream) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2 -Mozilla/5.0 (iPhone; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10 -Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7 -Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10 -Opera/9.25 (Windows NT 6.0; U; en) -Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Nokia5800d-1b/20.2.014; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413 -Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.2; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) diff --git a/WebKitTools/QtTestBrowser/utils.cpp b/WebKitTools/QtTestBrowser/utils.cpp deleted file mode 100644 index 567c989..0000000 --- a/WebKitTools/QtTestBrowser/utils.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "utils.h" - - -QString takeOptionValue(QStringList* arguments, int index) -{ - QString result; - - if (++index < arguments->count() && !arguments->at(index).startsWith("-")) - result = arguments->takeAt(index); - - return result; -} - -QString formatKeys(QList keys) -{ - QString result; - for (int i = 0; i < keys.count() - 1; i++) - result.append(keys.at(i) + "|"); - result.append(keys.last()); - return result; -} - -QList enumToKeys(const QMetaObject o, const QString& name, const QString& strip) -{ - QList list; - - int enumIndex = o.indexOfEnumerator(name.toLatin1().data()); - QMetaEnum enumerator = o.enumerator(enumIndex); - - if (enumerator.isValid()) { - for (int i = 0; i < enumerator.keyCount(); i++) { - QString key(enumerator.valueToKey(i)); - list.append(key.remove(strip)); - } - } - - return list; -} - -void appQuit(int exitCode, const QString& msg) -{ - if (!msg.isEmpty()) { - if (exitCode > 0) - qDebug("ERROR: %s", msg.toLatin1().data()); - else - qDebug() << msg; - } - exit(exitCode); -} - -QUrl urlFromUserInput(const QString& string) -{ - QString input(string); - QFileInfo fi(input); - if (fi.exists() && fi.isRelative()) - input = fi.absoluteFilePath(); - - return QUrl::fromUserInput(input); -} - - diff --git a/WebKitTools/QtTestBrowser/utils.h b/WebKitTools/QtTestBrowser/utils.h deleted file mode 100644 index b67351e..0000000 --- a/WebKitTools/QtTestBrowser/utils.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef utils_h -#define utils_h - -#include - -#ifndef NO_RETURN -#if defined(__CC_ARM) || defined(__ARMCC__) -#define NO_RETURN __declspec(noreturn) -#elif defined(__GNUC__) -#define NO_RETURN __attribute((__noreturn__)) -#else -#define NO_RETURN -#endif -#endif - -// options handling -QString takeOptionValue(QStringList* arguments, int index); -QString formatKeys(QList keys); -QList enumToKeys(const QMetaObject o, const QString& name, const QString& strip); - -NO_RETURN void appQuit(int status, const QString& msg = QString()); - -QUrl urlFromUserInput(const QString& input); - -#endif diff --git a/WebKitTools/QtTestBrowser/webinspector.h b/WebKitTools/QtTestBrowser/webinspector.h deleted file mode 100644 index 5cc7f8a..0000000 --- a/WebKitTools/QtTestBrowser/webinspector.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2009-2010 Nokia Corporation and/or its subsidiary(-ies) - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef webinspector_h -#define webinspector_h - -#include -#include "qwebinspector.h" - -class WebInspector : public QWebInspector { - Q_OBJECT - -public: - WebInspector(QWidget* parent = 0) : QWebInspector(parent) {} - -signals: - void visibleChanged(bool nowVisible); - -protected: - void showEvent(QShowEvent* event) - { - QWebInspector::showEvent(event); - emit visibleChanged(true); - } - void hideEvent(QHideEvent* event) - { - QWebInspector::hideEvent(event); - emit visibleChanged(false); - } -}; - -#endif diff --git a/WebKitTools/QtTestBrowser/webpage.cpp b/WebKitTools/QtTestBrowser/webpage.cpp deleted file mode 100644 index b6caf67..0000000 --- a/WebKitTools/QtTestBrowser/webpage.cpp +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright (C) 2009-2010 Nokia Corporation and/or its subsidiary(-ies) - * Copyright (C) 2009 Girish Ramakrishnan - * Copyright (C) 2006 George Staikos - * Copyright (C) 2006 Dirk Mueller - * Copyright (C) 2006 Zack Rusin - * Copyright (C) 2006 Simon Hausmann - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "webpage.h" - -#include "launcherwindow.h" - -#include -#include -#include -#include -#include -#include - -WebPage::WebPage(QObject* parent) - : QWebPage(parent) - , m_userAgent() - , m_interruptingJavaScriptEnabled(false) -{ - applyProxy(); - - connect(networkAccessManager(), SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)), - this, SLOT(authenticationRequired(QNetworkReply*, QAuthenticator*))); - connect(this, SIGNAL(featurePermissionRequested(QWebFrame*, QWebPage::Feature)), this, SLOT(requestPermission(QWebFrame*, QWebPage::Feature))); - connect(this, SIGNAL(featurePermissionRequestCanceled(QWebFrame*, QWebPage::Feature)), this, SLOT(featurePermissionRequestCanceled(QWebFrame*, QWebPage::Feature))); -} - -void WebPage::applyProxy() -{ - QUrl proxyUrl(qgetenv("http_proxy")); - - if (proxyUrl.isValid() && !proxyUrl.host().isEmpty()) { - int proxyPort = (proxyUrl.port() > 0) ? proxyUrl.port() : 8080; - networkAccessManager()->setProxy(QNetworkProxy(QNetworkProxy::HttpProxy, proxyUrl.host(), proxyPort)); - } -} - -bool WebPage::supportsExtension(QWebPage::Extension extension) const -{ - if (extension == QWebPage::ErrorPageExtension) - return true; - return false; -} - -bool WebPage::extension(Extension extension, const ExtensionOption* option, ExtensionReturn* output) -{ - const QWebPage::ErrorPageExtensionOption* info = static_cast(option); - QWebPage::ErrorPageExtensionReturn* errorPage = static_cast(output); - - errorPage->content = QString("Failed loading page%1") - .arg(info->errorString).toUtf8(); - - return true; -} - -bool WebPage::acceptNavigationRequest(QWebFrame* frame, const QNetworkRequest& request, NavigationType type) -{ - QObject* view = parent(); - - QVariant value = view->property("keyboardModifiers"); - - if (!value.isNull()) { - Qt::KeyboardModifiers modifiers = Qt::KeyboardModifiers(value.toInt()); - - if (modifiers & Qt::ShiftModifier) { - QWebPage* page = createWindow(QWebPage::WebBrowserWindow); - page->mainFrame()->load(request); - return false; - } - - if (modifiers & Qt::AltModifier) { - openUrlInDefaultBrowser(request.url()); - return false; - } - } - - return QWebPage::acceptNavigationRequest(frame, request, type); -} - -void WebPage::openUrlInDefaultBrowser(const QUrl& url) -{ - if (QAction* action = qobject_cast(sender())) - QDesktopServices::openUrl(action->data().toUrl()); - else - QDesktopServices::openUrl(url); -} - -QString WebPage::userAgentForUrl(const QUrl& url) const -{ - if (!m_userAgent.isEmpty()) - return m_userAgent; - return QWebPage::userAgentForUrl(url); -} - -bool WebPage::shouldInterruptJavaScript() -{ - if (!m_interruptingJavaScriptEnabled) - return false; - return QWebPage::shouldInterruptJavaScript(); -} - -void WebPage::authenticationRequired(QNetworkReply* reply, QAuthenticator* authenticator) -{ - QDialog* dialog = new QDialog(QApplication::activeWindow()); - dialog->setWindowTitle("HTTP Authentication"); - - QGridLayout* layout = new QGridLayout(dialog); - dialog->setLayout(layout); - - QLabel* messageLabel = new QLabel(dialog); - messageLabel->setWordWrap(true); - QString messageStr = QString("Enter with username and password for: %1"); - messageLabel->setText(messageStr.arg(reply->url().toString())); - layout->addWidget(messageLabel, 0, 1); - - QLabel* userLabel = new QLabel("Username:", dialog); - layout->addWidget(userLabel, 1, 0); - QLineEdit* userInput = new QLineEdit(dialog); - layout->addWidget(userInput, 1, 1); - - QLabel* passLabel = new QLabel("Password:", dialog); - layout->addWidget(passLabel, 2, 0); - QLineEdit* passInput = new QLineEdit(dialog); - passInput->setEchoMode(QLineEdit::Password); - layout->addWidget(passInput, 2, 1); - - QDialogButtonBox* buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok - | QDialogButtonBox::Cancel, Qt::Horizontal, dialog); - connect(buttonBox, SIGNAL(accepted()), dialog, SLOT(accept())); - connect(buttonBox, SIGNAL(rejected()), dialog, SLOT(reject())); - layout->addWidget(buttonBox, 3, 1); - - if (dialog->exec() == QDialog::Accepted) { - authenticator->setUser(userInput->text()); - authenticator->setPassword(passInput->text()); - } - - delete dialog; -} - -void WebPage::requestPermission(QWebFrame* frame, QWebPage::Feature feature) -{ - setFeaturePermission(frame, feature, PermissionGrantedByUser); -} - -void WebPage::featurePermissionRequestCanceled(QWebFrame*, QWebPage::Feature) -{ -} - -QWebPage* WebPage::createWindow(QWebPage::WebWindowType type) -{ - LauncherWindow* mw = new LauncherWindow; - if (type == WebModalDialog) - mw->setWindowModality(Qt::ApplicationModal); - mw->show(); - return mw->page(); -} - -QObject* WebPage::createPlugin(const QString &classId, const QUrl&, const QStringList&, const QStringList&) -{ - if (classId == "alien_QLabel") { - QLabel* l = new QLabel; - l->winId(); - return l; - } - -#ifndef QT_NO_UITOOLS - QUiLoader loader; - return loader.createWidget(classId, view()); -#else - Q_UNUSED(classId); - return 0; -#endif -} - diff --git a/WebKitTools/QtTestBrowser/webpage.h b/WebKitTools/QtTestBrowser/webpage.h deleted file mode 100644 index 01f3f6a..0000000 --- a/WebKitTools/QtTestBrowser/webpage.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) - * Copyright (C) 2009 Girish Ramakrishnan - * Copyright (C) 2006 George Staikos - * Copyright (C) 2006 Dirk Mueller - * Copyright (C) 2006 Zack Rusin - * Copyright (C) 2006 Simon Hausmann - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef webpage_h -#define webpage_h - -#include -#include - -class WebPage : public QWebPage { - Q_OBJECT - -public: - WebPage(QObject* parent = 0); - - virtual QWebPage* createWindow(QWebPage::WebWindowType); - virtual QObject* createPlugin(const QString&, const QUrl&, const QStringList&, const QStringList&); - virtual bool supportsExtension(QWebPage::Extension extension) const; - virtual bool extension(Extension extension, const ExtensionOption* option, ExtensionReturn* output); - - virtual bool acceptNavigationRequest(QWebFrame* frame, const QNetworkRequest& request, NavigationType type); - - QString userAgentForUrl(const QUrl& url) const; - void setInterruptingJavaScriptEnabled(bool enabled) { m_interruptingJavaScriptEnabled = enabled; } - -public slots: - void openUrlInDefaultBrowser(const QUrl& url = QUrl()); - void setUserAgent(const QString& ua) { m_userAgent = ua; } - bool shouldInterruptJavaScript(); - void authenticationRequired(QNetworkReply*, QAuthenticator*); - void requestPermission(QWebFrame* frame, QWebPage::Feature feature); - void featurePermissionRequestCanceled(QWebFrame* frame, QWebPage::Feature feature); - -private: - void applyProxy(); - QString m_userAgent; - bool m_interruptingJavaScriptEnabled; -}; - -#endif diff --git a/WebKitTools/QtTestBrowser/webview.cpp b/WebKitTools/QtTestBrowser/webview.cpp deleted file mode 100644 index 2a541fb..0000000 --- a/WebKitTools/QtTestBrowser/webview.cpp +++ /dev/null @@ -1,273 +0,0 @@ -/* - * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) - * Copyright (C) 2009 Girish Ramakrishnan - * Copyright (C) 2006 George Staikos - * Copyright (C) 2006 Dirk Mueller - * Copyright (C) 2006 Zack Rusin - * Copyright (C) 2006 Simon Hausmann - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "webview.h" - -#include -#include - -WebViewGraphicsBased::WebViewGraphicsBased(QWidget* parent) - : QGraphicsView(parent) - , m_item(new GraphicsWebView) - , m_numPaintsTotal(0) - , m_numPaintsSinceLastMeasure(0) - , m_measureFps(false) - , m_resizesToContents(false) - , m_machine(0) -{ - setScene(new QGraphicsScene(this)); - scene()->addItem(m_item); - scene()->setFocusItem(m_item); - - setFrameShape(QFrame::NoFrame); - setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - - m_updateTimer = new QTimer(this); - m_updateTimer->setInterval(1000); - connect(m_updateTimer, SIGNAL(timeout()), this, SLOT(updateFrameRate())); -} - -void WebViewGraphicsBased::setPage(QWebPage* page) -{ - connect(page->mainFrame(), SIGNAL(contentsSizeChanged(const QSize&)), SLOT(contentsSizeChanged(const QSize&))); - connect(page, SIGNAL(scrollRequested(int, int, const QRect&)), SLOT(scrollRequested(int, int))); - graphicsWebView()->setPage(page); -} - -void WebViewGraphicsBased::scrollRequested(int x, int y) -{ - if (!m_resizesToContents) - return; - - // Turn off interactive mode while scrolling, or QGraphicsView will replay the - // last mouse event which may cause WebKit to initiate a drag operation. - bool interactive = isInteractive(); - setInteractive(false); - - verticalScrollBar()->setValue(-y); - horizontalScrollBar()->setValue(-x); - - setInteractive(interactive); -} - -void WebViewGraphicsBased::contentsSizeChanged(const QSize& size) -{ - if (m_resizesToContents) - scene()->setSceneRect(0, 0, size.width(), size.height()); -} - -void WebViewGraphicsBased::setResizesToContents(bool b) -{ - if (b == m_resizesToContents) - return; - - m_resizesToContents = b; - graphicsWebView()->setResizesToContents(m_resizesToContents); - - // When setting resizesToContents ON, our web view widget will always size as big as the - // web content being displayed, and so will the QWebPage's viewport. It implies that internally - // WebCore will work as if there was no content rendered offscreen, and then no scrollbars need - // drawing. In order to keep scrolling working, we: - // - // 1) Set QGraphicsView's scrollbars policy back to 'auto'. - // 2) Set scene's boundaries rect to an invalid size, which automatically makes it to be as big - // as it needs to enclose all items onto it. We do that because QGraphicsView also calculates - // the size of its scrollable area according to the amount of content in scene that is rendered - // offscreen. - // 3) Set QWebPage's preferredContentsSize according to the size of QGraphicsView's viewport, - // so WebCore properly lays pages out. - // - // On the other hand, when toggling resizesToContents OFF, we set back the default values, as - // opposite as described above. - if (m_resizesToContents) { - setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); - setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); - graphicsWebView()->page()->setPreferredContentsSize(size()); - QRectF itemRect(graphicsWebView()->geometry().topLeft(), graphicsWebView()->page()->mainFrame()->contentsSize()); - graphicsWebView()->setGeometry(itemRect); - scene()->setSceneRect(itemRect); - } else { - setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - graphicsWebView()->page()->setPreferredContentsSize(QSize()); - QRect viewportRect(QPoint(0, 0), size()); - graphicsWebView()->setGeometry(viewportRect); - scene()->setSceneRect(viewportRect); - } -} - -void WebViewGraphicsBased::resizeEvent(QResizeEvent* event) -{ - QGraphicsView::resizeEvent(event); - - QSize size(event->size()); - - if (m_resizesToContents) { - graphicsWebView()->page()->setPreferredContentsSize(size); - return; - } - - QRectF rect(QPoint(0, 0), size); - graphicsWebView()->setGeometry(rect); - scene()->setSceneRect(rect); -} - -void WebViewGraphicsBased::setFrameRateMeasurementEnabled(bool enabled) -{ - m_measureFps = enabled; - if (m_measureFps) { - m_lastConsultTime = m_startTime = QTime::currentTime(); - m_fpsTimer.start(); - m_updateTimer->start(); - } else { - m_fpsTimer.stop(); - m_updateTimer->stop(); - } -} - -void WebViewGraphicsBased::updateFrameRate() -{ - const QTime now = QTime::currentTime(); - int interval = m_lastConsultTime.msecsTo(now); - int frames = m_fpsTimer.numFrames(interval); - int current = interval ? frames * 1000 / interval : 0; - - emit currentFPSUpdated(current); - - m_lastConsultTime = now; -} - -void WebViewGraphicsBased::animatedFlip() -{ - QSizeF center = graphicsWebView()->boundingRect().size() / 2; - QPointF centerPoint = QPointF(center.width(), center.height()); - graphicsWebView()->setTransformOriginPoint(centerPoint); - - QPropertyAnimation* animation = new QPropertyAnimation(graphicsWebView(), "rotation", this); - animation->setDuration(1000); - - int rotation = int(graphicsWebView()->rotation()); - - animation->setStartValue(rotation); - animation->setEndValue(rotation + 180 - (rotation % 180)); - - animation->start(QAbstractAnimation::DeleteWhenStopped); -} - -void WebViewGraphicsBased::animatedYFlip() -{ - if (!m_machine) { - m_machine = new QStateMachine(this); - - QState* s0 = new QState(m_machine); - s0->assignProperty(this, "yRotation", 0); - - QState* s1 = new QState(m_machine); - s1->assignProperty(this, "yRotation", 90); - - QAbstractTransition* t1 = s0->addTransition(s1); - QPropertyAnimation* yRotationAnim = new QPropertyAnimation(this, "yRotation", this); - t1->addAnimation(yRotationAnim); - - QState* s2 = new QState(m_machine); - s2->assignProperty(this, "yRotation", -90); - s1->addTransition(s1, SIGNAL(propertiesAssigned()), s2); - - QState* s3 = new QState(m_machine); - s3->assignProperty(this, "yRotation", 0); - - QAbstractTransition* t2 = s2->addTransition(s3); - t2->addAnimation(yRotationAnim); - - QFinalState* final = new QFinalState(m_machine); - s3->addTransition(s3, SIGNAL(propertiesAssigned()), final); - - m_machine->setInitialState(s0); - yRotationAnim->setDuration(1000); - } - - m_machine->start(); -} - -void WebViewGraphicsBased::paintEvent(QPaintEvent* event) -{ - QGraphicsView::paintEvent(event); - if (!m_measureFps) - return; -} - -static QMenu* createContextMenu(QWebPage* page, QPoint position) -{ - QMenu* menu = page->createStandardContextMenu(); - - QWebHitTestResult r = page->mainFrame()->hitTestContent(position); - - if (!r.linkUrl().isEmpty()) { - WebPage* webPage = qobject_cast(page); - QAction* newTabAction = menu->addAction("Open in Default &Browser", webPage, SLOT(openUrlInDefaultBrowser())); - newTabAction->setData(r.linkUrl()); - menu->insertAction(menu->actions().at(2), newTabAction); - } - return menu; -} - -void GraphicsWebView::mousePressEvent(QGraphicsSceneMouseEvent* event) -{ - setProperty("mouseButtons", QVariant::fromValue(int(event->buttons()))); - setProperty("keyboardModifiers", QVariant::fromValue(int(event->modifiers()))); - - QGraphicsWebView::mousePressEvent(event); -} - -void WebViewTraditional::mousePressEvent(QMouseEvent* event) -{ - setProperty("mouseButtons", QVariant::fromValue(int(event->buttons()))); - setProperty("keyboardModifiers", QVariant::fromValue(int(event->modifiers()))); - - QWebView::mousePressEvent(event); -} - -void GraphicsWebView::contextMenuEvent(QGraphicsSceneContextMenuEvent* event) -{ - QMenu* menu = createContextMenu(page(), event->pos().toPoint()); - menu->exec(event->screenPos()); - delete menu; -} - -void WebViewTraditional::contextMenuEvent(QContextMenuEvent* event) -{ - QMenu* menu = createContextMenu(page(), event->pos()); - menu->exec(event->globalPos()); - delete menu; -} - diff --git a/WebKitTools/QtTestBrowser/webview.h b/WebKitTools/QtTestBrowser/webview.h deleted file mode 100644 index 240ea89..0000000 --- a/WebKitTools/QtTestBrowser/webview.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) - * Copyright (C) 2009 Girish Ramakrishnan - * Copyright (C) 2006 George Staikos - * Copyright (C) 2006 Dirk Mueller - * Copyright (C) 2006 Zack Rusin - * Copyright (C) 2006 Simon Hausmann - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef webview_h -#define webview_h - -#include "fpstimer.h" -#include "webpage.h" -#include -#include -#include -#include -#include - -class QStateMachine; - -class WebViewTraditional : public QWebView { - Q_OBJECT - -public: - WebViewTraditional(QWidget* parent) : QWebView(parent) {} - -protected: - virtual void contextMenuEvent(QContextMenuEvent*); - virtual void mousePressEvent(QMouseEvent*); -}; - - -class GraphicsWebView : public QGraphicsWebView { - Q_OBJECT - -public: - GraphicsWebView(QGraphicsItem* parent = 0) : QGraphicsWebView(parent) {}; - -protected: - virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent*); - virtual void mousePressEvent(QGraphicsSceneMouseEvent*); -}; - - -class WebViewGraphicsBased : public QGraphicsView { - Q_OBJECT - Q_PROPERTY(qreal yRotation READ yRotation WRITE setYRotation) - -public: - WebViewGraphicsBased(QWidget* parent); - void setPage(QWebPage* page); - - void setItemCacheMode(QGraphicsItem::CacheMode mode) { graphicsWebView()->setCacheMode(mode); } - QGraphicsItem::CacheMode itemCacheMode() { return graphicsWebView()->cacheMode(); } - - void setFrameRateMeasurementEnabled(bool enabled); - bool frameRateMeasurementEnabled() const { return m_measureFps; } - - virtual void resizeEvent(QResizeEvent*); - virtual void paintEvent(QPaintEvent* event); - - void setResizesToContents(bool b); - bool resizesToContents() const { return m_resizesToContents; } - - void setYRotation(qreal angle); - qreal yRotation() const { return m_yRotation; } - - GraphicsWebView* graphicsWebView() const { return m_item; } - -public slots: - void updateFrameRate(); - void animatedFlip(); - void animatedYFlip(); - void contentsSizeChanged(const QSize&); - void scrollRequested(int, int); - -signals: - void currentFPSUpdated(int fps); - -private: - GraphicsWebView* m_item; - int m_numPaintsTotal; - int m_numPaintsSinceLastMeasure; - QTime m_startTime; - QTime m_lastConsultTime; - QTimer* m_updateTimer; - bool m_measureFps; - qreal m_yRotation; - bool m_resizesToContents; - QStateMachine* m_machine; - FpsTimer m_fpsTimer; -}; - -inline void WebViewGraphicsBased::setYRotation(qreal angle) -{ - QRectF r = graphicsWebView()->boundingRect(); - graphicsWebView()->setTransform(QTransform() - .translate(r.width() / 2, r.height() / 2) - .rotate(angle, Qt::YAxis) - .translate(-r.width() / 2, -r.height() / 2)); - m_yRotation = angle; -} - -#endif -- cgit v1.1