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

0001 /* GCompris - ActivityConfig.qml
0002  *
0003 * SPDX-FileCopyrightText: 2020 Timothée Giet <animtim@gmail.com>
0004  *
0005  * Authors:
0006  *   Timothée Giet <animtim@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 import "qrc:/gcompris/src/core/core.js" as Core
0015 
0016 Item {
0017     id: activityConfiguration
0018     property Item background
0019     property alias localeBox: localeBox
0020     property string locale: "system"
0021     property alias normalModeConfig: normalModeConfig
0022     property int savedMode: 11
0023     property alias letterCaseBox: letterCaseBox
0024     property int savedLetterCase: 0
0025     width: flick.width
0026     height: childrenRect.height
0027     property alias availableLangs: langs.languages
0028 
0029     LanguageList {
0030         id: langs
0031     }
0032 
0033     Column {
0034         id: column
0035         spacing: 10
0036         width: activityConfiguration.width
0037 
0038         GCDialogCheckBox {
0039             id: normalModeConfig
0040             text: qsTr("All the words")
0041             checked: savedMode === 11 ? true : false
0042             onCheckedChanged: easyModeConfig.checked = !normalModeConfig.checked;
0043         }
0044 
0045         GCDialogCheckBox {
0046             id: easyModeConfig
0047             text: qsTr("Only 5 words")
0048             checked: savedMode === 5 ? true : false
0049             onCheckedChanged: normalModeConfig.checked = !easyModeConfig.checked;
0050         }
0051 
0052         GCComboBox {
0053             id: letterCaseBox
0054             label: qsTr("Select the case for the letters to search")
0055             background: activityConfiguration.background
0056             model: [
0057             {"text": qsTr("Mixed Case"), "value": Font.MixedCase},
0058             {"text": qsTr("Upper Case"), "value": Font.AllUppercase},
0059             {"text": qsTr("Lower Case"), "value": Font.AllLowercase}
0060             ]
0061             currentText: model[savedLetterCase].text
0062             currentIndex: savedLetterCase
0063         }
0064 
0065         GCComboBox {
0066             id: localeBox
0067             model: langs.languages
0068             background: activityConfiguration.background
0069             label: qsTr("Select your locale")
0070         }
0071     }
0072 
0073     function setLocale(localeToSet) {
0074         // Store the locale as-is to be displayed in menu
0075         activityConfiguration.locale = Core.resolveLocale(localeToSet);
0076     }
0077 
0078     property var dataToSave
0079     function setDefaultValues() {
0080         var localeUtf8 = dataToSave.locale;
0081         if(localeUtf8 !== "system") {
0082             localeUtf8 += ".UTF-8";
0083         }
0084 
0085         if(dataToSave.locale) {
0086             setLocale(localeUtf8);
0087         } else {
0088             activityConfiguration.localeBox.currentIndex = 0;
0089             setLocale(activityConfiguration.availableLangs[0].locale);
0090         }
0091 
0092         if(dataToSave.savedMode) {
0093             activityConfiguration.savedMode = dataToSave.savedMode;
0094         } else {
0095             activityConfiguration.savedMode = 11;
0096         }
0097 
0098         if(dataToSave.savedLetterCase) {
0099             activityConfiguration.savedLetterCase = dataToSave.savedLetterCase;
0100         } else {
0101             activityConfiguration.savedLetterCase = 0;
0102         }
0103 
0104         for(var i = 0 ; i < activityConfiguration.availableLangs.length ; i ++) {
0105             if(activityConfiguration.availableLangs[i].locale === localeUtf8) {
0106                 activityConfiguration.localeBox.currentIndex = i;
0107                 break;
0108             }
0109         }
0110     }
0111 
0112     function saveValues() {
0113         var newLocale =
0114         activityConfiguration.availableLangs[activityConfiguration.localeBox.currentIndex].locale;
0115         // Remove .UTF-8
0116         if(newLocale.indexOf('.') != -1) {
0117             newLocale = newLocale.substring(0, newLocale.indexOf('.'));
0118         }
0119 
0120         activityConfiguration.savedMode = activityConfiguration.normalModeConfig.checked ? 11 : 5;
0121         activityConfiguration.savedLetterCase = activityConfiguration.letterCaseBox.currentIndex;
0122 
0123         setLocale(newLocale);
0124 
0125         dataToSave = {"locale": newLocale,
0126                       "savedMode": activityConfiguration.savedMode,
0127                       "savedLetterCase": activityConfiguration.savedLetterCase};
0128     }
0129 }