diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2017-06-08 11:00:41 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-06-08 11:48:54 +0200 |
commit | 8a5837467d153c50c869625390a584b0335b77b7 (patch) | |
tree | d8aca950cb88dfdc3a001a5cdedf02d7a8894d36 /examples | |
parent | 5af4c9b237a23ce12ca7c56eb6c9ecda17743228 (diff) | |
parent | 55490690f81eba168b06a90e4a66cefc20b38252 (diff) |
Merge remote-tracking branch 'origin/dev' into wip/scenegraphng
Conflicts:
src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenode.cpp
Change-Id: Id8107cb0de0fbfe7120a90a137b49c2b915ff2d3
Diffstat (limited to 'examples')
-rw-r--r-- | examples/qml/xmlhttprequest/Get.qml | 54 | ||||
-rw-r--r-- | examples/qml/xmlhttprequest/GetForm.ui.qml (renamed from examples/qml/xmlhttprequest/get.qml) | 54 | ||||
-rw-r--r-- | examples/qml/xmlhttprequest/methods.js | 71 | ||||
-rw-r--r-- | examples/qml/xmlhttprequest/xmlhttprequest.pro | 5 | ||||
-rw-r--r-- | examples/qml/xmlhttprequest/xmlhttprequest.qml | 2 | ||||
-rw-r--r-- | examples/qml/xmlhttprequest/xmlhttprequest.qrc | 4 | ||||
-rw-r--r-- | examples/quick/demos/samegame/samegame.pro | 2 | ||||
-rw-r--r-- | examples/quick/shared/LauncherList.qml | 160 | ||||
-rw-r--r-- | examples/quick/shared/SimpleLauncherDelegate.qml | 4 |
9 files changed, 278 insertions, 78 deletions
diff --git a/examples/qml/xmlhttprequest/Get.qml b/examples/qml/xmlhttprequest/Get.qml new file mode 100644 index 0000000000..eb95b3dc93 --- /dev/null +++ b/examples/qml/xmlhttprequest/Get.qml @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** 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 The Qt Company Ltd 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$ +** +****************************************************************************/ + +import QtQuick 2.0 + +import "methods.js" as Utils + +GetForm +{ + anchors.fill: parent + + mouseArea.onClicked: Utils.makeRequest() + + button.border.width: button.pressed ? 2 : 1 + text.text: "Request data.xml" + +} diff --git a/examples/qml/xmlhttprequest/get.qml b/examples/qml/xmlhttprequest/GetForm.ui.qml index d8cde5aa15..4578601fab 100644 --- a/examples/qml/xmlhttprequest/get.qml +++ b/examples/qml/xmlhttprequest/GetForm.ui.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2015 The Qt Company Ltd. +** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Toolkit. @@ -40,55 +40,33 @@ import QtQuick 2.0 + Rectangle { - width: 350; height: 400 + id:rect + width: 350 + height: 400 - function showRequestInfo(text) { - log.text = log.text + "\n" + text - console.log(text) - } + property alias button: button + property alias text: buttonText + property alias mouseArea: mouseArea + property alias msg: ttext - Text { id: log; anchors.fill: parent; anchors.margins: 10 } + Text { id: ttext; anchors.fill: parent; anchors.margins: 10 } Rectangle { id: button - anchors.horizontalCenter: parent.horizontalCenter; anchors.bottom: parent.bottom; anchors.margins: 10 - width: buttonText.width + 10; height: buttonText.height + 10 - border.width: mouseArea.pressed ? 2 : 1 + anchors.horizontalCenter: parent.horizontalCenter; + anchors.bottom: parent.bottom + anchors.margins: 10 + width: buttonText.width + 10 + height: buttonText.height + 10 radius : 5; antialiasing: true - Text { id: buttonText; anchors.centerIn: parent; text: "Request data.xml" } + Text { id: buttonText; anchors.centerIn: parent } MouseArea { id: mouseArea anchors.fill: parent - onClicked: { - log.text = "" - console.log("\n") - - var doc = new XMLHttpRequest(); - doc.onreadystatechange = function() { - if (doc.readyState == XMLHttpRequest.HEADERS_RECEIVED) { - showRequestInfo("Headers -->"); - showRequestInfo(doc.getAllResponseHeaders ()); - showRequestInfo("Last modified -->"); - showRequestInfo(doc.getResponseHeader ("Last-Modified")); - - } else if (doc.readyState == XMLHttpRequest.DONE) { - var a = doc.responseXML.documentElement; - for (var ii = 0; ii < a.childNodes.length; ++ii) { - showRequestInfo(a.childNodes[ii].nodeName); - } - showRequestInfo("Headers -->"); - showRequestInfo(doc.getAllResponseHeaders ()); - showRequestInfo("Last modified -->"); - showRequestInfo(doc.getResponseHeader ("Last-Modified")); - } - } - - doc.open("GET", "data.xml"); - doc.send(); - } } } } diff --git a/examples/qml/xmlhttprequest/methods.js b/examples/qml/xmlhttprequest/methods.js new file mode 100644 index 0000000000..a286846f50 --- /dev/null +++ b/examples/qml/xmlhttprequest/methods.js @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** 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 The Qt Company Ltd 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$ +** +****************************************************************************/ + +function showRequestInfo(text) { + msg.text = msg.text + "\n" + text +} + +function makeRequest() +{ + + var doc = new XMLHttpRequest(); + msg.text = ""; + doc.onreadystatechange = function() { + if (doc.readyState == XMLHttpRequest.HEADERS_RECEIVED) { + showRequestInfo("Headers -->"); + showRequestInfo(doc.getAllResponseHeaders ()); + showRequestInfo("Last modified -->"); + showRequestInfo(doc.getResponseHeader ("Last-Modified")); + + } else if (doc.readyState == XMLHttpRequest.DONE) { + var a = doc.responseXML.documentElement; + for (var ii = 0; ii < a.childNodes.length; ++ii) { + showRequestInfo(a.childNodes[ii].nodeName); + } + showRequestInfo("Headers -->"); + showRequestInfo(doc.getAllResponseHeaders ()); + showRequestInfo("Last modified -->"); + showRequestInfo(doc.getResponseHeader ("Last-Modified")); + } + } + + doc.open("GET", "data.xml"); + doc.send(); +} diff --git a/examples/qml/xmlhttprequest/xmlhttprequest.pro b/examples/qml/xmlhttprequest/xmlhttprequest.pro index 3e20d3781c..3b78db0252 100644 --- a/examples/qml/xmlhttprequest/xmlhttprequest.pro +++ b/examples/qml/xmlhttprequest/xmlhttprequest.pro @@ -11,3 +11,8 @@ EXAMPLE_FILES = \ target.path = $$[QT_INSTALL_EXAMPLES]/qml/xmlhttprequest INSTALLS += target + +DISTFILES += \ + Get.qml \ + GetForm.ui.qml \ + methods.js diff --git a/examples/qml/xmlhttprequest/xmlhttprequest.qml b/examples/qml/xmlhttprequest/xmlhttprequest.qml index f38316d054..a071efd729 100644 --- a/examples/qml/xmlhttprequest/xmlhttprequest.qml +++ b/examples/qml/xmlhttprequest/xmlhttprequest.qml @@ -48,7 +48,7 @@ Item { id: ll anchors.fill: parent Component.onCompleted: { - addExample("Get data", "Send get request and show received header and body", Qt.resolvedUrl("get.qml")); + addExample("Get data", "Send get request and show received header and body", Qt.resolvedUrl("Get.qml")); } } } diff --git a/examples/qml/xmlhttprequest/xmlhttprequest.qrc b/examples/qml/xmlhttprequest/xmlhttprequest.qrc index 532e508a90..2e5dae4bb8 100644 --- a/examples/qml/xmlhttprequest/xmlhttprequest.qrc +++ b/examples/qml/xmlhttprequest/xmlhttprequest.qrc @@ -1,7 +1,9 @@ <RCC> <qresource prefix="/qml/xmlhttprequest"> <file>xmlhttprequest.qml</file> - <file>get.qml</file> <file>data.xml</file> + <file>methods.js</file> + <file>Get.qml</file> + <file>GetForm.ui.qml</file> </qresource> </RCC> diff --git a/examples/quick/demos/samegame/samegame.pro b/examples/quick/demos/samegame/samegame.pro index 0f01654d46..7b680490ad 100644 --- a/examples/quick/demos/samegame/samegame.pro +++ b/examples/quick/demos/samegame/samegame.pro @@ -6,5 +6,3 @@ RESOURCES += samegame.qrc target.path = $$[QT_INSTALL_EXAMPLES]/quick/demos/samegame INSTALLS += target - -!qtConfig(sql-sqlite): QTPLUGIN += qsqlite diff --git a/examples/quick/shared/LauncherList.qml b/examples/quick/shared/LauncherList.qml index 6878cf01f2..ba9ee6c5d2 100644 --- a/examples/quick/shared/LauncherList.qml +++ b/examples/quick/shared/LauncherList.qml @@ -1,5 +1,6 @@ /**************************************************************************** ** +** Copyright (C) 2017 Crimson AS <info@crimson.no> ** Copyright (C) 2015 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** @@ -40,6 +41,8 @@ import QtQuick 2.0 Rectangle { + property int activePageCount: 0 + //model is a list of {"name":"somename", "url":"file:///some/url/mainfile.qml"} //function used to add to model A) to enforce scheme B) to allow Qt.resolveUrl in url assignments @@ -48,48 +51,138 @@ Rectangle { { myModel.append({"name":name, "description":desc, "url":url}) } - function hideExample() - { - ei.visible = false; - } - ListView { - clip: true - delegate: SimpleLauncherDelegate{exampleItem: ei} - model: ListModel {id:myModel} + // The container rectangle here is used to give a nice "feel" when + // transitioning into an example. + Rectangle { anchors.fill: parent + color: "black" + + ListView { + id: launcherList + clip: true + delegate: SimpleLauncherDelegate{ + onClicked: { + var page = pageComponent.createObject(pageContainer, { exampleUrl: url }) + page.show() + } + } + model: ListModel {id:myModel} + anchors.fill: parent + enabled: opacity == 1.0 + } } Item { - id: ei - visible: false - clip: true - property url exampleUrl - onExampleUrlChanged: visible = (exampleUrl == '' ? false : true); //Setting exampleUrl automatically shows example + id: pageContainer anchors.fill: parent - anchors.bottomMargin: 40 + } + + Component { + id: pageComponent Rectangle { - id: bg - anchors.fill: parent + id: page + clip: true + property url exampleUrl + width: parent.width + height: parent.height - bar.height color: "white" - } - MouseArea{ - anchors.fill: parent - enabled: ei.visible - //Eats mouse events - } - Loader{ - focus: true - source: ei.exampleUrl - anchors.fill: parent + MouseArea{ + //Eats mouse events + anchors.fill: parent + } + Loader{ + focus: true + source: parent.exampleUrl + anchors.fill: parent + } + + x: -width + + function show() { + showAnim.start() + } + + function exit() { + exitAnim.start() + } + + ParallelAnimation { + id: showAnim + ScriptAction { + script: activePageCount++ + } + NumberAnimation { + target: launcherList + property: "opacity" + from: 1.0 + to: 0.0 + duration: 500 + } + NumberAnimation { + target: launcherList + property: "scale" + from: 1.0 + to: 0.0 + duration: 500 + } + NumberAnimation { + target: page + property: "x" + from: -page.width + to: 0 + duration: 300 + } + } + SequentialAnimation { + id: exitAnim + + ScriptAction { + script: activePageCount-- + } + + ParallelAnimation { + NumberAnimation { + target: launcherList + property: "opacity" + from: 0.0 + to: 1.0 + duration: 300 + } + NumberAnimation { + target: launcherList + property: "scale" + from: 0.0 + to: 1.0 + duration: 300 + } + NumberAnimation { + target: page + property: "x" + from: 0 + to: -page.width + duration: 300 + } + } + + ScriptAction { + script: page.destroy() + } + } } } Rectangle { id: bar - visible: ei.visible + visible: height > 0 anchors.bottom: parent.bottom width: parent.width - height: 40 + height: activePageCount > 0 ? 40 : 0 + + Behavior on height { + NumberAnimation { + duration: 300 + } + } Rectangle { height: 1 @@ -113,12 +206,6 @@ Rectangle { GradientStop { position: 1 ; color: "#ccc" } } - MouseArea{ - anchors.fill: parent - enabled: ei.visible - //Eats mouse events - } - Image { id: back source: "images/back.png" @@ -134,7 +221,10 @@ Rectangle { width: 38 height: 31 anchors.verticalCenterOffset: -1 - onClicked: ei.exampleUrl = "" + enabled: activePageCount > 0 + onClicked: { + pageContainer.children[pageContainer.children.length - 1].exit() + } Rectangle { anchors.fill: parent opacity: mouse.pressed ? 1 : 0 diff --git a/examples/quick/shared/SimpleLauncherDelegate.qml b/examples/quick/shared/SimpleLauncherDelegate.qml index 885afdb502..a9f7cb9f83 100644 --- a/examples/quick/shared/SimpleLauncherDelegate.qml +++ b/examples/quick/shared/SimpleLauncherDelegate.qml @@ -45,6 +45,8 @@ Rectangle { width: ListView.view.width height: button.implicitHeight + 22 + signal clicked() + gradient: Gradient { GradientStop { position: 0 @@ -81,7 +83,7 @@ Rectangle { MouseArea { id: mouseArea anchors.fill: parent - onClicked: exampleItem.exampleUrl = url + onClicked: container.clicked() hoverEnabled: true } |