Fixed dialog button sizes
[chessclock] / qml / NewGameDialogPage.qml
index 94c02b7..eb3f633 100644 (file)
@@ -34,7 +34,12 @@ Page
     orientationLock: PageOrientation.LockLandscape
 
     property string name
-    property int timeControl //QML does not allow properties to be declared as enums...
+
+    //QML does not allow properties to be declared as enums...
+    //Initializing to invalid value to make sure picking *any* time control will trigger OnTimeControlChanged
+    property int timeControl: 1000
+
+
     property bool askAddition
     property bool askTurnsPerAddition
 
@@ -47,7 +52,7 @@ Page
     }
     onTimeControlChanged:
     {
-        equalTimesSwitch = settings.isEqualTimes(timeControl)
+        equalTimesSwitch.checked = settings.isEqualTimes(timeControl)
 
         var whiteInitial = settings.getInitialTime(timeControl,true)
         whiteInitialTime.hours = Qt.formatTime(whiteInitial,"h")
@@ -189,52 +194,59 @@ Page
               }
 
 
-            TextField
+            Button
             {
                 id: whiteInitialTime
-                readOnly: true
 
                 anchors.top: whiteSmall.bottom
                 anchors.left: whiteTurnsPerAddition.left
+                anchors.right: whiteTurnsPerAddition.right
 
-                property int hours
-                property int minutes
-                property int seconds
+                property int hours: 0
+                property int minutes: 30
+                property int seconds: 0
 
                 text: {hours + " h " + minutes + " min " + seconds + " s"}
 
-
-                MouseArea
+                onClicked:
                 {
-                    anchors.fill: parent
-                    onClicked: {timePicker.timeType = "initial";  timePicker.player = "white"; timePicker.open()}
+                    timePicker.timeType = "initial"
+                    timePicker.player = "white"
+                    timePicker.hour = hours
+                    timePicker.minute = minutes
+                    timePicker.second = seconds
+                    timePicker.open()
                 }
+
             }
 
 
 
-            TextField
+            Button
             {
                 id: blackInitialTime
                 visible: !equalTimesSwitch.checked
 
-                readOnly: true
-
                 anchors.top: whiteSmall.bottom
                 anchors.left:  blackTurnsPerAddition.left
+                anchors.right: blackTurnsPerAddition.right
 
-                property int hours
-                property int minutes
-                property int seconds
+                property int hours: 0
+                property int minutes: 30
+                property int seconds: 0
 
                 text: hours + " h " + minutes + " min " + seconds + " s"
 
-
-                MouseArea
+                onClicked:
                 {
-                    anchors.fill: parent
-                    onClicked: {timePicker.timeType = "initial";  timePicker.player = "black"; timePicker.open()}
+                    timePicker.timeType = "initial"
+                    timePicker.player = "black"
+                    timePicker.hour = hours
+                    timePicker.minute = minutes
+                    timePicker.second = seconds
+                    timePicker.open()
                 }
+
             }
 
 
@@ -255,52 +267,62 @@ Page
 
 
 
-            TextField
+            Button
             {
                 id: whiteAdditionalTime
                 visible:  newGameDialogPage.askAddition
-                readOnly: true
 
                 anchors.top: whiteInitialTime.bottom
                 anchors.topMargin: 15
   //              anchors.left: additionalTimeText.right
                 anchors.left: whiteTurnsPerAddition.left
-                property int hours
-                property int minutes
-                property int seconds
+                anchors.right: whiteTurnsPerAddition.right
+                property int hours: 0
+                property int minutes: 0
+                property int seconds: 30
 
                 text: hours + " h " + minutes + " min " + seconds + " s"
 
-
-                MouseArea
+                onClicked:
                 {
-                    anchors.fill: parent
-                    onClicked: {timePicker.timeType = "additional";  timePicker.player = "white"; timePicker.open()}
+                    timePicker.timeType = "additional"
+                    timePicker.player = "white"
+                    timePicker.hour = hours
+                    timePicker.minute = minutes
+                    timePicker.second = seconds
+                    timePicker.open()
                 }
+
             }
 
-            TextField
+            Button
             {
                 id: blackAdditionalTime
                 visible: newGameDialogPage.askAddition && !equalTimesSwitch.checked
-                readOnly: true
 
                 anchors.top: whiteAdditionalTime.top
                 anchors.left: blackTurnsPerAddition.left
+                anchors.right: blackTurnsPerAddition.right
 
-                property int hours
-                property int minutes
-                property int seconds
+                property int hours: 0
+                property int minutes: 0
+                property int seconds: 30
 
                 text: hours + " h " + minutes + " min " + seconds + " s"
 
-                MouseArea
+
+                onClicked:
                 {
-                    anchors.fill: parent
-                    onClicked: {timePicker.timeType = "additional";  timePicker.player = "black"; timePicker.open()}
+                    timePicker.timeType = "additional"
+                    timePicker.player = "black"
+                    timePicker.hour = hours
+                    timePicker.minute = minutes
+                    timePicker.second = seconds
+                    timePicker.open()
                 }
 
 
+
             }
 
             Text
