From 1ef4e4b156be8653af64dbccb47abcccc234246a Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Fri, 8 Mar 2013 16:44:52 +0100 Subject: window and Screen example: new properties; splash screen Demonstrates the new properties, how to make a splash screen, and how to make a standalone app with an icon. Combined the Screen info into this example too. Change-Id: I5b731539b39c55327f4e5b93860a880a35835896 Reviewed-by: Richard Moe Gustavsen --- examples/quick/shared/images/qt-logo.png | Bin 0 -> 13923 bytes examples/quick/shared/shared.qrc | 2 + examples/quick/window/ScreenInfo.qml | 95 ++++++++++ examples/quick/window/Splash.qml | 74 ++++++++ .../quick/window/doc/images/qml-window-example.png | Bin 0 -> 9863 bytes examples/quick/window/doc/src/window.qdoc | 71 +++++++ examples/quick/window/main.cpp | 58 ++++++ examples/quick/window/resources/icon.icns | Bin 0 -> 59662 bytes examples/quick/window/resources/icon.ico | Bin 0 -> 11825 bytes examples/quick/window/resources/icon.svg | 208 +++++++++++++++++++++ examples/quick/window/resources/icon64.png | Bin 0 -> 3004 bytes examples/quick/window/resources/window.rc | 32 ++++ examples/quick/window/screen/screenInfo.qml | 91 --------- examples/quick/window/window.pro | 18 +- examples/quick/window/window.qml | 180 ++++++++++++++++++ examples/quick/window/window.qrc | 7 + examples/quick/window/window/Window.qml | 58 ------ examples/quick/window/window/nogui.qml | 50 ----- examples/quick/window/window/standalone.qml | 128 ------------- examples/quick/window/window/twowindows.qml | 89 --------- examples/quick/window/window/window.cpp | 58 ------ examples/quick/window/window/window.pro | 13 -- examples/quick/window/window/window.qrc | 5 - 23 files changed, 741 insertions(+), 496 deletions(-) create mode 100644 examples/quick/shared/images/qt-logo.png create mode 100644 examples/quick/window/ScreenInfo.qml create mode 100644 examples/quick/window/Splash.qml create mode 100644 examples/quick/window/doc/images/qml-window-example.png create mode 100644 examples/quick/window/doc/src/window.qdoc create mode 100644 examples/quick/window/main.cpp create mode 100644 examples/quick/window/resources/icon.icns create mode 100644 examples/quick/window/resources/icon.ico create mode 100644 examples/quick/window/resources/icon.svg create mode 100644 examples/quick/window/resources/icon64.png create mode 100644 examples/quick/window/resources/window.rc delete mode 100644 examples/quick/window/screen/screenInfo.qml create mode 100644 examples/quick/window/window.qml create mode 100644 examples/quick/window/window.qrc delete mode 100644 examples/quick/window/window/Window.qml delete mode 100644 examples/quick/window/window/nogui.qml delete mode 100644 examples/quick/window/window/standalone.qml delete mode 100644 examples/quick/window/window/twowindows.qml delete mode 100644 examples/quick/window/window/window.cpp delete mode 100644 examples/quick/window/window/window.pro delete mode 100644 examples/quick/window/window/window.qrc diff --git a/examples/quick/shared/images/qt-logo.png b/examples/quick/shared/images/qt-logo.png new file mode 100644 index 0000000000..7d3e97eb36 Binary files /dev/null and b/examples/quick/shared/images/qt-logo.png differ diff --git a/examples/quick/shared/shared.qrc b/examples/quick/shared/shared.qrc index 0b574ac879..8912c17831 100644 --- a/examples/quick/shared/shared.qrc +++ b/examples/quick/shared/shared.qrc @@ -8,5 +8,7 @@ CheckBox.qml images/back.png images/next.png + images/qt-logo.png + images/checkmark.png diff --git a/examples/quick/window/ScreenInfo.qml b/examples/quick/window/ScreenInfo.qml new file mode 100644 index 0000000000..e4abc8d69d --- /dev/null +++ b/examples/quick/window/ScreenInfo.qml @@ -0,0 +1,95 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** 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 Digia Plc 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 QtQuick 2.1 +import QtQuick.Window 2.1 + +Item { + id: root + width: 400 + height: propertyGrid.implicitHeight + 16 + + function orientationToString(o) { + switch (o) { + case Qt.PrimaryOrientation: + return "primary"; + case Qt.PortraitOrientation: + return "portrait"; + case Qt.LandscapeOrientation: + return "landscape"; + case Qt.InvertedPortraitOrientation: + return "inverted portrait"; + case Qt.InvertedLandscapeOrientation: + return "inverted landscape"; + } + return "unknown"; + } + + Grid { + id: propertyGrid + columns: 2 + spacing: 8 + x: spacing + y: spacing + + //! [screen] + Text { + text: "Screen \"" + Screen.name + "\":" + font.bold: true + } + Item { width: 1; height: 1 } // spacer + + Text { text: "dimensions" } + Text { text: Screen.width + "x" + Screen.height } + + Text { text: "logical pixel density" } + Text { text: Screen.logicalPixelDensity.toFixed(2) + " dots/mm" } + + Text { text: "available virtual desktop" } + Text { text: Screen.desktopAvailableWidth + "x" + Screen.desktopAvailableHeight } + + Text { text: "orientation" } + Text { text: orientationToString(Screen.orientation) + " (" + Screen.orientation + ")" } + + Text { text: "primary orientation" } + Text { text: orientationToString(Screen.primaryOrientation) + " (" + Screen.primaryOrientation + ")" } + //! [screen] + } +} diff --git a/examples/quick/window/Splash.qml b/examples/quick/window/Splash.qml new file mode 100644 index 0000000000..092e6e6fc2 --- /dev/null +++ b/examples/quick/window/Splash.qml @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** 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 Digia Plc 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 QtQuick 2.0 +import QtQuick.Window 2.1 + +//! [splash-properties] +Window { + visible: true + width: splashImage.width + height: splashImage.height + color: "transparent" + title: "Splash Window" + modality: Qt.ApplicationModal + flags: Qt.SplashScreen + property int timeout: 2000 +//! [splash-properties] +//! [screen-properties] + x: (Screen.width - splashImage.width) / 2 + y: (Screen.height - splashImage.height) / 2 +//! [screen-properties] + + Image { + id: splashImage + source: "../../shared/images/qt-logo.png" + MouseArea { + anchors.fill: parent + onClicked: Qt.quit() + } + } + //! [timer] + Timer { + interval: timeout; running: true; repeat: false + onTriggered: visible = false + } + //! [timer] +} diff --git a/examples/quick/window/doc/images/qml-window-example.png b/examples/quick/window/doc/images/qml-window-example.png new file mode 100644 index 0000000000..72487b4d93 Binary files /dev/null and b/examples/quick/window/doc/images/qml-window-example.png differ diff --git a/examples/quick/window/doc/src/window.qdoc b/examples/quick/window/doc/src/window.qdoc new file mode 100644 index 0000000000..07d2f115c1 --- /dev/null +++ b/examples/quick/window/doc/src/window.qdoc @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/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: http://www.gnu.org/copyleft/fdl.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/*! + \title Qt Quick Examples - Window and Screen + \example window + \brief This example demonstrates the Window and Screen types in QML + \image qml-window-example.png + \ingroup qtquickexamples + + This example shows you how to create a Window in QML, how to control its + \l {QQuickWindow::visibility} {visibility}, how to present a splash screen + during application startup, and how to access the properties of the + \l Screen. It also demonstrates how to package QML into + \l {The Qt Resource System} {resources} and provide an + \l {Setting the Application Icon} {icon} to create a standalone QML desktop application. + + A splash screen can be created with the \l {Qt::SplashScreen} {Qt.SplashScreen} flag, + and should be \l {Qt::ApplicationModal} {ApplicationModal} to prevent interaction + with the main window. If the splash window is also transparent, and showing a + partially transparent image, then it will look like a shaped window. + \snippet window/Splash.qml splash-properties + + In this example a \l Timer will automatically dismiss the splash screen, + but in a real application you might want to connect to a signal from the + application logic to hide the splash when initialization is complete. + \snippet window/Splash.qml timer + + The main window in this example is the control window, with some buttons + and checkboxes to control and provide feedback on the state of a secondary + window. Each checkbox has a binding to the property whose state it is + displaying, and also an onClicked handler to change the state. This is the + typical pattern to create a two-way binding while avoiding binding loops. + \snippet window/window.qml windowedCheckbox + + The \l Screen has several properties which are generally useful to applications + which need to rotate some content when the screen orientation changes, to position + windows on the screen or to convert real units to logical pixel units. ScreenInfo.qml + (which is displayed inline in window.qml, or can be run by itself with qmlscene) + simply displays the property values, while the splash screen uses them to + center the window on the screen. + \snippet window/Splash.qml screen-properties + + If a Window is nested inside an \l Item or another Window, the inner window + becomes "transient for" the outer one (see \l Window for more explanation). + But if you want to create multiple top-level windows as unrelated peers, you + can create them inside a non-visual \l QtObject root item, as this example does. +*/ diff --git a/examples/quick/window/main.cpp b/examples/quick/window/main.cpp new file mode 100644 index 0000000000..2223c607b4 --- /dev/null +++ b/examples/quick/window/main.cpp @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** 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 Digia Plc 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 +#include +#include +#include +#include + +int main(int argc, char* argv[]) +{ + QGuiApplication app(argc, argv); + QQmlEngine engine; + QQmlComponent component(&engine); + component.loadUrl(QUrl("qrc:///window/window.qml")); + if ( component.isReady() ) + component.create(); + else + qWarning() << component.errorString(); + return app.exec(); +} diff --git a/examples/quick/window/resources/icon.icns b/examples/quick/window/resources/icon.icns new file mode 100644 index 0000000000..88b4b24449 Binary files /dev/null and b/examples/quick/window/resources/icon.icns differ diff --git a/examples/quick/window/resources/icon.ico b/examples/quick/window/resources/icon.ico new file mode 100644 index 0000000000..52af30a6ca Binary files /dev/null and b/examples/quick/window/resources/icon.ico differ diff --git a/examples/quick/window/resources/icon.svg b/examples/quick/window/resources/icon.svg new file mode 100644 index 0000000000..0b6153206d --- /dev/null +++ b/examples/quick/window/resources/icon.svg @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/quick/window/resources/icon64.png b/examples/quick/window/resources/icon64.png new file mode 100644 index 0000000000..0fa324401f Binary files /dev/null and b/examples/quick/window/resources/icon64.png differ diff --git a/examples/quick/window/resources/window.rc b/examples/quick/window/resources/window.rc new file mode 100644 index 0000000000..4de84d297e --- /dev/null +++ b/examples/quick/window/resources/window.rc @@ -0,0 +1,32 @@ +#include "winver.h" + +IDI_ICON1 ICON DISCARDABLE "icon.ico" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,0 + PRODUCTVERSION 1,0,0,0 + FILEFLAGS 0x0L + FILEFLAGSMASK 0x3fL + FILEOS 0x00040004L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "000004b0" + BEGIN + VALUE "CompanyName", "Digia Plc and/or its subsidiary(-ies)" + VALUE "FileDescription", "QtQuick Window Example" + VALUE "FileVersion", "1.0.0.0" + VALUE "LegalCopyright", "Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies)." + VALUE "InternalName", "window" + VALUE "OriginalFilename", "window.exe" + VALUE "ProductName", "QtQuick Window Example" + VALUE "ProductVersion", "1.0.0.0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0, 1200 + END +END diff --git a/examples/quick/window/screen/screenInfo.qml b/examples/quick/window/screen/screenInfo.qml deleted file mode 100644 index 33fbc5d88e..0000000000 --- a/examples/quick/window/screen/screenInfo.qml +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** 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 Digia Plc 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 QtQuick 2.1 -import QtQuick.Window 2.1 - -Item { - id: root - width: 400 - height: 200 - - function orientationToString(o) { - switch (o) { - case Qt.PrimaryOrientation: - return "primary"; - case Qt.PortraitOrientation: - return "portrait"; - case Qt.LandscapeOrientation: - return "landscape"; - case Qt.InvertedPortraitOrientation: - return "inverted portrait"; - case Qt.InvertedLandscapeOrientation: - return "inverted landscape"; - } - return "unknown"; - } - - Grid { - anchors.centerIn: parent - columns: 2 - spacing: 8 - - Text { - text: "Screen \"" + Screen.name + "\":" - font.bold: true - } - Item { width: 1; height: 1 } // spacer - - Text { text: "dimensions" } - Text { text: Screen.width + "x" + Screen.height } - - Text { text: "logical pixel density" } - Text { text: Screen.logicalPixelDensity.toFixed(2) + " dots/mm" } - - Text { text: "available virtual desktop" } - Text { text: Screen.desktopAvailableWidth + "x" + Screen.desktopAvailableHeight } - - Text { text: "orientation" } - Text { text: orientationToString(Screen.orientation) + " (" + Screen.orientation + ")" } - - Text { text: "primary orientation" } - Text { text: orientationToString(Screen.primaryOrientation) + " (" + Screen.primaryOrientation + ")" } - } -} diff --git a/examples/quick/window/window.pro b/examples/quick/window/window.pro index 93e43fcd65..be35b24325 100644 --- a/examples/quick/window/window.pro +++ b/examples/quick/window/window.pro @@ -1,6 +1,16 @@ -TEMPLATE = subdirs -SUBDIRS += \ - window +TEMPLATE = app +QT += quick qml +SOURCES += main.cpp +RESOURCES += \ + window.qrc \ + ../shared/shared.qrc EXAMPLE_FILES = \ - screen + window.qml + +target.path = $$[QT_INSTALL_EXAMPLES]/quick/window +INSTALLS += target + +ICON = resources/icon64.png +macx: ICON = resources/icon.icns +win32: RC_FILE = resources/window.rc diff --git a/examples/quick/window/window.qml b/examples/quick/window/window.qml new file mode 100644 index 0000000000..1d7282f7a1 --- /dev/null +++ b/examples/quick/window/window.qml @@ -0,0 +1,180 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** 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 Digia Plc 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 QtQuick 2.0 +import QtQuick.Window 2.1 +import "../shared" as Shared + +QtObject { + property real defaultSpacing: 10 + property SystemPalette palette: SystemPalette { } + + property var splashWindow: Splash { } + + property var controlWindow: Window { + width: 400 + height: col.implicitHeight + defaultSpacing * 2 + color: palette.window + title: "Control Window" + visible: true + Column { + id: col + anchors.fill: parent + anchors.margins: defaultSpacing + spacing: defaultSpacing + property real cellWidth: col.width / 3 - spacing + Text { text: "Control the second window:" } + Grid { + id: grid + columns: 3 + spacing: defaultSpacing + width: parent.width + Shared.Button { + id: showButton + width: col.cellWidth + text: testWindow.visible ? "Hide" : "Show" + onClicked: testWindow.visible = !testWindow.visible + } + //! [windowedCheckbox] + Shared.CheckBox { + text: "Windowed" + height: showButton.height + width: col.cellWidth + Binding on checked { value: testWindow.visibility === Window.Windowed } + onClicked: testWindow.visibility = Window.Windowed + } + //! [windowedCheckbox] + Shared.CheckBox { + height: showButton.height + width: col.cellWidth + text: "Full Screen" + Binding on checked { value: testWindow.visibility === Window.FullScreen } + onClicked: testWindow.visibility = Window.FullScreen + } + Shared.Button { + id: autoButton + width: col.cellWidth + text: "Automatic" + onClicked: testWindow.visibility = Window.AutomaticVisibility + } + Shared.CheckBox { + height: autoButton.height + text: "Minimized" + Binding on checked { value: testWindow.visibility === Window.Minimized } + onClicked: testWindow.visibility = Window.Minimized + } + Shared.CheckBox { + height: autoButton.height + text: "Maximized" + Binding on checked { value: testWindow.visibility === Window.Maximized } + onClicked: testWindow.visibility = Window.Maximized + } + } + function visibilityToString(v) { + switch (v) { + case Window.Windowed: + return "windowed"; + case Window.Minimized: + return "minimized"; + case Window.Maximized: + return "maximized"; + case Window.FullScreen: + return "fullscreen"; + case Window.AutomaticVisibility: + return "automatic"; + case Window.Hidden: + return "hidden"; + } + return "unknown"; + } + Text { + text: "second window is " + (testWindow.visible ? "visible" : "invisible") + + " and has visibility " + parent.visibilityToString(testWindow.visibility) + } + Rectangle { + id: horizontalRule + color: "black" + width: parent.width + height: 1 + } + ScreenInfo { } + } + } + + property var testWindow: Window { + width: 320 + height: 240 + color: "#215400" + title: "Test Window with color " + color + Rectangle { + anchors.fill: parent + anchors.margins: defaultSpacing + Text { + anchors.centerIn: parent + text: "Second Window" + } + MouseArea { + anchors.fill: parent + onClicked: testWindow.color = "#e0c31e" + } + Shared.Button { + anchors.right: parent.right + anchors.top: parent.top + anchors.margins: defaultSpacing + text: testWindow.visibility === Window.FullScreen ? "exit fullscreen" : "go fullscreen" + width: 150 + onClicked: { + if (testWindow.visibility === Window.FullScreen) + testWindow.visibility = Window.AutomaticVisibility + else + testWindow.visibility = Window.FullScreen + } + } + Shared.Button { + anchors.left: parent.left + anchors.top: parent.top + anchors.margins: defaultSpacing + text: "X" + width: 30 + onClicked: testWindow.visible = false + } + } + } +} diff --git a/examples/quick/window/window.qrc b/examples/quick/window/window.qrc new file mode 100644 index 0000000000..dc211bdaaf --- /dev/null +++ b/examples/quick/window/window.qrc @@ -0,0 +1,7 @@ + + + window.qml + Splash.qml + ScreenInfo.qml + + diff --git a/examples/quick/window/window/Window.qml b/examples/quick/window/window/Window.qml deleted file mode 100644 index 07900930d3..0000000000 --- a/examples/quick/window/window/Window.qml +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** 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 Digia Plc 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 QtQuick 2.0 -import QtQuick.Window 2.0 - -Window { - width: 640 - height: 480 - visible: true //It's false by default - property Component self - Component.onCompleted: self = Qt.createComponent("Window.qml") - Text{ - text: "Hello World!" - anchors.centerIn: parent - } - MouseArea{ - anchors.fill: parent - onClicked: self.createObject(); - } -} diff --git a/examples/quick/window/window/nogui.qml b/examples/quick/window/window/nogui.qml deleted file mode 100644 index 2a5734c773..0000000000 --- a/examples/quick/window/window/nogui.qml +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** 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 Digia Plc 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 QtQml 2.0 - -/* - This object's only functionality is to exist as a root object and - display nothing, proving that qmlscene can run without windows. - (A QtObject can't even have Component.onCompleted) -*/ -QtObject { - property string philosophy: "hello bleak windowless world" -} diff --git a/examples/quick/window/window/standalone.qml b/examples/quick/window/window/standalone.qml deleted file mode 100644 index db73bf66eb..0000000000 --- a/examples/quick/window/window/standalone.qml +++ /dev/null @@ -1,128 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** 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 Digia Plc 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 QtQuick 2.0 -import QtQuick.Window 2.0 - -Item { - width: 320 - height: 240 - // It's not possible to set an Item's windowTitle. If you want to modify - // window properties, you need to explicitly create a Window. - Text { - id: text1 - anchors.centerIn: parent - text: "First Window\n" + (Qt.application.supportsMultipleWindows ? - "click the button to open a second window" : "only one window is allowed") - } - Rectangle { - border.color: "black" - radius: 4 - anchors.top: text1.bottom - anchors.horizontalCenter: text1.horizontalCenter - width: 100 - height: 30 - TextInput { - id: ti1 - focus: true // but the modal popup will prevent input while it is open - anchors.centerIn: parent - } - } - Rectangle { - border.color: "black" - color: childWindow.visible ? "goldenrod" : "beige" - radius: height / 4 - anchors.bottom: parent.bottom - anchors.right: parent.right - anchors.margins: 10 - width: text.implicitWidth + 20 - height: text.implicitHeight + 20 - visible: Qt.application.supportsMultipleWindows - Text { - id: text - text: "Pop up window" - anchors.centerIn: parent - } - MouseArea { - anchors.fill: parent - onClicked: childWindow.visible = !childWindow.visible - } - } - - Window { - id: childWindow - width: 320 - height: 240 - x: 220 - y: 120 - color: "beige" - title: "Second Window" - modality: Qt.ApplicationModal - flags: Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint - Text { - id: text2 - anchors.centerIn: parent - text: "Modal Frameless Stay-on-Top Window" - } - Text { - anchors.top: parent.top - anchors.right: parent.right - anchors.margins: 10 - text: "X" - MouseArea{ - anchors.fill: parent - onClicked: childWindow.visible = false - } - } - Rectangle { - border.color: "black" - radius: 4 - anchors.top: text2.bottom - anchors.horizontalCenter: text2.horizontalCenter - width: 100 - height: 30 - TextInput { - id: ti2 - focus: true - anchors.centerIn: parent - } - } - } -} diff --git a/examples/quick/window/window/twowindows.qml b/examples/quick/window/window/twowindows.qml deleted file mode 100644 index 4a8d2f4f1b..0000000000 --- a/examples/quick/window/window/twowindows.qml +++ /dev/null @@ -1,89 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** 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 Digia Plc 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 QtQuick 2.0 -import QtQuick.Window 2.0 - -QtObject { - property var win1: Window { - width: 320 - height: 240 - x: 0 - y: 0 - visible: true - color: "#ccffff" - title: "First Window" - Text { - anchors.centerIn: parent - text: "First Window" - Text { - id: statusText - anchors.top: parent.bottom - anchors.horizontalCenter: parent.horizontalCenter - } - } - MouseArea { - anchors.fill: parent - onClicked: win2.visible = !win2.visible - } - } - property var win2: Window { - width: 320 - height: 240 - x: 220 - y: 120 - visible: true - color: "green" - title: "Second Window: " + color - Rectangle { - anchors.fill: parent - anchors.margins: 10 - Text { - anchors.centerIn: parent - text: "Second Window" - } - MouseArea { - anchors.fill: parent - onClicked: win2.color = "#ffffcc" - } - } - onVisibleChanged: statusText.text = "second window is " + (visible ? "visible" : "invisible") - } -} diff --git a/examples/quick/window/window/window.cpp b/examples/quick/window/window/window.cpp deleted file mode 100644 index 277effc20c..0000000000 --- a/examples/quick/window/window/window.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** 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 Digia Plc 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 -#include -#include -#include -#include - -int main(int argc, char* argv[]) -{ - QGuiApplication app(argc, argv); - QQmlEngine engine; - QQmlComponent component(&engine); - component.loadUrl(QUrl("qrc:///window/window/Window.qml")); - if ( component.isReady() ) - component.create(); - else - qWarning() << component.errorString(); - return app.exec(); -} diff --git a/examples/quick/window/window/window.pro b/examples/quick/window/window/window.pro deleted file mode 100644 index 3525a893fa..0000000000 --- a/examples/quick/window/window/window.pro +++ /dev/null @@ -1,13 +0,0 @@ -TEMPLATE = app -QT += qml - -SOURCES += window.cpp -RESOURCES += window.qrc - -EXAMPLE_FILES = \ - nogui.qml \ - standalone.qml \ - twowindows.qml - -target.path = $$[QT_INSTALL_EXAMPLES]/quick/window/window -INSTALLS = target diff --git a/examples/quick/window/window/window.qrc b/examples/quick/window/window/window.qrc deleted file mode 100644 index c203c140fc..0000000000 --- a/examples/quick/window/window/window.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - Window.qml - - -- cgit v1.2.3