window example: show only the splash screen until the timeout
authorShawn Rutledge <shawn.rutledge@digia.com>
Wed, 29 May 2013 08:58:38 +0000 (10:58 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Thu, 30 May 2013 10:07:21 +0000 (12:07 +0200)
The window takes time to resize itself; we can avoid letting the user
see that by delaying visibility of the main window.

Change-Id: I81d656102b384a66b5539cbd879aadb85261ba33
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
examples/quick/window/Splash.qml
examples/quick/window/window.qml

index 092e6e6..c981bd2 100644 (file)
@@ -43,6 +43,7 @@ import QtQuick.Window 2.1
 
 //! [splash-properties]
 Window {
+    id: splash
     visible: true
     width: splashImage.width
     height: splashImage.height
@@ -50,7 +51,8 @@ Window {
     title: "Splash Window"
     modality: Qt.ApplicationModal
     flags: Qt.SplashScreen
-    property int timeout: 2000
+    property int timeoutInterval: 2000
+    signal timeout
 //! [splash-properties]
 //! [screen-properties]
     x: (Screen.width - splashImage.width) / 2
@@ -67,8 +69,11 @@ Window {
     }
     //! [timer]
     Timer {
-        interval: timeout; running: true; repeat: false
-        onTriggered: visible = false
+        interval: timeoutInterval; running: true; repeat: false
+        onTriggered: {
+            visible = false
+            splash.timeout()
+        }
     }
     //! [timer]
 }
index 1d7282f..67e2ba4 100644 (file)
@@ -46,14 +46,11 @@ 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
@@ -177,4 +174,8 @@ QtObject {
             }
         }
     }
+
+    property var splashWindow: Splash {
+        onTimeout: controlWindow.visible = true
+    }
 }