Fixed dialog button sizes
[chessclock] / qml / NewGameDialogPage.qml
index b24c78a..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
 
@@ -43,34 +48,35 @@ Page
     Settings
     {
         id: settings
+
     }
     onTimeControlChanged:
     {
-        equalTimesSwitch = settings.isEqualTimes(timeControl)
+        equalTimesSwitch.checked = settings.isEqualTimes(timeControl)
 
         var whiteInitial = settings.getInitialTime(timeControl,true)
-        whiteInitialTime.hours = whiteInitial/(60*60*1000)
-        whiteInitialTime.minutes = (whiteInitial%(60*60*1000))/(60*1000)
-        whiteInitialTime.seconds = whiteInitial%(60*1000)/1000
+        whiteInitialTime.hours = Qt.formatTime(whiteInitial,"h")
+        whiteInitialTime.minutes = Qt.formatTime(whiteInitial,"m")
+        whiteInitialTime.seconds = Qt.formatTime(whiteInitial,"s")
 
         var blackInitial = settings.getInitialTime(timeControl,false)
-        blackInitialTime.hours = blackInitial/(60*60*1000)
-        blackInitialTime.minutes = (blackInitial%(60*60*1000))/(60*1000)
-        blackInitialTime.seconds = blackInitial%(60*1000)/1000
+        blackInitialTime.hours = Qt.formatTime(blackInitial,"h")
+        blackInitialTime.minutes = Qt.formatTime(blackInitial,"m")
+        blackInitialTime.seconds = Qt.formatTime(blackInitial,"s")
 
         var whiteAdditional = settings.getAdditionalTime(timeControl,true)
-        whiteAdditionalTime.hours = whiteAdditional/(60*60*1000)
-        whiteAdditionalTime.minutes = (whiteAdditional%(60*60*1000))/(60*1000)
-        whiteAdditionalTime.seconds = whiteAdditional%(60*1000)/1000
+        whiteAdditionalTime.hours = Qt.formatTime(whiteAdditional,"h")
+        whiteAdditionalTime.minutes = Qt.formatTime(whiteAdditional,"m")
+        whiteAdditionalTime.seconds = Qt.formatTime(whiteAdditional,"s")
 
         var blackAdditional = settings.getAdditionalTime(timeControl,false)
-        blackAdditionalTime.hours = blackAdditional/(60*60*1000)
-        blackAdditionalTime.minutes = (blackAdditional%(60*60*1000))/(60*1000)
-        blackAdditionalTime.seconds = blackAdditional%(60*1000)/1000
+        blackAdditionalTime.hours = Qt.formatTime(blackAdditional,"h")
+        blackAdditionalTime.minutes = Qt.formatTime(blackAdditional,"m")
+        blackAdditionalTime.seconds = Qt.formatTime(blackAdditional,"s")
 
 
-        whiteTurnsPerAddition.text = whiteInitial/(60*60*1000) // settings.getTurnsPerAddition(timeControl,true)
-        blackTurnsPerAddition.text = 3%2//settings.getTurnsPerAddition(timeControl,false)
+        whiteTurnsPerAddition.text = settings.getTurnsPerAddition(timeControl,true)
+        blackTurnsPerAddition.text = settings.getTurnsPerAddition(timeControl,false)
     }
 
     tools: ToolBarLayout
@@ -188,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()
                 }
+
             }
 
 
@@ -254,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
@@ -312,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
                 }
-
             }
 
 
@@ -358,6 +388,7 @@ Page
                 anchors.top: whiteTurnsPerAddition.bottom
                 anchors.topMargin: 15
                 anchors.right: parent.right
+                anchors.rightMargin: 5
 
                 onClicked:
                 {
@@ -373,9 +404,9 @@ Page
 
 
                 //Save settings for white
-                settings.setInitialTime(timeControl,true,clocksPage.whiteInitialTime)
-                settings.setAdditionalTime(timeControl,true,clocksPage.whiteAdditionalTime)
-                settings.setTurnsPerAddition(timeControl,true,clocksPage.whiteTurnsPerAddition)
+                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
 
@@ -395,9 +426,9 @@ Page
                     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)
+                    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)
                 }
 
 
@@ -461,7 +492,6 @@ TimePickerDialog
 TumblerColumn
 {
     id: turnsColumn
-    selectedIndex: 1
     items: turnsList