diff --git a/src/activities/gletters/Gletters.qml b/src/activities/gletters/Gletters.qml --- a/src/activities/gletters/Gletters.qml +++ b/src/activities/gletters/Gletters.qml @@ -21,6 +21,7 @@ */ import QtQuick 2.6 +import QtQuick.Controls 1.5 import GCompris 1.0 import "../../core" @@ -40,6 +41,9 @@ /* mode of the activity, "letter" (gletters) or "word" (wordsgame):*/ property string mode: "letter" + // To show or hide numberLimit config option + property bool useNumberLimit: false + // Override if you want to replace texts by your image function getImage(key) { return "" @@ -88,6 +92,7 @@ property alias bar: bar property alias bonus: bonus property alias wordlist: wordlist + property int numberLimit: 3 property alias score: score property alias keyboard: keyboard property alias wordDropTimer: wordDropTimer @@ -127,6 +132,7 @@ Item { property alias localeBox: localeBox property alias uppercaseBox: uppercaseBox + property alias numberLimitSlider: numberLimitSlider height: column.height property alias availableLangs: langs.languages @@ -155,6 +161,31 @@ text: qsTr("Uppercase only mode") checked: activity.uppercaseOnly } + Flow { + visible: activity.useNumberLimit + spacing: 5 + width: dialogActivityConfig.width + GCSlider { + id: numberLimitSlider + width: 250 * ApplicationInfo.ratio + maximumValue: 10 + minimumValue: 3 + value: items.numberLimit + scrollEnabled: false + } + GCText { + id: numberLimitText + text: qsTr("Number Limit") + fontSize: mediumSize + wrapMode: Text.WordWrap + } + Button { + height: 30 * ApplicationInfo.ratio + text: qsTr("Default"); + style: GCButtonStyle {} + onClicked: numberLimitSlider.value = 3.0 + } + } } } } @@ -164,6 +195,7 @@ if(dataToSave && dataToSave["locale"]) { background.locale = dataToSave["locale"]; activity.uppercaseOnly = dataToSave["uppercaseMode"] === "true" ? true : false; + items.numberLimit = dataToSave["numberLimit"]; } } onSaveData: { @@ -176,7 +208,11 @@ var oldUppercaseMode = activity.uppercaseOnly activity.uppercaseOnly = dialogActivityConfig.configItem.uppercaseBox.checked - dataToSave = {"locale": newLocale, "uppercaseMode": ""+activity.uppercaseOnly} + + var oldNumberLimit = items.numberLimit + items.numberLimit = dialogActivityConfig.configItem.numberLimitSlider.value + + dataToSave = {"locale": newLocale, "uppercaseMode": ""+activity.uppercaseOnly, "numberLimit": items.numberLimit} background.locale = newLocale; // Restart the activity with new information diff --git a/src/activities/gletters/gletters.js b/src/activities/gletters/gletters.js --- a/src/activities/gletters/gletters.js +++ b/src/activities/gletters/gletters.js @@ -290,20 +290,22 @@ var word - if(items.ourActivity.getImage(text)) { + var modText = parseInt(text) % items.numberLimit + "" + + if(items.ourActivity.getImage(modText)) { word = wordComponent.createObject( items.background, { - "text": text, - "image": items.ourActivity.getImage(text), + "text": modText, + "image": items.ourActivity.getImage(modText), // assume x=width-25px for now, Word auto-adjusts onCompleted(): "x": Math.random() * (items.main.width - 25), "y": -25, }); - } else if(items.ourActivity.getDominoValues(text).length) { + } else if(items.ourActivity.getDominoValues(modText).length) { word = wordComponent.createObject( items.background, { - "text": text, - "dominoValues": items.ourActivity.getDominoValues(text), + "text": modText, + "dominoValues": items.ourActivity.getDominoValues(modText), // assume x=width-25px for now, Word auto-adjusts onCompleted(): "x": Math.random() * (items.main.width - 25), "y": -25, diff --git a/src/activities/smallnumbers/Smallnumbers.qml b/src/activities/smallnumbers/Smallnumbers.qml --- a/src/activities/smallnumbers/Smallnumbers.qml +++ b/src/activities/smallnumbers/Smallnumbers.qml @@ -29,8 +29,9 @@ id: activity mode: "letter" + useNumberLimit: true dataSetUrl: "qrc:/gcompris/src/activities/smallnumbers/resource/" - configurationButtonVisible: false + configurationButtonVisible: true function getImage(key) { return dataSetUrl + "dice" + key + ".svg" diff --git a/src/activities/smallnumbers2/Smallnumbers2.qml b/src/activities/smallnumbers2/Smallnumbers2.qml --- a/src/activities/smallnumbers2/Smallnumbers2.qml +++ b/src/activities/smallnumbers2/Smallnumbers2.qml @@ -29,8 +29,9 @@ id: activity mode: "letter" + useNumberLimit: true dataSetUrl: "qrc:/gcompris/src/activities/smallnumbers2/resource/" - configurationButtonVisible: false + configurationButtonVisible: true function getDominoValues(key) { var val1 = Math.floor(Math.random() * key)