@@ -313,41 +335,48 @@ Page
                 anchors.verticalCenter: whiteTurnsPerAddition.verticalCenter
             }
 
-            TextField
+            Button
             {
                 id: whiteTurnsPerAddition
                 visible: newGameDialogPage.askTurnsPerAddition
-                readOnly: true;
 
                 anchors.top: whiteAdditionalTime.bottom
                 anchors.topMargin: 15
                 anchors.left: turnsPerAdditionText.right
                 anchors.leftMargin: 25
+//                anchors.rightMargin: 25
+                width: 250  //The width of all white buttons are indirectly defined by this value, and the width of black buttons is defined by the space available.
 
-                MouseArea
+
+                onClicked:
                 {
-                    anchors.fill: parent
-                    onClicked: {turnsDialog.player = "white";  turnsDialog.open()}
+                    turnsDialog.player = "white"
+                    turnsDialog.open()
+                    turnsColumn.selectedIndex = text-1 //Needs to be after open(),  or gets overridden by the previous chosen value
+
                 }
 
+
             }
 
-            TextField
+            Button
             {
                 id: blackTurnsPerAddition
                 visible: newGameDialogPage.askTurnsPerAddition && !equalTimesSwitch.checked
-                readOnly: true;
+
 
                 anchors.top: whiteTurnsPerAddition.top
                 anchors.left: whiteTurnsPerAddition.right
                 anchors.leftMargin: 25
+                anchors.right: parent.right
+                anchors.rightMargin: 25
 
-                MouseArea
+                onClicked:
                 {
-                    anchors.fill: parent
-                    onClicked: {turnsDialog.player = "black";  turnsDialog.open()}
+                    turnsDialog.player = "black"
+                    turnsDialog.open()
+                    turnsColumn.selectedIndex = parent.text-1 //Needs to be after open(),  or gets overridden by the previous chosen value
                 }
-
             }
 
 
@@ -359,6 +388,7 @@ Page
                 anchors.top: whiteTurnsPerAddition.bottom
                 anchors.topMargin: 15
                 anchors.right: parent.right
+                anchors.rightMargin: 5
 
                 onClicked:
                 {
@@ -373,12 +403,12 @@ Page
 
 
 
-//                //Save settings for white
-//                settings.setInitialTime(timeControl,true,clocksPage.whiteInitialTime)
-//                settings.setAdditionalTime(timeControl,true,clocksPage.whiteAdditionalTime)
-//                settings.setTurnsPerAddition(timeControl,true,clocksPage.whiteTurnsPerAddition)
+                //Save settings for white
+                settings.setInitialTime(timeControl,true,whiteInitialTime.hours,whiteInitialTime.minutes,whiteInitialTime.seconds)
+                settings.setAdditionalTime(timeControl,true,whiteAdditionalTime.hours,whiteAdditionalTime.minutes,whiteAdditionalTime.seconds)
+                settings.setTurnsPerAddition(timeControl,true,whiteTurnsPerAddition.text)
 
-//                settings.setEqualTimes(timeControl,equalTimesSwitch.checked) //save equal times setting
+                settings.setEqualTimes(timeControl,equalTimesSwitch.checked) //save equal times setting
 
                 if (equalTimesSwitch.checked)
                 {
@@ -395,10 +425,10 @@ Page
                     clocksPage.blackAdditionalTime = 60*60*1000*blackAdditionalTime.hours+60*1000*blackAdditionalTime.minutes+1000*blackAdditionalTime.seconds
                     clocksPage.blackTurnsPerAddition = blackTurnsPerAddition.text
 
-//                    //Save settings for black
-//                    settings.setInitialTime(timeControl,false,clocksPage.blackInitialTime)
-//                    settings.setAdditionalTime(timeControl,false,clocksPage.blackAdditionalTime)
-//                    settings.setTurnsPerAddition(timeControl,false,clocksPage.blackTurnsPerAddition)
+                    //Save settings for black
+                    settings.setInitialTime(timeControl,false,blackInitialTime.hours,blackInitialTime.minutes,blackInitialTime.seconds)
+                    settings.setAdditionalTime(timeControl,false,blackAdditionalTime.hours,blackAdditionalTime.minutes,blackAdditionalTime.seconds)
+                    settings.setTurnsPerAddition(timeControl,false,blackTurnsPerAddition.text)
                 }
 
 
@@ -462,7 +492,6 @@ TimePickerDialog
 TumblerColumn
 {
     id: turnsColumn
-    selectedIndex: 1
     items: turnsList