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 }