From 17d908ba5205513e9ed0be33aebeb3736bda0326 Mon Sep 17 00:00:00 2001 From: Wolfgang Beck Date: Thu, 17 May 2012 12:27:18 +1000 Subject: Unfork the examples. Some examples were forked off and updated. Unfork by bringing these changes back (a later update will bring the other examples in line with this new style). The changes are primarily made up of file renaming. Also, JPG files have been converted to PNG. Some documentation updates have been done. Change-Id: Ib090abb5ebea2003d479d2336a23317f52b8c4d8 Reviewed-by: Lincoln Ramsay --- .../qmlqtsensors/components/ApplicationWindow.qml | 51 --- .../sensors/qmlqtsensors/components/Button.qml | 75 ---- .../images/button_background_disabled.png | Bin 579 -> 0 bytes .../components/images/button_background_normal.png | Bin 901 -> 0 bytes .../images/button_background_pressed.png | Bin 334 -> 0 bytes examples/sensors/qmlqtsensors/icon.png | Bin 2122 -> 0 bytes examples/sensors/qmlqtsensors/info.json | 14 - examples/sensors/qmlqtsensors/main.qml | 493 --------------------- examples/sensors/qmlqtsensors/qmlqtsensors.pro | 15 - 9 files changed, 648 deletions(-) delete mode 100644 examples/sensors/qmlqtsensors/components/ApplicationWindow.qml delete mode 100644 examples/sensors/qmlqtsensors/components/Button.qml delete mode 100644 examples/sensors/qmlqtsensors/components/images/button_background_disabled.png delete mode 100644 examples/sensors/qmlqtsensors/components/images/button_background_normal.png delete mode 100644 examples/sensors/qmlqtsensors/components/images/button_background_pressed.png delete mode 100644 examples/sensors/qmlqtsensors/icon.png delete mode 100644 examples/sensors/qmlqtsensors/info.json delete mode 100644 examples/sensors/qmlqtsensors/main.qml delete mode 100644 examples/sensors/qmlqtsensors/qmlqtsensors.pro (limited to 'examples/sensors/qmlqtsensors') diff --git a/examples/sensors/qmlqtsensors/components/ApplicationWindow.qml b/examples/sensors/qmlqtsensors/components/ApplicationWindow.qml deleted file mode 100644 index cab5e94c..00000000 --- a/examples/sensors/qmlqtsensors/components/ApplicationWindow.qml +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the QtSensors module 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$ -** -****************************************************************************/ - -//Import the declarative plugins -import QtQuick 2.0 - -Rectangle { - id: appWnd - x: 0 - y: 0 - width: 320 - height: 480 - color: "#ececec" -} diff --git a/examples/sensors/qmlqtsensors/components/Button.qml b/examples/sensors/qmlqtsensors/components/Button.qml deleted file mode 100644 index 537a8bce..00000000 --- a/examples/sensors/qmlqtsensors/components/Button.qml +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the QtSensors module 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$ -** -****************************************************************************/ - -//Import the declarative plugins -import QtQuick 2.0 - -//Implementation of the Button control. -Item { - id: button - width: 30 - height: 100 - property alias text: innerText.text - signal clicked - - Image { - id: backgroundImage - anchors.fill: parent - source: (button.enabled ? "images/button_background_normal.png" : "images/button_background_disabled.png") - } - - Text { - id: innerText - anchors.centerIn: parent - color: "white" - font.bold: true - } - - //Mouse area to react on click events - MouseArea { - anchors.fill: button - onClicked: { button.clicked();} - onPressed: { - backgroundImage.source = "images/button_background_pressed.png" } - onReleased: { - backgroundImage.source = (button.enabled ? "images/button_background_normal.png" : "images/button_background_disabled.png") - } - } -} diff --git a/examples/sensors/qmlqtsensors/components/images/button_background_disabled.png b/examples/sensors/qmlqtsensors/components/images/button_background_disabled.png deleted file mode 100644 index 62a00b9a..00000000 Binary files a/examples/sensors/qmlqtsensors/components/images/button_background_disabled.png and /dev/null differ diff --git a/examples/sensors/qmlqtsensors/components/images/button_background_normal.png b/examples/sensors/qmlqtsensors/components/images/button_background_normal.png deleted file mode 100644 index 1fecad5b..00000000 Binary files a/examples/sensors/qmlqtsensors/components/images/button_background_normal.png and /dev/null differ diff --git a/examples/sensors/qmlqtsensors/components/images/button_background_pressed.png b/examples/sensors/qmlqtsensors/components/images/button_background_pressed.png deleted file mode 100644 index 149529e1..00000000 Binary files a/examples/sensors/qmlqtsensors/components/images/button_background_pressed.png and /dev/null differ diff --git a/examples/sensors/qmlqtsensors/icon.png b/examples/sensors/qmlqtsensors/icon.png deleted file mode 100644 index d3243c5b..00000000 Binary files a/examples/sensors/qmlqtsensors/icon.png and /dev/null differ diff --git a/examples/sensors/qmlqtsensors/info.json b/examples/sensors/qmlqtsensors/info.json deleted file mode 100644 index d76c3002..00000000 --- a/examples/sensors/qmlqtsensors/info.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "info-version": "1.0", - "dict": { - "Category": "application", - "Runtime": "qml", - "DisplayName": "QML QtSensors", - "Subcategory": "utility", - "MainQML": "main.qml", - "Version": "1.0.0", - "Identifier": "com.nokia.mt.qmlqtsensors", - "Summary": "QML Qt Sensors demo", - "Author": "Qt" - } -} diff --git a/examples/sensors/qmlqtsensors/main.qml b/examples/sensors/qmlqtsensors/main.qml deleted file mode 100644 index 44be63aa..00000000 --- a/examples/sensors/qmlqtsensors/main.qml +++ /dev/null @@ -1,493 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the QtSensors module 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$ -** -****************************************************************************/ - -/* Layout - mainWnd - / ---------------------------------------------------------------------------------- -|-------------------------------------------------------------------------------- -|| labelTitle | -|-------------------------------------------------------------------------------- -|-------------------------------------------------------------------------------- <---- tiltLine -|-------------------------------------------------------------------------------- -|| labelTilt | -|-------------------------------------------------------------------------------- -| / accuracyRect / speedRect -|-------------------------------------------||----------------------------------| -|| Accuracy <----- textAccuracy || Speed <-----textSpeed | -|| value <- textAccuracyValue || value <- textSpeedValue | -|| ----------------- ------------------ || --------------- ---------------- | -|| | accuracyLower | | accuracyHigher | || | speedLower | | speedHigher | | -|| ----------------- ------------------ || --------------- ---------------- | -|------------------------------------------ ||----------------------------------| -| ----------- -| |Calibrate| <------------------ calibrate -| ----------- -| --------- -| |Degree | <-------------------- useRadian X Rotation: 0 <------------------ xrottext -| --------- -| --------- -| |Start | <-------------------- tiltStart Y Rotation: 0 <------------------ yrottext -| --------- -|-------------------------------------------------------------------------------- <---- ambientlightLine -|-------------------------------------------------------------------------------- -|| labelAmbientLight | -|-------------------------------------------------------------------------------- -| --------- -| |Start | <-------------------- ablStart Ambient light: - <--------------- abltext -| --------- -|-------------------------------------------------------------------------------- <---- proximityLine -|-------------------------------------------------------------------------------- -|| labelProximityLight | -|-------------------------------------------------------------------------------- -| --------- -| |Start | <-------------------- proxiStart Proximity: - <--------------- proxitext -| --------- ------------------------------------------------------------------------------- -*/ - -//Import the declarative plugins -import QtQuick 2.0 -import "components" - -//! [0] -import QtSensors 5.0 -//! [0] - -ApplicationWindow { - id: appWnd - - Rectangle { - id: mainWnd - x: 0 - y: 0 - width: 320 - height: 480 - color: "transparent" - - property int accuracy: 1 - property string speed: "Slow" - - Text { - id: labelTitle - anchors.top: mainWnd.top - anchors.topMargin: 25 - anchors.left: mainWnd.left - anchors.right: mainWnd.right - - horizontalAlignment: Text.AlignHCenter - font.pixelSize: 30 - font.bold: true - text: "QML QtSensors" - } - - //Tile region - - Rectangle { - id: tiltLine - anchors.top: labelTitle.bottom - anchors.topMargin: 5 - anchors.left: mainWnd.left - anchors.leftMargin: 5 - anchors.right: mainWnd.right - anchors.rightMargin: 5 - border.width: 1 - height: 1 - border.color: "#888888" - } - - Text { - id: labelTilt - anchors.top: tiltLine.bottom - anchors.topMargin: 5 - anchors.left: mainWnd.left - anchors.right: mainWnd.right - - horizontalAlignment: Text.AlignHCenter - font.bold: true - text: "TiltSensor" - } - -//! [1] - TiltSensor { - id: tilt - unit: TiltSensor.Degrees - enabled: false - accuracy: 1.0 - speed: TiltSensor.Slow - } -//! [1] - - Rectangle{ - id: accuracyRect - anchors.top: labelTilt.bottom - anchors.topMargin: 5 - anchors.left: mainWnd.left - anchors.leftMargin: 5 - anchors.right: mainWnd.right - anchors.rightMargin: mainWnd.width / 2 - height: 110 - color: "transparent" - - Text{ - id: textAccuracy - anchors.top: accuracyRect.top - anchors.left: accuracyRect.left - text: "Accuracy" - font.bold: true - } - - Text{ - id: textAccuracyValue - anchors.top: textAccuracy.bottom - anchors.topMargin: 5 - anchors.left: accuracyHigher.left - anchors.right: accuracyHigher.right - text: mainWnd.accuracy - verticalAlignment: Text.AlignVCenter - } - - Button{ - id: accuracyLower - anchors.top: textAccuracyValue.bottom - anchors.left: accuracyRect.left - height: 30 - width: 40 - text: "-" - - onClicked:{ - if (mainWnd.accuracy > 1){ - mainWnd.accuracy--; - tilt.accuracy = mainWnd.accuracy; - } - } - } - - Button{ - id: accuracyHigher - anchors.top: textAccuracyValue.bottom - anchors.left: accuracyLower.right - height: 30 - width: 40 - text: "+" - - onClicked:{ - if (mainWnd.accuracy < 10){ - mainWnd.accuracy++; - tilt.accuracy = mainWnd.accuracy; - } - } - } - } - - Rectangle{ - id: speedRect - anchors.top: labelTilt.bottom - anchors.topMargin: 5 - anchors.left: mainWnd.left - anchors.leftMargin: mainWnd.width / 2 - anchors.right: mainWnd.right - anchors.rightMargin: 5 - height: 110 - color: "transparent" - - Text{ - id: textSpeed - anchors.top: speedRect.top - anchors.left: speedRect.left - text: "Speed" - font.bold: true - } - - Text{ - id: textSpeedValue - anchors.top: textSpeed.bottom - anchors.topMargin: 5 - anchors.left: speedLower.left - anchors.right: speedHigher.right - text: mainWnd.speed - verticalAlignment: Text.AlignVCenter - } - - Button{ - id: speedLower - anchors.top: textSpeedValue.bottom - anchors.left: speedRect.left - height: 30 - width: 40 - text: "-" - - onClicked:{ - if (tilt.speed === TiltSensor.Fast) { - mainWnd.speed = "Medium"; - tilt.speed = TiltSensor.Medium; - } - else if (tilt.speed === TiltSensor.Medium) { - mainWnd.speed = "Slow"; - tilt.speed = TiltSensor.Slow; - } - } - } - - Button{ - id: speedHigher - anchors.top: textSpeedValue.bottom - anchors.left: speedLower.right - height: 30 - width: 40 - text: "+" - - onClicked:{ - if (tilt.speed === TiltSensor.Slow) { - mainWnd.speed = "Medium"; - tilt.speed = TiltSensor.Medium; - } - else if (tilt.speed === TiltSensor.Medium) { - mainWnd.speed = "Fast"; - tilt.speed = TiltSensor.Fast; - } - } - } - } - - Button{ - id: calibrate - anchors.left: mainWnd.left - anchors.leftMargin: 5 - anchors.top: accuracyRect.bottom - height: 30 - width: 80 - text: "Calibrate" - - onClicked:{ - tilt.calibrate(); - } - } - - Button{ - id: useRadian - anchors.top: calibrate.bottom - anchors.left: mainWnd.left - anchors.leftMargin: 5 - height: 30 - width: 80 - text: (tilt !== null ? tilt.unit === TiltSensor.Radians ? "Degree" : "Radians" : "Degree") - - onClicked:{ - tilt.unit = (useRadian.text === "Radians" ? TiltSensor.Radians : TiltSensor.Degrees); - } - } - - Button{ - id: tiltStart - anchors.top: useRadian.bottom - anchors.left: mainWnd.left - anchors.leftMargin: 5 - height: 30 - width: 80 - text: tilt.enabled ? "Stop" : "Start" - - onClicked:{ -//! [2] - tilt.enabled = (tiltStart.text === "Start" ? true: false); -//! [2] - } - } - - Text { - id: xrottext - anchors.right: mainWnd.right - anchors.rightMargin: 5 - anchors.left: useRadian.right - anchors.leftMargin: 15 - anchors.top: useRadian.top - anchors.bottom: useRadian.bottom - verticalAlignment: Text.AlignVCenter -//! [3] - text: "X Rotation: " + tilt.xRotation + (tilt.unit === TiltSensor.Radians ? " rad" : "°") -//! [3] - } - - Text { - id: yrottext - anchors.right: mainWnd.right - anchors.rightMargin: 5 - anchors.left: tiltStart.right - anchors.leftMargin: 15 - anchors.top: tiltStart.top - anchors.bottom: tiltStart.bottom - verticalAlignment: Text.AlignVCenter -//! [4] - text: "Y Rotation: " + tilt.yRotation + (tilt.unit === TiltSensor.Radians ? " rad" : "°") -//! [4] - } - - //Ambient Light region - - Rectangle { - id: ambientlightLine - anchors.top: tiltStart.bottom - anchors.topMargin: 5 - anchors.left: mainWnd.left - anchors.leftMargin: 5 - anchors.right: mainWnd.right - anchors.rightMargin: 5 - border.width: 1 - height: 1 - border.color: "#888888" - } - - Text { - id: labelAmbientLight - anchors.top: ambientlightLine.bottom - anchors.topMargin: 5 - anchors.left: mainWnd.left - anchors.right: mainWnd.right - - horizontalAlignment: Text.AlignHCenter - font.bold: true - text: "AmbientLightSensor" - } - - AmbientLightSensor { - id: ambientlight - enabled: false -//! [5] - onLightLevelChanged:{ - if (ambientlight.lightLevel == AmbientLightSensor.Unknown) - ambientlighttext.text = "Ambient light: Unknown"; - else if (ambientlight.lightLevel == AmbientLightSensor.Dark) - ambientlighttext.text = "Ambient light: Dark"; - else if (ambientlight.lightLevel == AmbientLightSensor.Twilight) - ambientlighttext.text = "Ambient light: Twilight"; - else if (ambientlight.lightLevel == AmbientLightSensor.Light) - ambientlighttext.text = "Ambient light: Light"; - else if (ambientlight.lightLevel == AmbientLightSensor.Bright) - ambientlighttext.text = "Ambient light: Bright"; - else if (ambientlight.lightLevel == AmbientLightSensor.Sunny) - ambientlighttext.text = "Ambient light: Sunny"; - } -//! [5] - } - - Button{ - id: ambientlightStart - anchors.top: labelAmbientLight.bottom - anchors.topMargin: 5 - anchors.left: mainWnd.left - anchors.leftMargin: 5 - height: 30 - width: 80 - text: ambientlight.enabled ? "Stop" : "Start" - - onClicked:{ - ambientlight.enabled = (ambientlightStart.text === "Start" ? true: false); - } - } - - Text { - id: ambientlighttext - anchors.left: ambientlightStart.right - anchors.leftMargin: 15 - anchors.top: ambientlightStart.top - anchors.bottom: ambientlightStart.bottom - verticalAlignment: Text.AlignVCenter - text: "Ambient light: -" - } - - //Proximity region - - Rectangle { - id: proximityLine - anchors.top: ambientlightStart.bottom - anchors.topMargin: 5 - anchors.left: mainWnd.left - anchors.leftMargin: 5 - anchors.right: mainWnd.right - anchors.rightMargin: 5 - border.width: 1 - height: 1 - border.color: "#888888" - } - - Text { - id: labelProximityLight - anchors.top: proximityLine.bottom - anchors.topMargin: 5 - anchors.left: mainWnd.left - anchors.right: mainWnd.right - horizontalAlignment: Text.AlignHCenter - font.bold: true - text: "ProximitySensor" - } - - ProximitySensor { - id: proxi - enabled: false - } - - Button{ - id: proxiStart - anchors.top: labelProximityLight.bottom - anchors.topMargin: 5 - anchors.left: mainWnd.left - anchors.leftMargin: 5 - height: 30 - width: 80 - text: proxi.enabled ? "Stop" : "Start" - - onClicked:{ - proxi.enabled = (proxiStart.text === "Start" ? true: false); - } - } - - Text { - id: proxitext - anchors.left: proxiStart.right - anchors.leftMargin: 15 - anchors.top: proxiStart.top - anchors.bottom: proxiStart.bottom - verticalAlignment: Text.AlignVCenter -//! [6] - text: "Proximity: " + (proxi.near ? "near" : "far") -//! [6] - } - } -} diff --git a/examples/sensors/qmlqtsensors/qmlqtsensors.pro b/examples/sensors/qmlqtsensors/qmlqtsensors.pro deleted file mode 100644 index 9ecebd9a..00000000 --- a/examples/sensors/qmlqtsensors/qmlqtsensors.pro +++ /dev/null @@ -1,15 +0,0 @@ -TEMPLATE = aux - -app.files = \ - info.json \ - main.qml \ - icon.png \ - components - -MT_SYSROOT=$$(MT_SYSROOT) -!isEmpty(MT_SYSROOT):EXAMPLES_PREFIX=/opt/mt/applications -!isEmpty(EXAMPLES_PREFIX) { - app.path = $$EXAMPLES_PREFIX/com.nokia.mt.qmlqtsensors - INSTALLS = app -} - -- cgit v1.2.3