diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-02-24 16:36:50 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-02-24 16:36:50 +0100 |
commit | ad0d549d4cc13433f77c1ac8f0ab379c83d93f28 (patch) | |
tree | b34b0daceb7c8e7fdde4b4ec43650ab7caadb0a9 /Tools/MiniBrowser | |
parent | 03e12282df9aa1e1fb05a8b90f1cfc2e08764cec (diff) | |
download | qtwebkit-ad0d549d4cc13433f77c1ac8f0ab379c83d93f28.tar.gz |
Imported WebKit commit bb52bf3c0119e8a128cd93afe5572413a8617de9 (http://svn.webkit.org/repository/webkit/trunk@108790)
Diffstat (limited to 'Tools/MiniBrowser')
-rw-r--r-- | Tools/MiniBrowser/Configurations/Base.xcconfig | 5 | ||||
-rw-r--r-- | Tools/MiniBrowser/gtk/BrowserWindow.c | 75 | ||||
-rw-r--r-- | Tools/MiniBrowser/gtk/GNUmakefile.am | 2 | ||||
-rw-r--r-- | Tools/MiniBrowser/mac/BrowserWindowController.m | 3 | ||||
-rw-r--r-- | Tools/MiniBrowser/qt/MiniBrowser.pro | 2 | ||||
-rw-r--r-- | Tools/MiniBrowser/qt/MiniBrowser.qrc | 2 | ||||
-rw-r--r-- | Tools/MiniBrowser/qt/MiniBrowserApplication.cpp | 30 | ||||
-rw-r--r-- | Tools/MiniBrowser/qt/MiniBrowserApplication.h | 5 | ||||
-rw-r--r-- | Tools/MiniBrowser/qt/qml/AuthenticationDialog.qml | 70 | ||||
-rw-r--r-- | Tools/MiniBrowser/qt/qml/BrowserWindow.qml | 2 | ||||
-rw-r--r-- | Tools/MiniBrowser/qt/qml/DialogLineInput.qml | 1 | ||||
-rw-r--r-- | Tools/MiniBrowser/qt/qml/ProxyAuthenticationDialog.qml | 35 |
12 files changed, 211 insertions, 21 deletions
diff --git a/Tools/MiniBrowser/Configurations/Base.xcconfig b/Tools/MiniBrowser/Configurations/Base.xcconfig index 7c3e8afab..72079287f 100644 --- a/Tools/MiniBrowser/Configurations/Base.xcconfig +++ b/Tools/MiniBrowser/Configurations/Base.xcconfig @@ -36,6 +36,11 @@ WARNING_CFLAGS = -Wall -W -Wno-unused-parameter LINKER_DISPLAYS_MANGLED_NAMES = YES; VALID_ARCHS = i386 x86_64; +CLANG_CXX_LIBRARY = $(CLANG_CXX_LIBRARY_$(TARGET_MAC_OS_X_VERSION_MAJOR)); +CLANG_CXX_LIBRARY_1060 = libstdc++; +CLANG_CXX_LIBRARY_1070 = libc++; +CLANG_CXX_LIBRARY_1080 = libc++; +CLANG_CXX_LIBRARY_1090 = libc++; REAL_PLATFORM_NAME = $(REAL_PLATFORM_NAME_$(PLATFORM_NAME)); REAL_PLATFORM_NAME_ = $(REAL_PLATFORM_NAME_macosx); diff --git a/Tools/MiniBrowser/gtk/BrowserWindow.c b/Tools/MiniBrowser/gtk/BrowserWindow.c index 4d6bde488..74518444c 100644 --- a/Tools/MiniBrowser/gtk/BrowserWindow.c +++ b/Tools/MiniBrowser/gtk/BrowserWindow.c @@ -42,6 +42,8 @@ struct _BrowserWindow { GtkWidget *uriEntry; GtkWidget *backItem; GtkWidget *forwardItem; + GtkWidget *zoomInItem; + GtkWidget *zoomOutItem; GtkWidget *statusLabel; GtkWidget *settingsDialog; WebKitWebView *webView; @@ -53,6 +55,9 @@ struct _BrowserWindowClass { }; static const char *defaultWindowTitle = "WebKitGTK+ MiniBrwoser"; +static const gdouble minimumZoomLevel = 0.5; +static const gdouble maximumZoomLevel = 3; +static const gdouble zoomStep = 1.2; static gint windowCount = 0; G_DEFINE_TYPE(BrowserWindow, browser_window, GTK_TYPE_WINDOW) @@ -75,6 +80,11 @@ static void activateUriEntryCallback(BrowserWindow *window) webkit_web_view_load_uri(window->webView, gtk_entry_get_text(GTK_ENTRY(window->uriEntry))); } +static void reloadCallback(BrowserWindow *window) +{ + webkit_web_view_reload(window->webView); +} + static void goBackCallback(BrowserWindow *window) { webkit_web_view_go_back(window->webView); @@ -162,9 +172,6 @@ static GtkWidget *browserWindowCreateBackForwardMenu(BrowserWindow *window, GLis gtk_widget_show(menuItem); } - /* FIXME: This shoulnd't be necessary when didMouseMoveOverElement - * is implemented in WebKit2 GTK+ API. - */ g_signal_connect(menu, "hide", G_CALLBACK(resetStatusText), window); return menu; @@ -255,6 +262,50 @@ static gboolean webViewDecidePolicy(WebKitWebView *webView, WebKitPolicyDecision return TRUE; } +static void webViewMouseTargetChanged(WebKitWebView *webView, WebKitHitTestResult *hitTestResult, guint mouseModifiers, BrowserWindow *window) +{ + if (!webkit_hit_test_result_context_is_link(hitTestResult)) { + browserWindowSetStatusText(window, NULL); + return; + } + browserWindowSetStatusText(window, webkit_hit_test_result_get_link_uri(hitTestResult)); +} + +static gboolean browserWindowCanZoomIn(BrowserWindow *window) +{ + gdouble zoomLevel = webkit_web_view_get_zoom_level(window->webView) * zoomStep; + return zoomLevel < maximumZoomLevel; +} + +static gboolean browserWindowCanZoomOut(BrowserWindow *window) +{ + gdouble zoomLevel = webkit_web_view_get_zoom_level(window->webView) / zoomStep; + return zoomLevel > minimumZoomLevel; +} + +static void browserWindowUpdateZoomActions(BrowserWindow *window) +{ + gtk_widget_set_sensitive(window->zoomInItem, browserWindowCanZoomIn(window)); + gtk_widget_set_sensitive(window->zoomOutItem, browserWindowCanZoomOut(window)); +} + +static void webViewZoomLevelChanged(GObject *object, GParamSpec *paramSpec, BrowserWindow *window) +{ + browserWindowUpdateZoomActions(window); +} + +static void zoomInCallback(BrowserWindow *window) +{ + gdouble zoomLevel = webkit_web_view_get_zoom_level(window->webView) * zoomStep; + webkit_web_view_set_zoom_level(window->webView, zoomLevel); +} + +static void zoomOutCallback(BrowserWindow *window) +{ + gdouble zoomLevel = webkit_web_view_get_zoom_level(window->webView) / zoomStep; + webkit_web_view_set_zoom_level(window->webView, zoomLevel); +} + static void browserWindowFinalize(GObject *gObject) { G_OBJECT_CLASS(browser_window_parent_class)->finalize(gObject); @@ -323,6 +374,18 @@ static void browser_window_init(BrowserWindow *window) gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); gtk_widget_show(GTK_WIDGET(item)); + item = gtk_tool_button_new_from_stock(GTK_STOCK_ZOOM_OUT); + window->zoomOutItem = GTK_WIDGET(item); + g_signal_connect_swapped(item, "clicked", G_CALLBACK(zoomOutCallback), window); + gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); + gtk_widget_show(GTK_WIDGET(item)); + + item = gtk_tool_button_new_from_stock(GTK_STOCK_ZOOM_IN); + window->zoomInItem = GTK_WIDGET(item); + g_signal_connect_swapped(item, "clicked", G_CALLBACK(zoomInCallback), window); + gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); + gtk_widget_show(GTK_WIDGET(item)); + item = gtk_tool_item_new(); gtk_tool_item_set_expand(item, TRUE); gtk_container_add(GTK_CONTAINER(item), window->uriEntry); @@ -331,7 +394,7 @@ static void browser_window_init(BrowserWindow *window) gtk_widget_show(GTK_WIDGET(item)); item = gtk_tool_button_new_from_stock(GTK_STOCK_OK); - g_signal_connect_swapped(item, "clicked", G_CALLBACK(activateUriEntryCallback), (gpointer)window); + g_signal_connect_swapped(item, "clicked", G_CALLBACK(reloadCallback), window); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); gtk_widget_show(GTK_WIDGET(item)); @@ -348,12 +411,16 @@ static void browserWindowConstructed(GObject *gObject) { BrowserWindow *window = BROWSER_WINDOW(gObject); + browserWindowUpdateZoomActions(window); + g_signal_connect(window->webView, "notify::uri", G_CALLBACK(webViewURIChanged), window); g_signal_connect(window->webView, "notify::estimated-load-progress", G_CALLBACK(webViewLoadProgressChanged), window); 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); + g_signal_connect(window->webView, "mouse-target-changed", G_CALLBACK(webViewMouseTargetChanged), window); + g_signal_connect(window->webView, "notify::zoom-level", G_CALLBACK(webViewZoomLevelChanged), 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 2a020f6e5..9e42e194f 100644 --- a/Tools/MiniBrowser/gtk/GNUmakefile.am +++ b/Tools/MiniBrowser/gtk/GNUmakefile.am @@ -1,5 +1,7 @@ +if ENABLE_WEBKIT2 noinst_PROGRAMS += \ Programs/MiniBrowser +endif Programs_MiniBrowser_CPPFLAGS = \ -I$(srcdir)/Source \ diff --git a/Tools/MiniBrowser/mac/BrowserWindowController.m b/Tools/MiniBrowser/mac/BrowserWindowController.m index b6a30f17b..5dbd5a7dd 100644 --- a/Tools/MiniBrowser/mac/BrowserWindowController.m +++ b/Tools/MiniBrowser/mac/BrowserWindowController.m @@ -606,9 +606,10 @@ static void runOpenPanel(WKPageRef page, WKFrameRef frame, WKOpenPanelParameters processDidExit, didChangeBackForwardList, 0, // shouldGoToBackForwardItem - 0, // didFailToInitializePlugin + 0, // didFailToInitializePlugin didDetectXSSForFrame, 0, // didNewFirstVisuallyNonEmptyLayout + 0, // willGoToBackForwardListItem }; WKPageSetPageLoaderClient(_webView.pageRef, &loadClient); diff --git a/Tools/MiniBrowser/qt/MiniBrowser.pro b/Tools/MiniBrowser/qt/MiniBrowser.pro index 32389f2e8..f2290c86b 100644 --- a/Tools/MiniBrowser/qt/MiniBrowser.pro +++ b/Tools/MiniBrowser/qt/MiniBrowser.pro @@ -24,7 +24,7 @@ DESTDIR = $${ROOT_BUILD_DIR}/bin CONFIG += qtwebkit qtwebkit-private -QT += network declarative widgets quick +QT += network declarative quick macx: QT += xml RESOURCES += MiniBrowser.qrc diff --git a/Tools/MiniBrowser/qt/MiniBrowser.qrc b/Tools/MiniBrowser/qt/MiniBrowser.qrc index d71d41fc5..272350e7d 100644 --- a/Tools/MiniBrowser/qt/MiniBrowser.qrc +++ b/Tools/MiniBrowser/qt/MiniBrowser.qrc @@ -9,6 +9,7 @@ <file>icons/touch.png</file> <file>icons/touchpoint.png</file> <file>qml/AlertDialog.qml</file> + <file>qml/AuthenticationDialog.qml</file> <file>qml/BrowserWindow.qml</file> <file>qml/ConfirmDialog.qml</file> <file>qml/Dialog.qml</file> @@ -17,6 +18,7 @@ <file>qml/ItemSelector.qml</file> <file>qml/MockTouchPoint.qml</file> <file>qml/PromptDialog.qml</file> + <file>qml/ProxyAuthenticationDialog.qml</file> <file>qml/ViewportInfoItem.qml</file> <file>useragentlist.txt</file> <file>icons/favicon.png</file> diff --git a/Tools/MiniBrowser/qt/MiniBrowserApplication.cpp b/Tools/MiniBrowser/qt/MiniBrowserApplication.cpp index 57a55928b..2ec95adbd 100644 --- a/Tools/MiniBrowser/qt/MiniBrowserApplication.cpp +++ b/Tools/MiniBrowser/qt/MiniBrowserApplication.cpp @@ -35,7 +35,6 @@ #include <QEvent> #include <QMouseEvent> #include <QTouchEvent> -#include <QApplication> static inline bool isTouchEvent(const QEvent* event) { @@ -63,13 +62,14 @@ static inline bool isMouseEvent(const QEvent* event) } MiniBrowserApplication::MiniBrowserApplication(int& argc, char** argv) - : QApplication(argc, argv) + : QGuiApplication(argc, argv) , m_realTouchEventReceived(false) , m_pendingFakeTouchEventCount(0) , m_isRobotized(false) , m_robotTimeoutSeconds(0) , m_robotExtraTimeSeconds(0) , m_windowOptions(this) + , m_holdingControl(false) { setOrganizationName("Nokia"); setApplicationName("QtMiniBrowser"); @@ -80,23 +80,28 @@ MiniBrowserApplication::MiniBrowserApplication(int& argc, char** argv) bool MiniBrowserApplication::notify(QObject* target, QEvent* event) { + if(QInputEvent* ie = static_cast<QInputEvent*>(event)) + m_holdingControl = ie->modifiers().testFlag(Qt::ControlModifier); + else + m_holdingControl = false; + // We try to be smart, if we received real touch event, we are probably on a device // with touch screen, and we should not have touch mocking. if (!event->spontaneous() || m_realTouchEventReceived || !m_windowOptions.touchMockingEnabled()) - return QApplication::notify(target, event); + return QGuiApplication::notify(target, event); if (isTouchEvent(event) && static_cast<QTouchEvent*>(event)->deviceType() == QTouchEvent::TouchScreen) { if (m_pendingFakeTouchEventCount) --m_pendingFakeTouchEventCount; else m_realTouchEventReceived = true; - return QApplication::notify(target, event); + return QGuiApplication::notify(target, event); } BrowserWindow* browserWindow = qobject_cast<BrowserWindow*>(target); if (!browserWindow) - return QApplication::notify(target, event); + return QGuiApplication::notify(target, event); // In QML events are propagated through parents. But since the WebView // may consume key events, a shortcut might never reach the top QQuickItem. @@ -139,16 +144,16 @@ bool MiniBrowserApplication::notify(QObject* target, QEvent* event) break; case QEvent::MouseMove: if (!mouseEvent->buttons() || !m_touchPoints.contains(mouseEvent->buttons())) - return QApplication::notify(target, event); + return QGuiApplication::notify(target, event); touchPoint.id = mouseEvent->buttons(); touchPoint.state = Qt::TouchPointMoved; break; case QEvent::MouseButtonRelease: touchPoint.state = Qt::TouchPointReleased; touchPoint.id = mouseEvent->button(); - if (mouseEvent->modifiers().testFlag(Qt::ControlModifier)) { + if (m_holdingControl) { m_heldTouchPoints.insert(touchPoint.id); - return QApplication::notify(target, event); + return QGuiApplication::notify(target, event); } break; default: @@ -167,7 +172,7 @@ bool MiniBrowserApplication::notify(QObject* target, QEvent* event) sendTouchEvent(browserWindow); } - return QApplication::notify(target, event); + return QGuiApplication::notify(target, event); } void MiniBrowserApplication::sendTouchEvent(BrowserWindow* browserWindow) @@ -182,14 +187,13 @@ void MiniBrowserApplication::sendTouchEvent(BrowserWindow* browserWindow) m_pendingFakeTouchEventCount++; QWindowSystemInterface::handleTouchEvent(browserWindow, device, m_touchPoints.values()); - bool holdingControl = QApplication::keyboardModifiers().testFlag(Qt::ControlModifier); if (QQuickWebViewExperimental::flickableViewportEnabled()) - browserWindow->updateVisualMockTouchPoints(holdingControl ? m_touchPoints.values() : QList<QWindowSystemInterface::TouchPoint>()); + browserWindow->updateVisualMockTouchPoints(m_holdingControl ? m_touchPoints.values() : QList<QWindowSystemInterface::TouchPoint>()); // Get rid of touch-points that are no longer valid foreach (const QWindowSystemInterface::TouchPoint& touchPoint, m_touchPoints) { - if (touchPoint.state == Qt::TouchPointReleased) - m_touchPoints.remove(touchPoint.id); + if (touchPoint.state == Qt::TouchPointReleased) + m_touchPoints.remove(touchPoint.id); } } diff --git a/Tools/MiniBrowser/qt/MiniBrowserApplication.h b/Tools/MiniBrowser/qt/MiniBrowserApplication.h index b5565855e..0441fadd7 100644 --- a/Tools/MiniBrowser/qt/MiniBrowserApplication.h +++ b/Tools/MiniBrowser/qt/MiniBrowserApplication.h @@ -33,7 +33,7 @@ #include <QObject> #include <QStringList> #include <QtDeclarative> -#include <QtWidgets/QApplication> +#include <QGuiApplication> #include <QTouchEvent> #include <QUrl> #include "qwindowsysteminterface_qpa.h" @@ -84,7 +84,7 @@ private: QSize m_windowSize; }; -class MiniBrowserApplication : public QApplication { +class MiniBrowserApplication : public QGuiApplication { Q_OBJECT public: @@ -113,6 +113,7 @@ private: QSet<int> m_heldTouchPoints; WindowOptions m_windowOptions; + bool m_holdingControl; }; QML_DECLARE_TYPE(WindowOptions); diff --git a/Tools/MiniBrowser/qt/qml/AuthenticationDialog.qml b/Tools/MiniBrowser/qt/qml/AuthenticationDialog.qml new file mode 100644 index 000000000..1d88d3f15 --- /dev/null +++ b/Tools/MiniBrowser/qt/qml/AuthenticationDialog.qml @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2012 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. + */ + +import QtQuick 2.0 + +Dialog { + id: dialog + + title: "Authentication required." + message: model.hostname + " requires authentication." + + height: 250 + + DialogLineInput { + id: input + width: dialog.width - 30 + text: model.prefilledUsername + + onAccepted: model.accept(input.text, passwordInput.text) + } + + DialogLineInput { + id: passwordInput + text: "" + width: dialog.width - 30 + echoMode: TextInput.PasswordEchoOnEdit + + onAccepted: model.accept(input.text, passwordInput.text) + } + + Row { + id: buttonRow + spacing: 5 + anchors.horizontalCenter: parent.horizontalCenter + + DialogButton { + text: "OK" + onClicked: model.accept(input.text, passwordInput.text) + } + + DialogButton { + text: "Cancel" + onClicked: model.reject() + } + } +} diff --git a/Tools/MiniBrowser/qt/qml/BrowserWindow.qml b/Tools/MiniBrowser/qt/qml/BrowserWindow.qml index 65999dd32..3268d03f4 100644 --- a/Tools/MiniBrowser/qt/qml/BrowserWindow.qml +++ b/Tools/MiniBrowser/qt/qml/BrowserWindow.qml @@ -310,6 +310,8 @@ Rectangle { experimental.alertDialog: AlertDialog { } experimental.confirmDialog: ConfirmDialog { } experimental.promptDialog: PromptDialog { } + experimental.authenticationDialog: AuthenticationDialog { } + experimental.proxyAuthenticationDialog: ProxyAuthenticationDialog { } } ViewportInfoItem { diff --git a/Tools/MiniBrowser/qt/qml/DialogLineInput.qml b/Tools/MiniBrowser/qt/qml/DialogLineInput.qml index 1c85ff962..84faa5510 100644 --- a/Tools/MiniBrowser/qt/qml/DialogLineInput.qml +++ b/Tools/MiniBrowser/qt/qml/DialogLineInput.qml @@ -31,6 +31,7 @@ Rectangle { id: dialogLineInput property alias text: input.text + property alias echoMode: input.echoMode signal accepted() height: 20 diff --git a/Tools/MiniBrowser/qt/qml/ProxyAuthenticationDialog.qml b/Tools/MiniBrowser/qt/qml/ProxyAuthenticationDialog.qml new file mode 100644 index 000000000..ae27f2653 --- /dev/null +++ b/Tools/MiniBrowser/qt/qml/ProxyAuthenticationDialog.qml @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2012 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. + */ + +import QtQuick 2.0 + +AuthenticationDialog { + id: dialog + + title: "Proxy authentication required." + message: model.hostname + ":" + model.port + " requires authentication." +} |