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

0001 /* GCompris - ActivityConfig.qml
0002  *
0003  * SPDX-FileCopyrightText: 2020 Johnny Jazeix <jazeix@gmail.com>
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 alias localeBox: localeBox
0020     property alias speedSlider: speedSlider
0021     property int speedSetting: 10
0022     property string locale: "system"
0023     property string configurationLocale: "system"
0024     width: flick.width
0025     height: childrenRect.height
0026     property alias availableLangs: langs.languages
0027     LanguageList {
0028         id: langs
0029     }
0030 
0031     Column {
0032         spacing: 10 * ApplicationInfo.ratio
0033         width: activityConfiguration.width
0034         GCComboBox {
0035             id: localeBox
0036             model: langs.languages
0037             background: activityConfiguration.background
0038             label: qsTr("Select your locale")
0039         }
0040         GCText {
0041             id: speedSliderText
0042             width: parent.width
0043             text: qsTr("Speed")
0044             fontSize: mediumSize
0045             wrapMode: Text.WordWrap
0046         }
0047         GCSlider {
0048             id: speedSlider
0049             width: 250 * ApplicationInfo.ratio
0050             value: speedSetting
0051             to: 10
0052             from: 1
0053             wheelEnabled: false
0054         }
0055     }
0056 
0057     function setLocale(localeToSet) {
0058         // Store the locale as-is to be displayed in menu
0059         configurationLocale = localeToSet
0060         activityConfiguration.locale = Core.resolveLocale(localeToSet)
0061     }
0062 
0063     property var dataToSave
0064     function setDefaultValues() {
0065         // Recreate the binding
0066         speedSlider.value = Qt.binding(function() {return activityConfiguration.speedSetting;})
0067 
0068         var localeUtf8 = dataToSave.locale;
0069         if(localeUtf8 !== "system") {
0070             localeUtf8 += ".UTF-8";
0071         }
0072 
0073         if(dataToSave.locale) {
0074             setLocale(localeUtf8)
0075         }
0076         else {
0077             activityConfiguration.localeBox.currentIndex = 0
0078             setLocale(activityConfiguration.availableLangs[0].locale)
0079         }
0080 
0081         if(dataToSave.speedSetting) {
0082             activityConfiguration.speedSetting = dataToSave.speedSetting
0083         }
0084         else {
0085             activityConfiguration.speedSetting = 10
0086         }
0087 
0088         for(var i = 0 ; i < activityConfiguration.availableLangs.length ; i ++) {
0089             if(activityConfiguration.availableLangs[i].locale === localeUtf8) {
0090                 activityConfiguration.localeBox.currentIndex = i;
0091                 break;
0092             }
0093         }
0094     }
0095 
0096     function saveValues() {
0097         var newLocale = activityConfiguration.availableLangs[activityConfiguration.localeBox.currentIndex].locale;
0098         // Remove .UTF-8
0099         if(newLocale.indexOf('.') != -1) {
0100             newLocale = newLocale.substring(0, newLocale.indexOf('.'))
0101         }
0102 
0103         speedSetting = speedSlider.value
0104 
0105         setLocale(newLocale);
0106         dataToSave = {"locale": newLocale, "speedSetting": speedSetting, "activityLocale": activityConfiguration.locale}
0107     }
0108 }