Warning, /education/gcompris/src/activities/grammar_classes/ActivityConfig.qml is written in an unsupported language. File is not indexed.
0001 /* GCompris - ActivityConfig.qml
0002 *
0003 * Copyright (C) 2022-2023 Bruno ANSELME <be.root@free.fr>
0004 *
0005 * Authors:
0006 * Johnny Jazeix <jazeix@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 string locale: "system"
0020 property string configurationLocale: "system"
0021 height: childrenRect.height
0022 width: if(background) background.width * 0.9
0023 property alias availableLangs: langs.languages
0024 LanguageList {
0025 id: langs
0026 }
0027
0028 Column {
0029 id: innerColumn
0030 spacing: 10 * ApplicationInfo.ratio
0031 width: activityConfiguration.width
0032 GCComboBox {
0033 id: localeBox
0034 model: langs.languages
0035 background: activityConfiguration.background
0036 label: qsTr("Select your locale")
0037 }
0038 }
0039
0040 function setLocale(localeToSet) {
0041 // Store the locale as-is to be displayed in menu
0042 configurationLocale = localeToSet
0043 activityConfiguration.locale = Core.resolveLocale(localeToSet)
0044 }
0045
0046 property var dataToSave
0047
0048 function setDefaultValues() {
0049 var localeUtf8 = dataToSave.locale;
0050 if(localeUtf8 !== "system") {
0051 localeUtf8 += ".UTF-8";
0052 }
0053
0054 if(dataToSave.locale) {
0055 setLocale(localeUtf8)
0056 }
0057 else {
0058 localeBox.currentIndex = 0
0059 setLocale(activityConfiguration.availableLangs[0].locale)
0060 }
0061
0062 for(var i = 0 ; i < activityConfiguration.availableLangs.length ; i ++) {
0063 if(activityConfiguration.availableLangs[i].locale === localeUtf8) {
0064 localeBox.currentIndex = i;
0065 break;
0066 }
0067 }
0068 }
0069
0070 function saveValues() {
0071 var newLocale = activityConfiguration.availableLangs[localeBox.currentIndex].locale;
0072 // Remove .UTF-8
0073 if(newLocale.indexOf('.') !== -1) {
0074 newLocale = newLocale.substring(0, newLocale.indexOf('.'))
0075 }
0076
0077 setLocale(newLocale);
0078
0079 dataToSave = {"locale": newLocale, "activityLocale": activityConfiguration.locale}
0080 }
0081 }