demos/declarative/samegame/samegame.qml
changeset 33 3e2da88830cd
parent 30 5dc02b23752f
child 37 758a864f9613
--- a/demos/declarative/samegame/samegame.qml	Tue Jul 06 15:10:48 2010 +0300
+++ b/demos/declarative/samegame/samegame.qml	Wed Aug 18 10:37:55 2010 +0300
@@ -46,6 +46,7 @@
 Rectangle {
     id: screen
     width: 490; height: 720
+    property bool inAnotherDemo: false //Samegame often is just plonked straight into other demos
 
     SystemPalette { id: activePalette }
 
@@ -87,20 +88,36 @@
 
         Behavior on width {
             NumberAnimation {} 
-            enabled: initialWidth != 0
+            enabled: nameInputDialog.initialWidth != 0
         }
 
+        onOpened: nameInputText.focus = true;
+        onClosed: {
+            nameInputText.focus = false;
+            if (nameInputText.text != "")
+                Logic.saveHighScore(nameInputText.text);
+        }
         Text {
             id: dialogText
             anchors { left: nameInputDialog.left; leftMargin: 20; verticalCenter: parent.verticalCenter }
             text: "You won! Please enter your name: "
         }
+        MouseArea {
+            anchors.fill: parent
+            onClicked: {
+                if (nameInputText.text == "")
+                    nameInputText.openSoftwareInputPanel();
+                else
+                    nameInputDialog.forceClose();
+            }
+        }
 
         TextInput {
             id: nameInputText
             anchors { verticalCenter: parent.verticalCenter; left: dialogText.right }
-            focus: true
-
+            focus: false
+            autoScroll: false
+            maximumLength: 24
             onTextChanged: {
                 var newWidth = nameInputText.width + dialogText.width + 40;
                 if ( (newWidth > nameInputDialog.width && newWidth < screen.width) 
@@ -108,8 +125,6 @@
                     nameInputDialog.width = newWidth;
             }
             onAccepted: {
-                if (nameInputDialog.opacity == 1 && nameInputText.text != "")
-                    Logic.saveHighScore(nameInputText.text);
                 nameInputDialog.forceClose();
             }
         }
@@ -129,6 +144,7 @@
         }
 
         Button {
+            visible: !inAnotherDemo
             text: "Quit"
             anchors { left: newGameButton.right; leftMargin: 3; verticalCenter: parent.verticalCenter }
             onClicked: Qt.quit();