Warning, /education/gcompris/src/activities/guesscount/ActivityConfig.qml is written in an unsupported language. File is not indexed.

0001 /* GCompris - ActivityConfig.qml
0002  *
0003 * SPDX-FileCopyrightText: 2020 Deepak Kumar <deepakdk2431@gmail.com>
0004  *
0005  * Authors:
0006  *   Deepak Kumar <deepakdk2431@gmail.com>
0007  *
0008  *   SPDX-License-Identifier: GPL-3.0-or-later
0009  */
0010 import QtQuick 2.12
0011 import GCompris 1.0
0012 
0013 import "../../core"
0014 
0015 Item {
0016     id: activityConfiguration
0017     property Item background
0018     property alias modeBox: modeBox
0019     property int numberOfLevel: 8
0020     property var adminLevelArr: [["+"],["-"],["/"],["*"],["+","-"],["/","*"],["/","*",'+'],['-',"*","+","/"]]
0021     width: flick.width
0022     height: childrenRect.height
0023 
0024     signal refreshAdmin
0025 
0026     property var availableModes: [
0027         { "text": qsTr("Admin"), "value": "admin" },
0028         { "text": qsTr("BuiltIn"), "value": "builtin" }
0029     ]
0030 
0031     Column {
0032         id: column
0033         spacing: 10 * ApplicationInfo.ratio
0034         width: activityConfiguration.width
0035         GCComboBox {
0036             id: modeBox
0037             model: availableModes
0038             background: activityConfiguration.background
0039             label: qsTr("Select your mode")
0040             onCurrentIndexChanged: {
0041                 if(currentIndex === 0) {
0042                     datasetButtonVisible = false
0043                     optionsVisibleButton.clicked()
0044                 }
0045                 else
0046                     datasetButtonVisible = true
0047             }
0048         }
0049         Row {
0050             id: labels
0051             spacing: 20
0052             visible: modeBox.currentIndex == 0
0053             Repeater {
0054                 model: 2
0055                 Rectangle {
0056                     id: label
0057                     width: column.width * 0.42
0058                     height: 32 * ApplicationInfo.ratio
0059                     radius: 10
0060                     color: modelData ? "#5cc854" : "#d94444" // green : red
0061                     GCText {
0062                         anchors.fill: parent
0063                         anchors.margins: 10
0064                         horizontalAlignment: Text.AlignHCenter
0065                         verticalAlignment: Text.AlignVCenter
0066                         fontSizeMode: Text.Fit
0067                         fontSize: mediumSize
0068                         text: modelData ? qsTr("Selected") : qsTr("Not Selected")
0069                     }
0070                 }
0071             }
0072         }
0073         Column {
0074             visible: modeBox.currentIndex == 0
0075             spacing: 10 * ApplicationInfo.ratio
0076             Repeater {
0077                 model: activityConfiguration.numberOfLevel
0078                 Admin {
0079                     id: levels
0080                     level: modelData
0081                     width: activityConfiguration.width
0082                     height: 50 * ApplicationInfo.ratio
0083 
0084                     Connections {
0085                         target: activityConfiguration
0086                         onRefreshAdmin: levels.refreshAllTiles();
0087                     }
0088                 }
0089             }
0090         }
0091 
0092     }
0093     property var dataToSave
0094 
0095     function setDefaultValues() {
0096 
0097         if(dataToSave["levelArr"] === undefined) {
0098             dataToSave["levelArr"] = activityConfiguration.adminLevelArr
0099         }
0100         else
0101             activityConfiguration.adminLevelArr = dataToSave["levelArr"]
0102 
0103         if(dataToSave["mode"] === undefined) {
0104             dataToSave["mode"] = "builtin";
0105             modeBox.currentIndex = 1
0106         }
0107         for(var i = 0 ; i < availableModes.length ; i++) {
0108             if(availableModes[i].value === dataToSave["mode"]) {
0109                 modeBox.currentIndex = i;
0110                 break;
0111             }
0112         }
0113         refreshAdmin()
0114     }
0115 
0116     function saveValues() {
0117         var newMode = availableModes[modeBox.currentIndex].value;
0118         var updatedArr = activityConfiguration.adminLevelArr
0119         dataToSave = {"mode": newMode, "levelArr": updatedArr};
0120     }
0121 }