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 @@ -64,8 +64,10 @@ id: items property Item main: activity.main property alias bar: bar + property alias questionItem: questionItem property alias background: background property alias wordsModel: wordsModel + property int currentLetterCase: ApplicationSettings.fontCapitalization property int currentMode: normalModeWordCount readonly property int easyModeWordCount: 5 readonly property int normalModeWordCount: 11 @@ -107,9 +109,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 +144,23 @@ spacing: 5 width: dialogActivityConfig.width GCComboBox { + id: letterCaseBox + label: qsTr("Select case for letter to be searched") + background: dialogActivityConfig + model: [ + {"text": qsTr("Lower Case"), "value": 0}, + {"text": qsTr("Upper Case"), "value": 1}, + {"text": qsTr("Mixed Case"), "value": 2} + ] + currentText: model[items.currentLetterCase].text + currentIndex: items.currentLetterCase + } + } + + Flow { + spacing: 5 + width: dialogActivityConfig.width + GCComboBox { id: localeBox model: langs.languages background: dialogActivityConfig @@ -156,6 +177,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 +197,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(); } diff --git a/src/activities/letter-in-word/letter-in-word.js b/src/activities/letter-in-word/letter-in-word.js --- a/src/activities/letter-in-word/letter-in-word.js +++ b/src/activities/letter-in-word/letter-in-word.js @@ -117,6 +117,8 @@ items.wordsModel.setProperty(i, "selected", false); } + items.questionItem.font.capitalization = (items.currentLetterCase == 2) ? Math.floor(Math.random() * 2) : items.currentLetterCase + currentLetter = questions[currentSubLevel]; items.question = currentLetter items.animateX.restart();