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" @@ -88,6 +89,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 +129,7 @@ Item { property alias localeBox: localeBox property alias uppercaseBox: uppercaseBox + property alias numberLimitSlider: numberLimitSlider height: column.height property alias availableLangs: langs.languages @@ -155,6 +158,31 @@ text: qsTr("Uppercase only mode") checked: activity.uppercaseOnly } + Flow { + spacing: 5 + width: dialogActivityConfig.width + GCSlider { + id: numberLimitSlider + width: 250 * ApplicationInfo.ratio + maximumValue: 20 + minimumValue: 3 + value: items.numberLimit + //onValueChanged: items.numberLimit = value; + 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 +192,7 @@ if(dataToSave && dataToSave["locale"]) { background.locale = dataToSave["locale"]; activity.uppercaseOnly = dataToSave["uppercaseMode"] === "true" ? true : false; + items.numberLimit = dataToSave["numberLimit"]; } } onSaveData: { @@ -176,7 +205,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 @@ -30,7 +30,7 @@ mode: "letter" 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 @@ -30,7 +30,7 @@ mode: "letter" dataSetUrl: "qrc:/gcompris/src/activities/smallnumbers2/resource/" - configurationButtonVisible: false + configurationButtonVisible: true function getDominoValues(key) { var val1 = Math.floor(Math.random() * key)