summaryrefslogtreecommitdiff
path: root/Tools/MiniBrowser
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-02-09 14:16:12 +0100
committerSimon Hausmann <simon.hausmann@nokia.com>2012-02-09 14:16:12 +0100
commit03e12282df9aa1e1fb05a8b90f1cfc2e08764cec (patch)
tree52599cd0ab782b1768e23ad176f7618f98333cb6 /Tools/MiniBrowser
parentcd44dc59cdfc39534aef4d417e9f3c412e3be139 (diff)
downloadqtwebkit-03e12282df9aa1e1fb05a8b90f1cfc2e08764cec.tar.gz
Imported WebKit commit e09a82039aa4273ab318b71122e92d8e5f233525 (http://svn.webkit.org/repository/webkit/trunk@107223)
Diffstat (limited to 'Tools/MiniBrowser')
-rw-r--r--Tools/MiniBrowser/gtk/BrowserWindow.c21
-rw-r--r--Tools/MiniBrowser/gtk/GNUmakefile.am11
-rw-r--r--Tools/MiniBrowser/qt/BrowserWindow.cpp6
-rw-r--r--Tools/MiniBrowser/qt/MiniBrowserApplication.cpp7
-rw-r--r--Tools/MiniBrowser/qt/MiniBrowserApplication.h5
-rw-r--r--Tools/MiniBrowser/qt/qml/BrowserWindow.qml2
-rw-r--r--Tools/MiniBrowser/qt/qml/MockTouchPoint.qml4
7 files changed, 38 insertions, 18 deletions
diff --git a/Tools/MiniBrowser/gtk/BrowserWindow.c b/Tools/MiniBrowser/gtk/BrowserWindow.c
index e04ab0b06..4d6bde488 100644
--- a/Tools/MiniBrowser/gtk/BrowserWindow.c
+++ b/Tools/MiniBrowser/gtk/BrowserWindow.c
@@ -235,6 +235,26 @@ static gboolean webViewLoadFailed(WebKitWebView *webView, WebKitLoadEvent loadEv
return FALSE;
}
+static gboolean webViewDecidePolicy(WebKitWebView *webView, WebKitPolicyDecision *decision, WebKitPolicyDecisionType decisionType, BrowserWindow *window)
+{
+ if (decisionType != WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION)
+ return FALSE;
+
+ WebKitNavigationPolicyDecision *navigationDecision = WEBKIT_NAVIGATION_POLICY_DECISION(decision);
+ if (webkit_navigation_policy_decision_get_navigation_type(navigationDecision) != WEBKIT_NAVIGATION_TYPE_LINK_CLICKED
+ || webkit_navigation_policy_decision_get_mouse_button(navigationDecision) != 2)
+ return FALSE;
+
+ WebKitWebView *newWebView = WEBKIT_WEB_VIEW(webkit_web_view_new_with_context(webkit_web_view_get_context(webView)));
+ webkit_web_view_set_settings(newWebView, webkit_web_view_get_settings(webView));
+ GtkWidget *newWindow = browser_window_new(newWebView);
+ webkit_web_view_load_request(newWebView, webkit_navigation_policy_decision_get_request(navigationDecision));
+ gtk_widget_show(newWindow);
+
+ webkit_policy_decision_ignore(decision);
+ return TRUE;
+}
+
static void browserWindowFinalize(GObject *gObject)
{
G_OBJECT_CLASS(browser_window_parent_class)->finalize(gObject);
@@ -333,6 +353,7 @@ static void browserWindowConstructed(GObject *gObject)
g_signal_connect(window->webView, "notify::title", G_CALLBACK(webViewTitleChanged), window);
g_signal_connect(window->webView, "create", G_CALLBACK(webViewCreate), window);
g_signal_connect(window->webView, "load-failed", G_CALLBACK(webViewLoadFailed), window);
+ g_signal_connect(window->webView, "decide-policy", G_CALLBACK(webViewDecidePolicy), window);
WebKitBackForwardList *backForwadlist = webkit_web_view_get_back_forward_list(window->webView);
g_signal_connect(backForwadlist, "changed", G_CALLBACK(backForwadlistChanged), window);
diff --git a/Tools/MiniBrowser/gtk/GNUmakefile.am b/Tools/MiniBrowser/gtk/GNUmakefile.am
index 8a3b87e0f..2a020f6e5 100644
--- a/Tools/MiniBrowser/gtk/GNUmakefile.am
+++ b/Tools/MiniBrowser/gtk/GNUmakefile.am
@@ -1,10 +1,6 @@
noinst_PROGRAMS += \
Programs/MiniBrowser
-minibrowser_built_sources += \
- DerivedSources/WebKit2/BrowserMarshal.h \
- DerivedSources/WebKit2/BrowserMarshal.c
-
Programs_MiniBrowser_CPPFLAGS = \
-I$(srcdir)/Source \
-I$(top_builddir)/DerivedSources/WebKit2 \
@@ -16,7 +12,6 @@ Programs_MiniBrowser_CPPFLAGS = \
$(GTK_CFLAGS)
Programs_MiniBrowser_SOURCES = \
- $(minibrowser_built_sources) \
Tools/MiniBrowser/gtk/BrowserCellRendererVariant.h \
Tools/MiniBrowser/gtk/BrowserCellRendererVariant.c \
Tools/MiniBrowser/gtk/BrowserSettingsDialog.h \
@@ -25,6 +20,12 @@ Programs_MiniBrowser_SOURCES = \
Tools/MiniBrowser/gtk/BrowserWindow.c \
Tools/MiniBrowser/gtk/main.c
+minibrowser_built_sources += \
+ DerivedSources/WebKit2/BrowserMarshal.h \
+ DerivedSources/WebKit2/BrowserMarshal.c
+nodist_Programs_MiniBrowser_SOURCES = \
+ $(minibrowser_built_sources)
+
Programs_MiniBrowser_LDADD = \
libwebkit2gtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la \
$(GLIB_LIBS) \
diff --git a/Tools/MiniBrowser/qt/BrowserWindow.cpp b/Tools/MiniBrowser/qt/BrowserWindow.cpp
index a768581dc..639cd4f0e 100644
--- a/Tools/MiniBrowser/qt/BrowserWindow.cpp
+++ b/Tools/MiniBrowser/qt/BrowserWindow.cpp
@@ -54,8 +54,6 @@ BrowserWindow::BrowserWindow(WindowOptions* options)
setSource(QUrl("qrc:/qml/BrowserWindow.qml"));
connect(rootObject(), SIGNAL(pageTitleChanged(QString)), this, SLOT(setWindowTitle(QString)));
connect(rootObject(), SIGNAL(newWindow(QString)), this, SLOT(newWindow(QString)));
- if (options->useTraditionalDesktopBehavior())
- webView()->experimental()->setUseTraditionalDesktopBehaviour(true);
if (options->startFullScreen())
showFullScreen();
else {
@@ -110,12 +108,14 @@ void BrowserWindow::updateVisualMockTouchPoints(const QList<QWindowSystemInterfa
mockTouchPointItem->setParentItem(rootObject());
}
- QPointF position = touchPoint.area.topLeft();
+ QPointF position = touchPoint.area.center();
position.rx() -= geometry().x();
position.ry() -= geometry().y();
mockTouchPointItem->setX(position.x());
mockTouchPointItem->setY(position.y());
+ mockTouchPointItem->setWidth(touchPoint.area.width());
+ mockTouchPointItem->setHeight(touchPoint.area.height());
mockTouchPointItem->setProperty("pressed", QVariant(touchPoint.state != Qt::TouchPointReleased));
}
}
diff --git a/Tools/MiniBrowser/qt/MiniBrowserApplication.cpp b/Tools/MiniBrowser/qt/MiniBrowserApplication.cpp
index 88260b8cc..57a55928b 100644
--- a/Tools/MiniBrowser/qt/MiniBrowserApplication.cpp
+++ b/Tools/MiniBrowser/qt/MiniBrowserApplication.cpp
@@ -29,6 +29,7 @@
#include "MiniBrowserApplication.h"
#include "BrowserWindow.h"
+#include "qquickwebview_p.h"
#include "utils.h"
#include <QRegExp>
#include <QEvent>
@@ -124,7 +125,7 @@ bool MiniBrowserApplication::notify(QObject* target, QEvent* event)
const QMouseEvent* const mouseEvent = static_cast<QMouseEvent*>(event);
QWindowSystemInterface::TouchPoint touchPoint;
- touchPoint.area = QRectF(mouseEvent->globalPos(), QSizeF(1, 1));
+ touchPoint.area = QRectF(mouseEvent->globalPos() - QPointF(30, 40), QSizeF(60, 80));
touchPoint.pressure = 1;
switch (mouseEvent->type()) {
@@ -182,7 +183,7 @@ void MiniBrowserApplication::sendTouchEvent(BrowserWindow* browserWindow)
QWindowSystemInterface::handleTouchEvent(browserWindow, device, m_touchPoints.values());
bool holdingControl = QApplication::keyboardModifiers().testFlag(Qt::ControlModifier);
- if (!m_windowOptions.useTraditionalDesktopBehavior())
+ if (QQuickWebViewExperimental::flickableViewportEnabled())
browserWindow->updateVisualMockTouchPoints(holdingControl ? m_touchPoints.values() : QList<QWindowSystemInterface::TouchPoint>());
// Get rid of touch-points that are no longer valid
@@ -220,9 +221,9 @@ void MiniBrowserApplication::handleUserOptions()
}
const bool useDesktopBehavior = takeOptionFlag(&args, "--desktop");
+ QQuickWebViewExperimental::setFlickableViewportEnabled(!useDesktopBehavior);
if (!useDesktopBehavior)
qputenv("QT_WEBKIT_USE_MOBILE_THEME", QByteArray("1"));
- m_windowOptions.setUseTraditionalDesktopBehavior(useDesktopBehavior);
m_windowOptions.setPrintLoadedUrls(takeOptionFlag(&args, "-v"));
m_windowOptions.setStartMaximized(takeOptionFlag(&args, "--maximize"));
m_windowOptions.setStartFullScreen(takeOptionFlag(&args, "-f"));
diff --git a/Tools/MiniBrowser/qt/MiniBrowserApplication.h b/Tools/MiniBrowser/qt/MiniBrowserApplication.h
index 43f83cfe1..b5565855e 100644
--- a/Tools/MiniBrowser/qt/MiniBrowserApplication.h
+++ b/Tools/MiniBrowser/qt/MiniBrowserApplication.h
@@ -43,7 +43,6 @@ class BrowserWindow;
class WindowOptions : public QObject {
Q_OBJECT
Q_PROPERTY(bool printLoadedUrls READ printLoadedUrls)
- Q_PROPERTY(bool useTraditionalDesktopBehavior READ useTraditionalDesktopBehavior)
Q_PROPERTY(bool startMaximized READ startMaximized)
Q_PROPERTY(bool touchMockingEnabled READ touchMockingEnabled WRITE setTouchMockingEnabled NOTIFY touchMockingEnabledChanged)
@@ -51,7 +50,6 @@ public:
WindowOptions(QObject* parent = 0)
: QObject(parent)
, m_printLoadedUrls(false)
- , m_useTraditionalDesktopBehavior(false)
, m_startMaximized(false)
, m_touchMockingEnabled(true)
, m_windowSize(QSize(980, 735))
@@ -60,8 +58,6 @@ public:
void setPrintLoadedUrls(bool enabled) { m_printLoadedUrls = enabled; }
bool printLoadedUrls() const { return m_printLoadedUrls; }
- void setUseTraditionalDesktopBehavior(bool enabled) { m_useTraditionalDesktopBehavior = enabled; }
- bool useTraditionalDesktopBehavior() const { return m_useTraditionalDesktopBehavior; }
void setStartMaximized(bool enabled) { m_startMaximized = enabled; }
bool startMaximized() const { return m_startMaximized; }
void setStartFullScreen(bool enabled) { m_startFullScreen = enabled; }
@@ -82,7 +78,6 @@ signals:
private:
bool m_printLoadedUrls;
- bool m_useTraditionalDesktopBehavior;
bool m_startMaximized;
bool m_startFullScreen;
bool m_touchMockingEnabled;
diff --git a/Tools/MiniBrowser/qt/qml/BrowserWindow.qml b/Tools/MiniBrowser/qt/qml/BrowserWindow.qml
index c080ed3ea..65999dd32 100644
--- a/Tools/MiniBrowser/qt/qml/BrowserWindow.qml
+++ b/Tools/MiniBrowser/qt/qml/BrowserWindow.qml
@@ -28,7 +28,7 @@
import QtQuick 2.0
import QtWebKit 3.0
-import QtWebKit.experimental 3.0
+import QtWebKit.experimental 1.0
Rectangle {
// Do not define anchors or an initial size here! This would mess up with QSGView::SizeRootObjectToView.
diff --git a/Tools/MiniBrowser/qt/qml/MockTouchPoint.qml b/Tools/MiniBrowser/qt/qml/MockTouchPoint.qml
index fd05156da..4cc5c2c66 100644
--- a/Tools/MiniBrowser/qt/qml/MockTouchPoint.qml
+++ b/Tools/MiniBrowser/qt/qml/MockTouchPoint.qml
@@ -37,7 +37,9 @@ Item {
source: "../icons/touchpoint.png"
x: -(width / 2)
y: -(height / 2)
- opacity: parent.pressed ? 0.8 : 0.0
+ height: parent.height
+ width: parent.width
+ opacity: parent.pressed ? 0.6 : 0.0
Behavior on opacity {
NumberAnimation { duration: 200 }