diff --git a/src/activities/letter-in-word/LetterInWord.qml b/src/activities/letter-in-word/LetterInWord.qml --- a/src/activities/letter-in-word/LetterInWord.qml +++ b/src/activities/letter-in-word/LetterInWord.qml @@ -66,6 +66,7 @@ property alias bar: bar property alias background: background property alias wordsModel: wordsModel + property int currentLetterCase: 0 property int currentMode: normalModeWordCount readonly property int easyModeWordCount: 5 readonly property int normalModeWordCount: 11 @@ -107,9 +108,11 @@ property alias localeBox: localeBox property alias easyModeConfig: easyModeConfig property alias normalModeConfig: normalModeConfig + property alias letterCaseBox: letterCaseBox height: column.height property alias availableLangs: langs.languages + LanguageList { id: langs } @@ -140,6 +143,23 @@ spacing: 5 width: dialogActivityConfig.width GCComboBox { + id: letterCaseBox + label: qsTr("Select case for letter to be searched") + background: dialogActivityConfig + model: [ + {"text": qsTr("Mixed Case"), "value": Font.MixedCase}, + {"text": qsTr("Upper Case"), "value": Font.AllUppercase}, + {"text": qsTr("Lower Case"), "value": Font.AllLowercase} + ] + currentText: model[items.currentLetterCase].text + currentIndex: items.currentLetterCase + } + } + + Flow { + spacing: 5 + width: dialogActivityConfig.width + GCComboBox { id: localeBox model: langs.languages background: dialogActivityConfig @@ -156,6 +176,10 @@ items.currentMode = dataToSave["savedMode"] === "5" ? items.easyModeWordCount : items.normalModeWordCount } + if(dataToSave && dataToSave["savedLetterCase"]) { + items.currentLetterCase = dataToSave["savedLetterCase"] + } + if(dataToSave && dataToSave["locale"]) { background.locale = dataToSave["locale"]; } @@ -172,12 +196,15 @@ var oldMode = items.currentMode items.currentMode = dialogActivityConfig.loader.item.easyModeConfig.checked ? items.easyModeWordCount : items.normalModeWordCount - dataToSave = {"locale": newLocale, "savedMode": items.currentMode} + var oldLetterCase = items.currentLetterCase + items.currentLetterCase = dialogActivityConfig.loader.item.letterCaseBox.model[dialogActivityConfig.loader.item.letterCaseBox.currentIndex].value + + dataToSave = {"locale": newLocale, "savedMode": items.currentMode, "savedLetterCase": items.currentLetterCase} background.locale = newLocale; // Restart the activity with new information - if(oldLocale !== newLocale || oldMode !== items.currentMode) { + if(oldLocale !== newLocale || oldMode !== items.currentMode || oldLetterCase !== items.currentLetterCase) { background.stop(); background.start(); } @@ -263,6 +290,10 @@ } fontSize: hugeSize font.weight: Font.DemiBold + font.capitalization: { + if (items.currentLetterCase === Font.MixedCase) return Math.floor(Math.random() * 2) + else return items.currentLetterCase + } color: "#2a2a2a" text: items.question }