From fa3c840ef1ff2100ccca6866528ac1f008c8e3a7 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Sat, 16 Jun 2018 10:32:34 +0200 Subject: Move demos to qtdoc repository These demos use several modules and moving them allows to use for example Qt Quick Controls 2 in them. Change-Id: I1f352671dec672665e9fdb6a9c2a7c6e25a002b0 Reviewed-by: Paul Wicking Reviewed-by: Venugopal Shivashankar Reviewed-by: Nico Vertriest Reviewed-by: Frederik Gladhorn --- examples/quick/demos/calqlatr/calqlatr.pro | 19 -- examples/quick/demos/calqlatr/calqlatr.qml | 173 ------------------ examples/quick/demos/calqlatr/calqlatr.qmlproject | 16 -- examples/quick/demos/calqlatr/calqlatr.qrc | 12 -- examples/quick/demos/calqlatr/content/Button.qml | 104 ----------- examples/quick/demos/calqlatr/content/Display.qml | 203 --------------------- .../quick/demos/calqlatr/content/NumberPad.qml | 81 -------- .../quick/demos/calqlatr/content/calculator.js | 161 ---------------- .../calqlatr/content/images/paper-edge-left.png | Bin 12401 -> 0 bytes .../calqlatr/content/images/paper-edge-right.png | Bin 12967 -> 0 bytes .../demos/calqlatr/content/images/paper-grip.png | Bin 298 -> 0 bytes .../calqlatr/doc/images/qtquick-demo-calqlatr.png | Bin 37120 -> 0 bytes .../quick/demos/calqlatr/doc/src/calqlatr.qdoc | 195 -------------------- examples/quick/demos/calqlatr/main.cpp | 51 ------ 14 files changed, 1015 deletions(-) delete mode 100644 examples/quick/demos/calqlatr/calqlatr.pro delete mode 100644 examples/quick/demos/calqlatr/calqlatr.qml delete mode 100644 examples/quick/demos/calqlatr/calqlatr.qmlproject delete mode 100644 examples/quick/demos/calqlatr/calqlatr.qrc delete mode 100644 examples/quick/demos/calqlatr/content/Button.qml delete mode 100644 examples/quick/demos/calqlatr/content/Display.qml delete mode 100644 examples/quick/demos/calqlatr/content/NumberPad.qml delete mode 100644 examples/quick/demos/calqlatr/content/calculator.js delete mode 100644 examples/quick/demos/calqlatr/content/images/paper-edge-left.png delete mode 100644 examples/quick/demos/calqlatr/content/images/paper-edge-right.png delete mode 100644 examples/quick/demos/calqlatr/content/images/paper-grip.png delete mode 100644 examples/quick/demos/calqlatr/doc/images/qtquick-demo-calqlatr.png delete mode 100644 examples/quick/demos/calqlatr/doc/src/calqlatr.qdoc delete mode 100644 examples/quick/demos/calqlatr/main.cpp (limited to 'examples/quick/demos/calqlatr') diff --git a/examples/quick/demos/calqlatr/calqlatr.pro b/examples/quick/demos/calqlatr/calqlatr.pro deleted file mode 100644 index 20543c08da..0000000000 --- a/examples/quick/demos/calqlatr/calqlatr.pro +++ /dev/null @@ -1,19 +0,0 @@ -TEMPLATE = app - -QT += qml quick -SOURCES += main.cpp - -RESOURCES += calqlatr.qrc \ - ../../shared/shared.qrc - -OTHER_FILES = calqlatr.qml \ - content/Button.qml \ - content/Display.qml \ - content/NumberPad.qml \ - content/calculator.js \ - content/images/paper-edge-left.png \ - content/images/paper-edge-right.png \ - content/images/paper-grip.png - -target.path = $$[QT_INSTALL_EXAMPLES]/quick/demos/calqlatr -INSTALLS += target diff --git a/examples/quick/demos/calqlatr/calqlatr.qml b/examples/quick/demos/calqlatr/calqlatr.qml deleted file mode 100644 index 769513b7bd..0000000000 --- a/examples/quick/demos/calqlatr/calqlatr.qml +++ /dev/null @@ -1,173 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, 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 "content" -import "content/calculator.js" as CalcEngine - - -Rectangle { - id: window - width: 320 - height: 480 - focus: true - color: "#272822" - - onWidthChanged: controller.reload() - onHeightChanged: controller.reload() - - function operatorPressed(operator) { - CalcEngine.operatorPressed(operator) - numPad.buttonPressed() - } - function digitPressed(digit) { - CalcEngine.digitPressed(digit) - numPad.buttonPressed() - } - function isButtonDisabled(op) { - return CalcEngine.disabled(op) - } - - Item { - id: pad - width: 180 - NumberPad { id: numPad; y: 10; anchors.horizontalCenter: parent.horizontalCenter } - } - - AnimationController { - id: controller - animation: ParallelAnimation { - id: anim - NumberAnimation { target: display; property: "x"; duration: 400; from: -16; to: window.width - display.width; easing.type: Easing.InOutQuad } - NumberAnimation { target: pad; property: "x"; duration: 400; from: window.width - pad.width; to: 0; easing.type: Easing.InOutQuad } - SequentialAnimation { - NumberAnimation { target: pad; property: "scale"; duration: 200; from: 1; to: 0.97; easing.type: Easing.InOutQuad } - NumberAnimation { target: pad; property: "scale"; duration: 200; from: 0.97; to: 1; easing.type: Easing.InOutQuad } - } - } - } - - Keys.onPressed: { - if (event.key == Qt.Key_0) - digitPressed("0") - else if (event.key == Qt.Key_1) - digitPressed("1") - else if (event.key == Qt.Key_2) - digitPressed("2") - else if (event.key == Qt.Key_3) - digitPressed("3") - else if (event.key == Qt.Key_4) - digitPressed("4") - else if (event.key == Qt.Key_5) - digitPressed("5") - else if (event.key == Qt.Key_6) - digitPressed("6") - else if (event.key == Qt.Key_7) - digitPressed("7") - else if (event.key == Qt.Key_8) - digitPressed("8") - else if (event.key == Qt.Key_9) - digitPressed("9") - else if (event.key == Qt.Key_Plus) - operatorPressed("+") - else if (event.key == Qt.Key_Minus) - operatorPressed("−") - else if (event.key == Qt.Key_Asterisk) - operatorPressed("×") - else if (event.key == Qt.Key_Slash) - operatorPressed("÷") - else if (event.key == Qt.Key_Enter || event.key == Qt.Key_Return) - operatorPressed("=") - else if (event.key == Qt.Key_Comma || event.key == Qt.Key_Period) - digitPressed(".") - else if (event.key == Qt.Key_Backspace) - operatorPressed("backspace") - } - - Display { - id: display - x: -16 - width: window.width - pad.width - height: parent.height - - MouseArea { - id: mouseInput - property real startX: 0 - property real oldP: 0 - property bool rewind: false - - anchors { - bottom: parent.bottom - left: parent.left - right: parent.right - } - height: 50 - onPositionChanged: { - var reverse = startX > window.width / 2 - var mx = mapToItem(window, mouseInput.mouseX, mouseInput.mouseY).x - var p = Math.abs((mx - startX) / (window.width - display.width)) - if (p < oldP) - rewind = reverse ? false : true - else - rewind = reverse ? true : false - controller.progress = reverse ? 1 - p : p - oldP = p - } - onPressed: startX = mapToItem(window, mouseInput.mouseX, mouseInput.mouseY).x - onReleased: { - if (rewind) - controller.completeToBeginning() - else - controller.completeToEnd() - } - } - } - -} diff --git a/examples/quick/demos/calqlatr/calqlatr.qmlproject b/examples/quick/demos/calqlatr/calqlatr.qmlproject deleted file mode 100644 index ce2d59d310..0000000000 --- a/examples/quick/demos/calqlatr/calqlatr.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.1 - -Project { - mainFile: "calqlatr.qml" - - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } -} diff --git a/examples/quick/demos/calqlatr/calqlatr.qrc b/examples/quick/demos/calqlatr/calqlatr.qrc deleted file mode 100644 index 7483304e02..0000000000 --- a/examples/quick/demos/calqlatr/calqlatr.qrc +++ /dev/null @@ -1,12 +0,0 @@ - - - calqlatr.qml - content/Button.qml - content/calculator.js - content/Display.qml - content/NumberPad.qml - content/images/paper-edge-left.png - content/images/paper-edge-right.png - content/images/paper-grip.png - - diff --git a/examples/quick/demos/calqlatr/content/Button.qml b/examples/quick/demos/calqlatr/content/Button.qml deleted file mode 100644 index 5279596ef1..0000000000 --- a/examples/quick/demos/calqlatr/content/Button.qml +++ /dev/null @@ -1,104 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, 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 - -Item { - id: button - property alias text: textItem.text - property color color: "#eceeea" - - property bool operator: false - property bool dimmable: false - property bool dimmed: false - - width: 30 - height: 50 - - Text { - id: textItem - font.pixelSize: 48 - wrapMode: Text.WordWrap - lineHeight: 0.75 - color: (dimmable && dimmed) ? Qt.darker(button.color) : button.color - Behavior on color { ColorAnimation { duration: 120; easing.type: Easing.OutElastic} } - states: [ - State { - name: "pressed" - when: mouse.pressed && !dimmed - PropertyChanges { - target: textItem - color: Qt.lighter(button.color) - } - } - ] - } - - MouseArea { - id: mouse - anchors.fill: parent - anchors.margins: -5 - onClicked: { - if (operator) - window.operatorPressed(parent.text) - else - window.digitPressed(parent.text) - } - } - - function updateDimmed() { - dimmed = window.isButtonDisabled(button.text) - } - - Component.onCompleted: { - numPad.buttonPressed.connect(updateDimmed) - updateDimmed() - } -} diff --git a/examples/quick/demos/calqlatr/content/Display.qml b/examples/quick/demos/calqlatr/content/Display.qml deleted file mode 100644 index 9ddd64d251..0000000000 --- a/examples/quick/demos/calqlatr/content/Display.qml +++ /dev/null @@ -1,203 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, 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 QtQuick.Window 2.0 - -Item { - id: display - property real fontSize: Math.floor(Screen.pixelDensity * 5.0) - property bool enteringDigits: false - property int maxDigits: (width / fontSize) + 1 - property string displayedOperand - property string errorString: qsTr("ERROR") - property bool isError: displayedOperand === errorString - - function displayOperator(operator) - { - listView.model.append({ "operator": operator, "operand": "" }) - enteringDigits = true - listView.positionViewAtEnd() - } - - function newLine(operator, operand) - { - displayedOperand = displayNumber(operand) - listView.model.append({ "operator": operator, "operand": displayedOperand }) - enteringDigits = false - listView.positionViewAtEnd() - } - - function appendDigit(digit) - { - if (!enteringDigits) - listView.model.append({ "operator": "", "operand": "" }) - var i = listView.model.count - 1; - listView.model.get(i).operand = listView.model.get(i).operand + digit; - enteringDigits = true - listView.positionViewAtEnd() - } - - function setDigit(digit) - { - var i = listView.model.count - 1; - listView.model.get(i).operand = digit; - listView.positionViewAtEnd() - } - - function clear() - { - displayedOperand = "" - if (enteringDigits) { - var i = listView.model.count - 1 - if (i >= 0) - listView.model.remove(i) - enteringDigits = false - } - } - - // Returns a string representation of a number that fits in - // display.maxDigits characters, trying to keep as much precision - // as possible. If the number cannot be displayed, returns an - // error string. - function displayNumber(num) { - if (typeof(num) != "number") - return errorString; - - var intNum = parseInt(num); - var intLen = intNum.toString().length; - - // Do not count the minus sign as a digit - var maxLen = num < 0 ? maxDigits + 1 : maxDigits; - - if (num.toString().length <= maxLen) { - if (isFinite(num)) - return num.toString(); - return errorString; - } - - // Integer part of the number is too long - try - // an exponential notation - if (intNum == num || intLen > maxLen - 3) { - var expVal = num.toExponential(maxDigits - 6).toString(); - if (expVal.length <= maxLen) - return expVal; - } - - // Try a float presentation with fixed number of digits - var floatStr = parseFloat(num).toFixed(maxDigits - intLen - 1).toString(); - if (floatStr.length <= maxLen) - return floatStr; - - return errorString; - } - - Item { - id: theItem - width: parent.width + 32 - height: parent.height - - Rectangle { - id: rect - x: 16 - color: "white" - height: parent.height - width: display.width - 16 - } - Image { - anchors.right: rect.left - source: "images/paper-edge-left.png" - height: parent.height - fillMode: Image.TileVertically - } - Image { - anchors.left: rect.right - source: "images/paper-edge-right.png" - height: parent.height - fillMode: Image.TileVertically - } - - Image { - id: grip - source: "images/paper-grip.png" - anchors.horizontalCenter: parent.horizontalCenter - anchors.bottom: parent.bottom - anchors.bottomMargin: 20 - } - - ListView { - id: listView - x: 16; y: 30 - width: display.width - height: display.height - 50 - y - delegate: Item { - height: display.fontSize * 1.1 - width: parent.width - Text { - id: operator - x: 6 - font.pixelSize: display.fontSize - color: "#6da43d" - text: model.operator - } - Text { - id: operand - font.pixelSize: display.fontSize - anchors.right: parent.right - anchors.rightMargin: 22 - text: model.operand - } - } - model: ListModel { } - } - - } - -} diff --git a/examples/quick/demos/calqlatr/content/NumberPad.qml b/examples/quick/demos/calqlatr/content/NumberPad.qml deleted file mode 100644 index 9936116fa1..0000000000 --- a/examples/quick/demos/calqlatr/content/NumberPad.qml +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, 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 - -Grid { - columns: 3 - columnSpacing: 32 - rowSpacing: 16 - - signal buttonPressed - - Button { text: "7" } - Button { text: "8" } - Button { text: "9" } - Button { text: "4" } - Button { text: "5" } - Button { text: "6" } - Button { text: "1" } - Button { text: "2" } - Button { text: "3" } - Button { text: "0" } - Button { text: "."; dimmable: true } - Button { text: " " } - Button { text: "±"; color: "#6da43d"; operator: true; dimmable: true } - Button { text: "−"; color: "#6da43d"; operator: true; dimmable: true } - Button { text: "+"; color: "#6da43d"; operator: true; dimmable: true } - Button { text: "√"; color: "#6da43d"; operator: true; dimmable: true } - Button { text: "÷"; color: "#6da43d"; operator: true; dimmable: true } - Button { text: "×"; color: "#6da43d"; operator: true; dimmable: true } - Button { text: "C"; color: "#6da43d"; operator: true } - Button { text: " "; color: "#6da43d"; operator: true } - Button { text: "="; color: "#6da43d"; operator: true; dimmable: true } -} diff --git a/examples/quick/demos/calqlatr/content/calculator.js b/examples/quick/demos/calqlatr/content/calculator.js deleted file mode 100644 index 37eb752191..0000000000 --- a/examples/quick/demos/calqlatr/content/calculator.js +++ /dev/null @@ -1,161 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, 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$ -** -****************************************************************************/ - -var curVal = 0 -var memory = 0 -var lastOp = "" -var previousOperator = "" -var digits = "" - -function disabled(op) { - if (digits == "" && !((op >= "0" && op <= "9") || op == ".")) - return true - else if (op == '=' && previousOperator.length != 1) - return true - else if (op == "." && digits.toString().search(/\./) != -1) { - return true - } else if (op == "√" && digits.toString().search(/-/) != -1) { - return true - } else { - return false - } -} - -function digitPressed(op) -{ - if (disabled(op)) - return - if (digits.toString().length >= display.maxDigits) - return - if (lastOp.toString().length == 1 && ((lastOp >= "0" && lastOp <= "9") || lastOp == ".") ) { - digits = digits + op.toString() - display.appendDigit(op.toString()) - } else { - digits = op - display.appendDigit(op.toString()) - } - lastOp = op -} - -function operatorPressed(op) -{ - if (disabled(op)) - return - lastOp = op - - if (op == "±") { - digits = Number(digits.valueOf() * -1) - display.setDigit(display.displayNumber(digits)) - return - } - - if (previousOperator == "+") { - digits = Number(digits.valueOf()) + Number(curVal.valueOf()) - } else if (previousOperator == "−") { - digits = Number(curVal.valueOf()) - Number(digits.valueOf()) - } else if (previousOperator == "×") { - digits = Number(curVal) * Number(digits.valueOf()) - } else if (previousOperator == "÷") { - digits = Number(curVal) / Number(digits.valueOf()) - } - - if (op == "+" || op == "−" || op == "×" || op == "÷") { - previousOperator = op - curVal = digits.valueOf() - digits = "" - display.displayOperator(previousOperator) - return - } - - if (op == "=") { - display.newLine("=", digits.valueOf()) - } - - curVal = 0 - previousOperator = "" - - if (op == "1/x") { - digits = (1 / digits.valueOf()).toString() - } else if (op == "x^2") { - digits = (digits.valueOf() * digits.valueOf()).toString() - } else if (op == "Abs") { - digits = (Math.abs(digits.valueOf())).toString() - } else if (op == "Int") { - digits = (Math.floor(digits.valueOf())).toString() - } else if (op == "√") { - digits = Number(Math.sqrt(digits.valueOf())) - display.newLine("√", digits.valueOf()) - } else if (op == "mc") { - memory = 0; - } else if (op == "m+") { - memory += digits.valueOf() - } else if (op == "mr") { - digits = memory.toString() - } else if (op == "m-") { - memory = digits.valueOf() - } else if (op == "backspace") { - digits = digits.toString().slice(0, -1) - display.clear() - display.appendDigit(digits) - } else if (op == "Off") { - Qt.quit(); - } - - // Reset the state on 'C' operator or after - // an error occurred - if (op == "C" || display.isError) { - display.clear() - curVal = 0 - memory = 0 - lastOp = "" - digits = "" - } -} - diff --git a/examples/quick/demos/calqlatr/content/images/paper-edge-left.png b/examples/quick/demos/calqlatr/content/images/paper-edge-left.png deleted file mode 100644 index ca29a3ae10..0000000000 Binary files a/examples/quick/demos/calqlatr/content/images/paper-edge-left.png and /dev/null differ diff --git a/examples/quick/demos/calqlatr/content/images/paper-edge-right.png b/examples/quick/demos/calqlatr/content/images/paper-edge-right.png deleted file mode 100644 index 7c2da7b930..0000000000 Binary files a/examples/quick/demos/calqlatr/content/images/paper-edge-right.png and /dev/null differ diff --git a/examples/quick/demos/calqlatr/content/images/paper-grip.png b/examples/quick/demos/calqlatr/content/images/paper-grip.png deleted file mode 100644 index 953c408bca..0000000000 Binary files a/examples/quick/demos/calqlatr/content/images/paper-grip.png and /dev/null differ diff --git a/examples/quick/demos/calqlatr/doc/images/qtquick-demo-calqlatr.png b/examples/quick/demos/calqlatr/doc/images/qtquick-demo-calqlatr.png deleted file mode 100644 index af67f63dd1..0000000000 Binary files a/examples/quick/demos/calqlatr/doc/images/qtquick-demo-calqlatr.png and /dev/null differ diff --git a/examples/quick/demos/calqlatr/doc/src/calqlatr.qdoc b/examples/quick/demos/calqlatr/doc/src/calqlatr.qdoc deleted file mode 100644 index 02503fe3b9..0000000000 --- a/examples/quick/demos/calqlatr/doc/src/calqlatr.qdoc +++ /dev/null @@ -1,195 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: https://www.gnu.org/licenses/fdl-1.3.html. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \title Qt Quick Demo - Calqlatr - \ingroup qtquickdemos - \example demos/calqlatr - \brief A QML app designed for portrait devices that uses custom components, - animated with AnimationController, and JavaScript for the application logic. - \image qtquick-demo-calqlatr.png - - \e{Calqlatr} demonstrates various QML and \l{Qt Quick} features, such as - displaying custom components and using animation to move the components - around in the application view. The application logic is implemented in - JavaScript and the appearance is implemented in QML. - - \include examples-run.qdocinc - - \section1 Displaying Custom Components - - In the Calqlatr application, we use the following custom types that are - each defined in a separate .qml file: - - \list - \li Button.qml - \li Display.qml - \li NumberPad.qml - \endlist - - To use the custom types, we add an import statement to the main QML file, - calqlatr.qml that imports the folder called \c content where the types are - located: - - \code - import "content" - \endcode - - We can then display custom components by adding the component types to - any QML file. For example, we use the NumberPad type in calqlatr.qml to - create the number pad of the calculator. We place the type inside an - \l{Item} QML type, which is the base type for all visual items in Qt Quick: - - \quotefromfile demos/calqlatr/calqlatr.qml - \skipto Item - \printuntil } - \printuntil } - - Further, we use the Button type in the \c NumberPad type to create the - calculator buttons. Button.qml specifies the basic properties for a - button that we can modify for each button instance in NumberPad.qml. For the - digit and separator buttons, we additionally specify the text property using - the property alias \c text that we define in Button.qml. - - For the operator buttons, we also specify another color (green) using the - property alias \c color and set the operator property to \c true. We use - the operator property in functions that perform the calculations. - - We place the buttons inside a \l{Grid} QML type to position them in a grid: - - \quotefromfile demos/calqlatr/content/NumberPad.qml - \skipto Grid - \printuntil /^\}/ - - Some of the buttons also have a \c dimmable property set, meaning that they - can be visually disabled (dimmed) whenever the calculator engine does not - accept input from that button. As an example, the button for square root - operator is dimmed for negative values. - - \section1 Animating Components - - We use the Display type to display calculations. In Display.qml, we use - images to make the display component look like a slip of paper that contains - a grip. Users can drag the grip to move the display from left to right. - - When users release the grip, the AnimationController QML type that we define - in the calqlatr.qml file finishes running the controlled animation in either - a forwards or a backwards direction. To run the animation, we call either - completeToEnd() or completeToBeginning(), depending on the direction. We do - this in the MouseArea's \c onReleased signal handler, where \c controller - is the id of our AnimationController: - - \quotefromfile demos/calqlatr/calqlatr.qml - \skipto MouseArea - \printuntil { - \dots 12 - \skipto onReleased - \printuntil } - \printuntil } - - Unlike other QML animation types, AnimationController is not driven by - internal timers but by explicitly setting its progress property to a - value between \c 0.0 and \c 1.0. - - Inside the AnimationController, we run two NumberAnimation instances in - parallel to move the number pad and the display components simultaneously to - the opposite sides of the view. In addition, we run a SequentialAnimation - instance to scale the number pad during the transition, giving the animation - some depth. - - \quotefromfile demos/calqlatr/calqlatr.qml - \skipto AnimationController - \printuntil 1; easing.type - \printuntil } - \printuntil } - \printuntil } - - We use the easing curve of the type \c Easing.InOutQuad to accelerate the - motion until halfway and then decelerate it. - - In Button.qml, the text colors of the number pad buttons are also animated. - - \quotefromfile demos/calqlatr/content/Button.qml - \skipto Text - \printuntil id: - \dots 8 - \skipto color: - \printuntil ] - \printuntil } - - We use \l {QtQml::Qt::darker()}{Qt.darker()} to darken the color when the - button is dimmed, and \l {QtQml::Qt::lighter()}{Qt.lighter()} to \e {light up} - the button when pressed. The latter is done in a separate \l [QML] {State} - {state} called \e "pressed", which activates when the \c pressed - property of the button's MouseArea is set. - - The color changes are animated by defining a \l Behavior on the \c color - property. - - In order to dynamically change the \c dimmed property of all the buttons - of the \c NumberPad, we connect its \c buttonPressed signal to the - \c Button's \c updateDimmed() function in Button.qml: - - \quotefromfile demos/calqlatr/content/Button.qml - \skipto function updateDimmed() { - \printuntil buttonPressed.connect - \printuntil } - - This way, when a button is pressed, all buttons on the \c NumPad - receive a \c buttonPressed signal and are activated or deactivated - according to the state of the calculator engine. - - \section1 Performing Calculations - - The calculator.js file defines our calculator engine. It contains variables - to store the calculator state, and functions that are called when the - user presses the digit and operator buttons. To use the engine, we - import calculator.js in the calqlatr.qml file as \c CalcEngine: - - \code - import "content/calculator.js" as CalcEngine - \endcode - - Importing the engine creates a new instance of it. Therefore, we only do it - in the main QML file, \c calqlatr.qml. The root item defined in this file - contains helper functions that allow other types to access the calculator - engine: - - \quotefromfile demos/calqlatr/calqlatr.qml - \skipto operatorPressed - \printuntil CalcEngine.disabled - \printuntil } - - When users press a digit, the text from the digit appears on the - display. When they press an operator, the appropriate calculation is - performed, and the result can be displayed using the equals (=) operator. - The clear (C) operator resets the calculator engine. - - \section1 List of Files - - \sa {QML Applications} -*/ diff --git a/examples/quick/demos/calqlatr/main.cpp b/examples/quick/demos/calqlatr/main.cpp deleted file mode 100644 index bc6e591e98..0000000000 --- a/examples/quick/demos/calqlatr/main.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, 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$ -** -****************************************************************************/ -#include "../../shared/shared.h" -DECLARATIVE_EXAMPLE_MAIN(demos/calqlatr/calqlatr) -- cgit v1.2.3