From 967ab2bf41070dee942227988439875698f1e731 Mon Sep 17 00:00:00 2001 From: artoka Date: Thu, 17 Nov 2011 15:50:19 +0100 Subject: demos/declarative/webbrowser example modifications Modified the example to use centralized qmlapplicationviewer, removed duplicate files and modified project files according to the changes. Merge-request: 2719 Reviewed-by: Casper van Donderen --- demos/declarative/webbrowser/content/Button.qml | 65 ------- .../webbrowser/content/FlickableWebView.qml | 195 --------------------- demos/declarative/webbrowser/content/Header.qml | 150 ---------------- demos/declarative/webbrowser/content/ScrollBar.qml | 107 ----------- demos/declarative/webbrowser/content/UrlInput.qml | 96 ---------- .../webbrowser/content/pics/display.png | Bin 998 -> 0 bytes .../webbrowser/content/pics/edit-delete.png | Bin 831 -> 0 bytes .../content/pics/go-jump-locationbar.png | Bin 408 -> 0 bytes .../webbrowser/content/pics/go-next-view.png | Bin 1310 -> 0 bytes .../webbrowser/content/pics/go-previous-view.png | Bin 1080 -> 0 bytes .../webbrowser/content/pics/scrollbar.png | Bin 161 -> 0 bytes .../webbrowser/content/pics/titlebar-bg.png | Bin 213 -> 0 bytes .../webbrowser/content/pics/view-refresh.png | Bin 2182 -> 0 bytes demos/declarative/webbrowser/main.cpp | 54 ++++++ .../webbrowser/qml/webbrowser/content/Button.qml | 65 +++++++ .../qml/webbrowser/content/FlickableWebView.qml | 195 +++++++++++++++++++++ .../webbrowser/qml/webbrowser/content/Header.qml | 150 ++++++++++++++++ .../qml/webbrowser/content/ScrollBar.qml | 107 +++++++++++ .../webbrowser/qml/webbrowser/content/UrlInput.qml | 96 ++++++++++ .../qml/webbrowser/content/pics/display.png | Bin 0 -> 998 bytes .../qml/webbrowser/content/pics/edit-delete.png | Bin 0 -> 831 bytes .../content/pics/go-jump-locationbar.png | Bin 0 -> 408 bytes .../qml/webbrowser/content/pics/go-next-view.png | Bin 0 -> 1310 bytes .../webbrowser/content/pics/go-previous-view.png | Bin 0 -> 1080 bytes .../qml/webbrowser/content/pics/scrollbar.png | Bin 0 -> 161 bytes .../qml/webbrowser/content/pics/titlebar-bg.png | Bin 0 -> 213 bytes .../qml/webbrowser/content/pics/view-refresh.png | Bin 0 -> 2182 bytes .../webbrowser/qml/webbrowser/webbrowser.qml | 79 +++++++++ demos/declarative/webbrowser/webbrowser.desktop | 11 ++ demos/declarative/webbrowser/webbrowser.pro | 37 ++++ demos/declarative/webbrowser/webbrowser.qml | 79 --------- demos/declarative/webbrowser/webbrowser.qmlproject | 6 +- demos/declarative/webbrowser/webbrowser.svg | 93 ++++++++++ demos/declarative/webbrowser/webbrowser64.png | Bin 0 -> 3400 bytes demos/declarative/webbrowser/webbrowser80.png | Bin 0 -> 4945 bytes .../webbrowser/webbrowser_harmattan.desktop | 11 ++ 36 files changed, 901 insertions(+), 695 deletions(-) delete mode 100644 demos/declarative/webbrowser/content/Button.qml delete mode 100644 demos/declarative/webbrowser/content/FlickableWebView.qml delete mode 100644 demos/declarative/webbrowser/content/Header.qml delete mode 100644 demos/declarative/webbrowser/content/ScrollBar.qml delete mode 100644 demos/declarative/webbrowser/content/UrlInput.qml delete mode 100644 demos/declarative/webbrowser/content/pics/display.png delete mode 100644 demos/declarative/webbrowser/content/pics/edit-delete.png delete mode 100644 demos/declarative/webbrowser/content/pics/go-jump-locationbar.png delete mode 100644 demos/declarative/webbrowser/content/pics/go-next-view.png delete mode 100644 demos/declarative/webbrowser/content/pics/go-previous-view.png delete mode 100644 demos/declarative/webbrowser/content/pics/scrollbar.png delete mode 100644 demos/declarative/webbrowser/content/pics/titlebar-bg.png delete mode 100644 demos/declarative/webbrowser/content/pics/view-refresh.png create mode 100644 demos/declarative/webbrowser/main.cpp create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/Button.qml create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/FlickableWebView.qml create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/Header.qml create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/ScrollBar.qml create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/UrlInput.qml create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/pics/display.png create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/pics/edit-delete.png create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/pics/go-jump-locationbar.png create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/pics/go-next-view.png create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/pics/go-previous-view.png create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/pics/scrollbar.png create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/pics/titlebar-bg.png create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/pics/view-refresh.png create mode 100644 demos/declarative/webbrowser/qml/webbrowser/webbrowser.qml create mode 100644 demos/declarative/webbrowser/webbrowser.desktop create mode 100644 demos/declarative/webbrowser/webbrowser.pro delete mode 100644 demos/declarative/webbrowser/webbrowser.qml create mode 100644 demos/declarative/webbrowser/webbrowser.svg create mode 100644 demos/declarative/webbrowser/webbrowser64.png create mode 100644 demos/declarative/webbrowser/webbrowser80.png create mode 100644 demos/declarative/webbrowser/webbrowser_harmattan.desktop diff --git a/demos/declarative/webbrowser/content/Button.qml b/demos/declarative/webbrowser/content/Button.qml deleted file mode 100644 index 93b82ec..0000000 --- a/demos/declarative/webbrowser/content/Button.qml +++ /dev/null @@ -1,65 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 - -Item { - property alias image: icon.source - property variant action - - signal clicked - - width: 40; height: parent.height - - Image { - id: icon; anchors.centerIn: parent - opacity: if (action != undefined) { action.enabled ? 1.0 : 0.4 } else 1 - } - - MouseArea { - anchors { fill: parent; topMargin: -10; bottomMargin: -10 } - onClicked: { - if (action != undefined) - action.trigger() - parent.clicked() - } - } -} diff --git a/demos/declarative/webbrowser/content/FlickableWebView.qml b/demos/declarative/webbrowser/content/FlickableWebView.qml deleted file mode 100644 index 018301a..0000000 --- a/demos/declarative/webbrowser/content/FlickableWebView.qml +++ /dev/null @@ -1,195 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 -import QtWebKit 1.0 - -Flickable { - property alias title: webView.title - property alias icon: webView.icon - property alias progress: webView.progress - property alias url: webView.url - property alias back: webView.back - property alias stop: webView.stop - property alias reload: webView.reload - property alias forward: webView.forward - - id: flickable - width: parent.width - contentWidth: Math.max(parent.width,webView.width) - contentHeight: Math.max(parent.height,webView.height) - anchors.top: headerSpace.bottom - anchors.bottom: parent.top - anchors.left: parent.left - anchors.right: parent.right - pressDelay: 200 - - onWidthChanged : { - // Expand (but not above 1:1) if otherwise would be smaller that available width. - if (width > webView.width*webView.contentsScale && webView.contentsScale < 1.0) - webView.contentsScale = width / webView.width * webView.contentsScale; - } - - WebView { - id: webView - transformOrigin: Item.TopLeft - - function fixUrl(url) - { - if (url == "") return url - if (url[0] == "/") return "file://"+url - if (url.indexOf(":")<0) { - if (url.indexOf(".")<0 || url.indexOf(" ")>=0) { - // Fall back to a search engine; hard-code Wikipedia - return "http://en.wikipedia.org/w/index.php?search="+url - } else { - return "http://"+url - } - } - return url - } - - url: fixUrl(webBrowser.urlString) - smooth: false // We don't want smooth scaling, since we only scale during (fast) transitions - focus: true - - onAlert: console.log(message) - - function doZoom(zoom,centerX,centerY) - { - if (centerX) { - var sc = zoom*contentsScale; - scaleAnim.to = sc; - flickVX.from = flickable.contentX - flickVX.to = Math.max(0,Math.min(centerX-flickable.width/2,webView.width*sc-flickable.width)) - finalX.value = flickVX.to - flickVY.from = flickable.contentY - flickVY.to = Math.max(0,Math.min(centerY-flickable.height/2,webView.height*sc-flickable.height)) - finalY.value = flickVY.to - quickZoom.start() - } - } - - Keys.onLeftPressed: webView.contentsScale -= 0.1 - Keys.onRightPressed: webView.contentsScale += 0.1 - - preferredWidth: flickable.width - preferredHeight: flickable.height - contentsScale: 1 - onContentsSizeChanged: { - // zoom out - contentsScale = Math.min(1,flickable.width / contentsSize.width) - } - onUrlChanged: { - // got to topleft - flickable.contentX = 0 - flickable.contentY = 0 - if (url != null) { header.editUrl = url.toString(); } - } - onDoubleClick: { - if (!heuristicZoom(clickX,clickY,2.5)) { - var zf = flickable.width / contentsSize.width - if (zf >= contentsScale) - zf = 2.0*contentsScale // zoom in (else zooming out) - doZoom(zf,clickX*zf,clickY*zf) - } - } - - SequentialAnimation { - id: quickZoom - - PropertyAction { - target: webView - property: "renderingEnabled" - value: false - } - ParallelAnimation { - NumberAnimation { - id: scaleAnim - target: webView - property: "contentsScale" - // the to property is set before calling - easing.type: Easing.Linear - duration: 200 - } - NumberAnimation { - id: flickVX - target: flickable - property: "contentX" - easing.type: Easing.Linear - duration: 200 - from: 0 // set before calling - to: 0 // set before calling - } - NumberAnimation { - id: flickVY - target: flickable - property: "contentY" - easing.type: Easing.Linear - duration: 200 - from: 0 // set before calling - to: 0 // set before calling - } - } - // Have to set the contentXY, since the above 2 - // size changes may have started a correction if - // contentsScale < 1.0. - PropertyAction { - id: finalX - target: flickable - property: "contentX" - value: 0 // set before calling - } - PropertyAction { - id: finalY - target: flickable - property: "contentY" - value: 0 // set before calling - } - PropertyAction { - target: webView - property: "renderingEnabled" - value: true - } - } - onZoomTo: doZoom(zoom,centerX,centerY) - } -} diff --git a/demos/declarative/webbrowser/content/Header.qml b/demos/declarative/webbrowser/content/Header.qml deleted file mode 100644 index 35ac809..0000000 --- a/demos/declarative/webbrowser/content/Header.qml +++ /dev/null @@ -1,150 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 - -Image { - id: header - - property alias editUrl: urlInput.url - property bool urlChanged: false - - source: "pics/titlebar-bg.png"; fillMode: Image.TileHorizontally - - x: webView.contentX < 0 ? -webView.contentX : webView.contentX > webView.contentWidth-webView.width - ? -webView.contentX+webView.contentWidth-webView.width : 0 - y: { - if (webView.progress < 1.0) - return 0; - else { - webView.contentY < 0 ? -webView.contentY : webView.contentY > height ? -height : -webView.contentY - } - } - Column { - width: parent.width - - Item { - width: parent.width; height: 20 - Text { - anchors.centerIn: parent - text: webView.title; font.pixelSize: 14; font.bold: true - color: "white"; styleColor: "black"; style: Text.Sunken - } - } - - Item { - width: parent.width; height: 40 - - Button { - id: backButton - action: webView.back; image: "pics/go-previous-view.png" - anchors { left: parent.left; bottom: parent.bottom } - } - - Button { - id: nextButton - anchors.left: backButton.right - action: webView.forward; image: "pics/go-next-view.png" - } - - UrlInput { - id: urlInput - anchors { left: nextButton.right; right: reloadButton.left } - image: "pics/display.png" - onUrlEntered: { - webBrowser.urlString = url - webBrowser.focus = true - header.urlChanged = false - } - onUrlChanged: header.urlChanged = true - } - - Button { - id: reloadButton - anchors { right: quitButton.left; rightMargin: 10 } - action: webView.reload; image: "pics/view-refresh.png" - visible: webView.progress == 1.0 && !header.urlChanged - } - Text { - id: quitButton - color: "white" - style: Text.Sunken - anchors.right: parent.right - anchors.top: parent.top - anchors.bottom: parent.bottom - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - font.pixelSize: 18 - width: 60 - text: "Quit" - MouseArea { - anchors.fill: parent - onClicked: Qt.quit() - } - Rectangle { - width: 1 - y: 5 - height: parent.height-10 - anchors.right: parent.left - color: "darkgray" - } - } - - Button { - id: stopButton - anchors { right: quitButton.left; rightMargin: 10 } - action: webView.stop; image: "pics/edit-delete.png" - visible: webView.progress < 1.0 && !header.urlChanged - } - - Button { - id: goButton - anchors { right: parent.right; rightMargin: 4 } - onClicked: { - webBrowser.urlString = urlInput.url - webBrowser.focus = true - header.urlChanged = false - } - image: "pics/go-jump-locationbar.png"; visible: header.urlChanged - } - } - } -} diff --git a/demos/declarative/webbrowser/content/ScrollBar.qml b/demos/declarative/webbrowser/content/ScrollBar.qml deleted file mode 100644 index 3aee68a..0000000 --- a/demos/declarative/webbrowser/content/ScrollBar.qml +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 - -Item { - id: container - - property variant scrollArea - property variant orientation: Qt.Vertical - - opacity: 0 - - function position() - { - var ny = 0; - if (container.orientation == Qt.Vertical) - ny = scrollArea.visibleArea.yPosition * container.height; - else - ny = scrollArea.visibleArea.xPosition * container.width; - if (ny > 2) return ny; else return 2; - } - - function size() - { - var nh, ny; - - if (container.orientation == Qt.Vertical) - nh = scrollArea.visibleArea.heightRatio * container.height; - else - nh = scrollArea.visibleArea.widthRatio * container.width; - - if (container.orientation == Qt.Vertical) - ny = scrollArea.visibleArea.yPosition * container.height; - else - ny = scrollArea.visibleArea.xPosition * container.width; - - if (ny > 3) { - var t; - if (container.orientation == Qt.Vertical) - t = Math.ceil(container.height - 3 - ny); - else - t = Math.ceil(container.width - 3 - ny); - if (nh > t) return t; else return nh; - } else return nh + ny; - } - - Rectangle { anchors.fill: parent; color: "Black"; opacity: 0.5 } - - BorderImage { - source: "pics/scrollbar.png" - border { left: 1; right: 1; top: 1; bottom: 1 } - x: container.orientation == Qt.Vertical ? 2 : position() - width: container.orientation == Qt.Vertical ? container.width - 4 : size() - y: container.orientation == Qt.Vertical ? position() : 2 - height: container.orientation == Qt.Vertical ? size() : container.height - 4 - } - - states: State { - name: "visible" - when: container.orientation == Qt.Vertical ? scrollArea.movingVertically : scrollArea.movingHorizontally - PropertyChanges { target: container; opacity: 1.0 } - } - - transitions: Transition { - from: "visible"; to: "" - NumberAnimation { properties: "opacity"; duration: 600 } - } -} diff --git a/demos/declarative/webbrowser/content/UrlInput.qml b/demos/declarative/webbrowser/content/UrlInput.qml deleted file mode 100644 index 99fb7bd..0000000 --- a/demos/declarative/webbrowser/content/UrlInput.qml +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 - -Item { - id: container - - property alias image: bg.source - property alias url: urlText.text - - signal urlEntered(string url) - signal urlChanged - - width: parent.height; height: parent.height - - BorderImage { - id: bg; rotation: 180 - x: 8; width: parent.width - 16; height: 30; - anchors.verticalCenter: parent.verticalCenter - border { left: 10; top: 10; right: 10; bottom: 10 } - } - - Rectangle { - anchors.bottom: bg.bottom - x: 18; height: 4; color: "#63b1ed" - width: (bg.width - 20) * webView.progress - opacity: webView.progress == 1.0 ? 0.0 : 1.0 - } - - TextInput { - id: urlText - horizontalAlignment: TextEdit.AlignLeft - font.pixelSize: 14; - - onTextChanged: container.urlChanged() - - Keys.onEscapePressed: { - urlText.text = webView.url - webView.focus = true - } - - Keys.onEnterPressed: { - container.urlEntered(urlText.text) - webView.focus = true - } - - Keys.onReturnPressed: { - container.urlEntered(urlText.text) - webView.focus = true - } - - anchors { - left: parent.left; right: parent.right; leftMargin: 18; rightMargin: 18 - verticalCenter: parent.verticalCenter - } - } -} diff --git a/demos/declarative/webbrowser/content/pics/display.png b/demos/declarative/webbrowser/content/pics/display.png deleted file mode 100644 index 9507f43..0000000 Binary files a/demos/declarative/webbrowser/content/pics/display.png and /dev/null differ diff --git a/demos/declarative/webbrowser/content/pics/edit-delete.png b/demos/declarative/webbrowser/content/pics/edit-delete.png deleted file mode 100644 index df2a147..0000000 Binary files a/demos/declarative/webbrowser/content/pics/edit-delete.png and /dev/null differ diff --git a/demos/declarative/webbrowser/content/pics/go-jump-locationbar.png b/demos/declarative/webbrowser/content/pics/go-jump-locationbar.png deleted file mode 100644 index 61f779c..0000000 Binary files a/demos/declarative/webbrowser/content/pics/go-jump-locationbar.png and /dev/null differ diff --git a/demos/declarative/webbrowser/content/pics/go-next-view.png b/demos/declarative/webbrowser/content/pics/go-next-view.png deleted file mode 100644 index a585cab..0000000 Binary files a/demos/declarative/webbrowser/content/pics/go-next-view.png and /dev/null differ diff --git a/demos/declarative/webbrowser/content/pics/go-previous-view.png b/demos/declarative/webbrowser/content/pics/go-previous-view.png deleted file mode 100644 index 612fb34..0000000 Binary files a/demos/declarative/webbrowser/content/pics/go-previous-view.png and /dev/null differ diff --git a/demos/declarative/webbrowser/content/pics/scrollbar.png b/demos/declarative/webbrowser/content/pics/scrollbar.png deleted file mode 100644 index 0228dcf..0000000 Binary files a/demos/declarative/webbrowser/content/pics/scrollbar.png and /dev/null differ diff --git a/demos/declarative/webbrowser/content/pics/titlebar-bg.png b/demos/declarative/webbrowser/content/pics/titlebar-bg.png deleted file mode 100644 index 06961e8..0000000 Binary files a/demos/declarative/webbrowser/content/pics/titlebar-bg.png and /dev/null differ diff --git a/demos/declarative/webbrowser/content/pics/view-refresh.png b/demos/declarative/webbrowser/content/pics/view-refresh.png deleted file mode 100644 index afa2a9d..0000000 Binary files a/demos/declarative/webbrowser/content/pics/view-refresh.png and /dev/null differ diff --git a/demos/declarative/webbrowser/main.cpp b/demos/declarative/webbrowser/main.cpp new file mode 100644 index 0000000..5b98810 --- /dev/null +++ b/demos/declarative/webbrowser/main.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * 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. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "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 THE COPYRIGHT +** OWNER 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." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlapplicationviewer.h" +#include + +Q_DECL_EXPORT int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + QmlApplicationViewer viewer; + viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto); + viewer.setMainQmlFile(QLatin1String("qml/webbrowser/webbrowser.qml")); + viewer.showExpanded(); + + return app.exec(); +} diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/Button.qml b/demos/declarative/webbrowser/qml/webbrowser/content/Button.qml new file mode 100644 index 0000000..93b82ec --- /dev/null +++ b/demos/declarative/webbrowser/qml/webbrowser/content/Button.qml @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + property alias image: icon.source + property variant action + + signal clicked + + width: 40; height: parent.height + + Image { + id: icon; anchors.centerIn: parent + opacity: if (action != undefined) { action.enabled ? 1.0 : 0.4 } else 1 + } + + MouseArea { + anchors { fill: parent; topMargin: -10; bottomMargin: -10 } + onClicked: { + if (action != undefined) + action.trigger() + parent.clicked() + } + } +} diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/FlickableWebView.qml b/demos/declarative/webbrowser/qml/webbrowser/content/FlickableWebView.qml new file mode 100644 index 0000000..018301a --- /dev/null +++ b/demos/declarative/webbrowser/qml/webbrowser/content/FlickableWebView.qml @@ -0,0 +1,195 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.0 +import QtWebKit 1.0 + +Flickable { + property alias title: webView.title + property alias icon: webView.icon + property alias progress: webView.progress + property alias url: webView.url + property alias back: webView.back + property alias stop: webView.stop + property alias reload: webView.reload + property alias forward: webView.forward + + id: flickable + width: parent.width + contentWidth: Math.max(parent.width,webView.width) + contentHeight: Math.max(parent.height,webView.height) + anchors.top: headerSpace.bottom + anchors.bottom: parent.top + anchors.left: parent.left + anchors.right: parent.right + pressDelay: 200 + + onWidthChanged : { + // Expand (but not above 1:1) if otherwise would be smaller that available width. + if (width > webView.width*webView.contentsScale && webView.contentsScale < 1.0) + webView.contentsScale = width / webView.width * webView.contentsScale; + } + + WebView { + id: webView + transformOrigin: Item.TopLeft + + function fixUrl(url) + { + if (url == "") return url + if (url[0] == "/") return "file://"+url + if (url.indexOf(":")<0) { + if (url.indexOf(".")<0 || url.indexOf(" ")>=0) { + // Fall back to a search engine; hard-code Wikipedia + return "http://en.wikipedia.org/w/index.php?search="+url + } else { + return "http://"+url + } + } + return url + } + + url: fixUrl(webBrowser.urlString) + smooth: false // We don't want smooth scaling, since we only scale during (fast) transitions + focus: true + + onAlert: console.log(message) + + function doZoom(zoom,centerX,centerY) + { + if (centerX) { + var sc = zoom*contentsScale; + scaleAnim.to = sc; + flickVX.from = flickable.contentX + flickVX.to = Math.max(0,Math.min(centerX-flickable.width/2,webView.width*sc-flickable.width)) + finalX.value = flickVX.to + flickVY.from = flickable.contentY + flickVY.to = Math.max(0,Math.min(centerY-flickable.height/2,webView.height*sc-flickable.height)) + finalY.value = flickVY.to + quickZoom.start() + } + } + + Keys.onLeftPressed: webView.contentsScale -= 0.1 + Keys.onRightPressed: webView.contentsScale += 0.1 + + preferredWidth: flickable.width + preferredHeight: flickable.height + contentsScale: 1 + onContentsSizeChanged: { + // zoom out + contentsScale = Math.min(1,flickable.width / contentsSize.width) + } + onUrlChanged: { + // got to topleft + flickable.contentX = 0 + flickable.contentY = 0 + if (url != null) { header.editUrl = url.toString(); } + } + onDoubleClick: { + if (!heuristicZoom(clickX,clickY,2.5)) { + var zf = flickable.width / contentsSize.width + if (zf >= contentsScale) + zf = 2.0*contentsScale // zoom in (else zooming out) + doZoom(zf,clickX*zf,clickY*zf) + } + } + + SequentialAnimation { + id: quickZoom + + PropertyAction { + target: webView + property: "renderingEnabled" + value: false + } + ParallelAnimation { + NumberAnimation { + id: scaleAnim + target: webView + property: "contentsScale" + // the to property is set before calling + easing.type: Easing.Linear + duration: 200 + } + NumberAnimation { + id: flickVX + target: flickable + property: "contentX" + easing.type: Easing.Linear + duration: 200 + from: 0 // set before calling + to: 0 // set before calling + } + NumberAnimation { + id: flickVY + target: flickable + property: "contentY" + easing.type: Easing.Linear + duration: 200 + from: 0 // set before calling + to: 0 // set before calling + } + } + // Have to set the contentXY, since the above 2 + // size changes may have started a correction if + // contentsScale < 1.0. + PropertyAction { + id: finalX + target: flickable + property: "contentX" + value: 0 // set before calling + } + PropertyAction { + id: finalY + target: flickable + property: "contentY" + value: 0 // set before calling + } + PropertyAction { + target: webView + property: "renderingEnabled" + value: true + } + } + onZoomTo: doZoom(zoom,centerX,centerY) + } +} diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/Header.qml b/demos/declarative/webbrowser/qml/webbrowser/content/Header.qml new file mode 100644 index 0000000..35ac809 --- /dev/null +++ b/demos/declarative/webbrowser/qml/webbrowser/content/Header.qml @@ -0,0 +1,150 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Image { + id: header + + property alias editUrl: urlInput.url + property bool urlChanged: false + + source: "pics/titlebar-bg.png"; fillMode: Image.TileHorizontally + + x: webView.contentX < 0 ? -webView.contentX : webView.contentX > webView.contentWidth-webView.width + ? -webView.contentX+webView.contentWidth-webView.width : 0 + y: { + if (webView.progress < 1.0) + return 0; + else { + webView.contentY < 0 ? -webView.contentY : webView.contentY > height ? -height : -webView.contentY + } + } + Column { + width: parent.width + + Item { + width: parent.width; height: 20 + Text { + anchors.centerIn: parent + text: webView.title; font.pixelSize: 14; font.bold: true + color: "white"; styleColor: "black"; style: Text.Sunken + } + } + + Item { + width: parent.width; height: 40 + + Button { + id: backButton + action: webView.back; image: "pics/go-previous-view.png" + anchors { left: parent.left; bottom: parent.bottom } + } + + Button { + id: nextButton + anchors.left: backButton.right + action: webView.forward; image: "pics/go-next-view.png" + } + + UrlInput { + id: urlInput + anchors { left: nextButton.right; right: reloadButton.left } + image: "pics/display.png" + onUrlEntered: { + webBrowser.urlString = url + webBrowser.focus = true + header.urlChanged = false + } + onUrlChanged: header.urlChanged = true + } + + Button { + id: reloadButton + anchors { right: quitButton.left; rightMargin: 10 } + action: webView.reload; image: "pics/view-refresh.png" + visible: webView.progress == 1.0 && !header.urlChanged + } + Text { + id: quitButton + color: "white" + style: Text.Sunken + anchors.right: parent.right + anchors.top: parent.top + anchors.bottom: parent.bottom + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + font.pixelSize: 18 + width: 60 + text: "Quit" + MouseArea { + anchors.fill: parent + onClicked: Qt.quit() + } + Rectangle { + width: 1 + y: 5 + height: parent.height-10 + anchors.right: parent.left + color: "darkgray" + } + } + + Button { + id: stopButton + anchors { right: quitButton.left; rightMargin: 10 } + action: webView.stop; image: "pics/edit-delete.png" + visible: webView.progress < 1.0 && !header.urlChanged + } + + Button { + id: goButton + anchors { right: parent.right; rightMargin: 4 } + onClicked: { + webBrowser.urlString = urlInput.url + webBrowser.focus = true + header.urlChanged = false + } + image: "pics/go-jump-locationbar.png"; visible: header.urlChanged + } + } + } +} diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/ScrollBar.qml b/demos/declarative/webbrowser/qml/webbrowser/content/ScrollBar.qml new file mode 100644 index 0000000..3aee68a --- /dev/null +++ b/demos/declarative/webbrowser/qml/webbrowser/content/ScrollBar.qml @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: container + + property variant scrollArea + property variant orientation: Qt.Vertical + + opacity: 0 + + function position() + { + var ny = 0; + if (container.orientation == Qt.Vertical) + ny = scrollArea.visibleArea.yPosition * container.height; + else + ny = scrollArea.visibleArea.xPosition * container.width; + if (ny > 2) return ny; else return 2; + } + + function size() + { + var nh, ny; + + if (container.orientation == Qt.Vertical) + nh = scrollArea.visibleArea.heightRatio * container.height; + else + nh = scrollArea.visibleArea.widthRatio * container.width; + + if (container.orientation == Qt.Vertical) + ny = scrollArea.visibleArea.yPosition * container.height; + else + ny = scrollArea.visibleArea.xPosition * container.width; + + if (ny > 3) { + var t; + if (container.orientation == Qt.Vertical) + t = Math.ceil(container.height - 3 - ny); + else + t = Math.ceil(container.width - 3 - ny); + if (nh > t) return t; else return nh; + } else return nh + ny; + } + + Rectangle { anchors.fill: parent; color: "Black"; opacity: 0.5 } + + BorderImage { + source: "pics/scrollbar.png" + border { left: 1; right: 1; top: 1; bottom: 1 } + x: container.orientation == Qt.Vertical ? 2 : position() + width: container.orientation == Qt.Vertical ? container.width - 4 : size() + y: container.orientation == Qt.Vertical ? position() : 2 + height: container.orientation == Qt.Vertical ? size() : container.height - 4 + } + + states: State { + name: "visible" + when: container.orientation == Qt.Vertical ? scrollArea.movingVertically : scrollArea.movingHorizontally + PropertyChanges { target: container; opacity: 1.0 } + } + + transitions: Transition { + from: "visible"; to: "" + NumberAnimation { properties: "opacity"; duration: 600 } + } +} diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/UrlInput.qml b/demos/declarative/webbrowser/qml/webbrowser/content/UrlInput.qml new file mode 100644 index 0000000..99fb7bd --- /dev/null +++ b/demos/declarative/webbrowser/qml/webbrowser/content/UrlInput.qml @@ -0,0 +1,96 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: container + + property alias image: bg.source + property alias url: urlText.text + + signal urlEntered(string url) + signal urlChanged + + width: parent.height; height: parent.height + + BorderImage { + id: bg; rotation: 180 + x: 8; width: parent.width - 16; height: 30; + anchors.verticalCenter: parent.verticalCenter + border { left: 10; top: 10; right: 10; bottom: 10 } + } + + Rectangle { + anchors.bottom: bg.bottom + x: 18; height: 4; color: "#63b1ed" + width: (bg.width - 20) * webView.progress + opacity: webView.progress == 1.0 ? 0.0 : 1.0 + } + + TextInput { + id: urlText + horizontalAlignment: TextEdit.AlignLeft + font.pixelSize: 14; + + onTextChanged: container.urlChanged() + + Keys.onEscapePressed: { + urlText.text = webView.url + webView.focus = true + } + + Keys.onEnterPressed: { + container.urlEntered(urlText.text) + webView.focus = true + } + + Keys.onReturnPressed: { + container.urlEntered(urlText.text) + webView.focus = true + } + + anchors { + left: parent.left; right: parent.right; leftMargin: 18; rightMargin: 18 + verticalCenter: parent.verticalCenter + } + } +} diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/pics/display.png b/demos/declarative/webbrowser/qml/webbrowser/content/pics/display.png new file mode 100644 index 0000000..9507f43 Binary files /dev/null and b/demos/declarative/webbrowser/qml/webbrowser/content/pics/display.png differ diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/pics/edit-delete.png b/demos/declarative/webbrowser/qml/webbrowser/content/pics/edit-delete.png new file mode 100644 index 0000000..df2a147 Binary files /dev/null and b/demos/declarative/webbrowser/qml/webbrowser/content/pics/edit-delete.png differ diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-jump-locationbar.png b/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-jump-locationbar.png new file mode 100644 index 0000000..61f779c Binary files /dev/null and b/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-jump-locationbar.png differ diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-next-view.png b/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-next-view.png new file mode 100644 index 0000000..a585cab Binary files /dev/null and b/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-next-view.png differ diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-previous-view.png b/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-previous-view.png new file mode 100644 index 0000000..612fb34 Binary files /dev/null and b/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-previous-view.png differ diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/pics/scrollbar.png b/demos/declarative/webbrowser/qml/webbrowser/content/pics/scrollbar.png new file mode 100644 index 0000000..0228dcf Binary files /dev/null and b/demos/declarative/webbrowser/qml/webbrowser/content/pics/scrollbar.png differ diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/pics/titlebar-bg.png b/demos/declarative/webbrowser/qml/webbrowser/content/pics/titlebar-bg.png new file mode 100644 index 0000000..06961e8 Binary files /dev/null and b/demos/declarative/webbrowser/qml/webbrowser/content/pics/titlebar-bg.png differ diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/pics/view-refresh.png b/demos/declarative/webbrowser/qml/webbrowser/content/pics/view-refresh.png new file mode 100644 index 0000000..afa2a9d Binary files /dev/null and b/demos/declarative/webbrowser/qml/webbrowser/content/pics/view-refresh.png differ diff --git a/demos/declarative/webbrowser/qml/webbrowser/webbrowser.qml b/demos/declarative/webbrowser/qml/webbrowser/webbrowser.qml new file mode 100644 index 0000000..2408851 --- /dev/null +++ b/demos/declarative/webbrowser/qml/webbrowser/webbrowser.qml @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.0 +import QtWebKit 1.0 + +import "content" + +Rectangle { + id: webBrowser + + property string urlString : "http://www.nokia.com/" + + width: 800; height: 600 + color: "#343434" + + FlickableWebView { + id: webView + url: webBrowser.urlString + onProgressChanged: header.urlChanged = false + anchors { top: headerSpace.bottom; left: parent.left; right: parent.right; bottom: parent.bottom } + } + + Item { id: headerSpace; width: parent.width; height: 62 } + + Header { + id: header + editUrl: webBrowser.urlString + width: headerSpace.width; height: headerSpace.height + } + + ScrollBar { + scrollArea: webView; width: 8 + anchors { right: parent.right; top: header.bottom; bottom: parent.bottom } + } + + ScrollBar { + scrollArea: webView; height: 8; orientation: Qt.Horizontal + anchors { right: parent.right; rightMargin: 8; left: parent.left; bottom: parent.bottom } + } +} diff --git a/demos/declarative/webbrowser/webbrowser.desktop b/demos/declarative/webbrowser/webbrowser.desktop new file mode 100644 index 0000000..1a7e4f2 --- /dev/null +++ b/demos/declarative/webbrowser/webbrowser.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=webbrowser +Exec=/opt/webbrowser/bin/webbrowser +Icon=webbrowser64 +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/declarative/webbrowser/webbrowser.pro b/demos/declarative/webbrowser/webbrowser.pro new file mode 100644 index 0000000..2a7bdbd --- /dev/null +++ b/demos/declarative/webbrowser/webbrowser.pro @@ -0,0 +1,37 @@ +# Add more folders to ship with the application, here +folder_01.source = qml/webbrowser +folder_01.target = qml +DEPLOYMENTFOLDERS = folder_01 + +# Additional import path used to resolve QML modules in Creator's code model +QML_IMPORT_PATH = + +symbian:TARGET.UID3 = 0xE8ECBC65 + +# Smart Installer package's UID +# This UID is from the protected range and therefore the package will +# fail to install if self-signed. By default qmake uses the unprotected +# range value if unprotected UID is defined for the application and +# 0x2002CCCF value if protected UID is given to the application +#symbian:DEPLOYMENT.installer_header = 0x2002CCCF + +# Allow network access on Symbian +symbian:TARGET.CAPABILITY += NetworkServices + +# If your application uses the Qt Mobility libraries, uncomment the following +# lines and add the respective components to the MOBILITY variable. +# CONFIG += mobility +# MOBILITY += + +# Speed up launching on MeeGo/Harmattan when using applauncherd daemon +# CONFIG += qdeclarative-boostable + +# Add dependency to Symbian components +# CONFIG += qt-components + +# The .cpp file which was generated for your project. Feel free to hack it. +SOURCES += main.cpp + +# Please do not modify the following two lines. Required for deployment. +include(../../../examples/tools/qmlapplicationviewer/qmlapplicationviewer.pri) +qtcAddDeployment() diff --git a/demos/declarative/webbrowser/webbrowser.qml b/demos/declarative/webbrowser/webbrowser.qml deleted file mode 100644 index 2408851..0000000 --- a/demos/declarative/webbrowser/webbrowser.qml +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 1.0 -import QtWebKit 1.0 - -import "content" - -Rectangle { - id: webBrowser - - property string urlString : "http://www.nokia.com/" - - width: 800; height: 600 - color: "#343434" - - FlickableWebView { - id: webView - url: webBrowser.urlString - onProgressChanged: header.urlChanged = false - anchors { top: headerSpace.bottom; left: parent.left; right: parent.right; bottom: parent.bottom } - } - - Item { id: headerSpace; width: parent.width; height: 62 } - - Header { - id: header - editUrl: webBrowser.urlString - width: headerSpace.width; height: headerSpace.height - } - - ScrollBar { - scrollArea: webView; width: 8 - anchors { right: parent.right; top: header.bottom; bottom: parent.bottom } - } - - ScrollBar { - scrollArea: webView; height: 8; orientation: Qt.Horizontal - anchors { right: parent.right; rightMargin: 8; left: parent.left; bottom: parent.bottom } - } -} diff --git a/demos/declarative/webbrowser/webbrowser.qmlproject b/demos/declarative/webbrowser/webbrowser.qmlproject index d4909f8..a05672d 100644 --- a/demos/declarative/webbrowser/webbrowser.qmlproject +++ b/demos/declarative/webbrowser/webbrowser.qmlproject @@ -3,13 +3,13 @@ import QmlProject 1.0 Project { /* Include .qml, .js, and image files from current directory and subdirectories */ QmlFiles { - directory: "." + directory: "qml/webbrowser" } JavaScriptFiles { - directory: "." + directory: "qml/webbrowser" } ImageFiles { - directory: "." + directory: "qml/webbrowser" } /* List of plugin directories passed to QML runtime */ // importPaths: [ " ../exampleplugin " ] diff --git a/demos/declarative/webbrowser/webbrowser.svg b/demos/declarative/webbrowser/webbrowser.svg new file mode 100644 index 0000000..566acfa --- /dev/null +++ b/demos/declarative/webbrowser/webbrowser.svg @@ -0,0 +1,93 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/webbrowser/webbrowser64.png b/demos/declarative/webbrowser/webbrowser64.png new file mode 100644 index 0000000..707d5c4 Binary files /dev/null and b/demos/declarative/webbrowser/webbrowser64.png differ diff --git a/demos/declarative/webbrowser/webbrowser80.png b/demos/declarative/webbrowser/webbrowser80.png new file mode 100644 index 0000000..6ad8096 Binary files /dev/null and b/demos/declarative/webbrowser/webbrowser80.png differ diff --git a/demos/declarative/webbrowser/webbrowser_harmattan.desktop b/demos/declarative/webbrowser/webbrowser_harmattan.desktop new file mode 100644 index 0000000..455d714 --- /dev/null +++ b/demos/declarative/webbrowser/webbrowser_harmattan.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=webbrowser +Exec=/usr/bin/single-instance /opt/webbrowser/bin/webbrowser +Icon=/usr/share/icons/hicolor/80x80/apps/webbrowser80.png +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable -- cgit v0.12