[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [gcompris/devel2] src/activities/imageid: imageid, uppon error the word is reproposed at the end of 
From:       Bruno Coudoin <bruno.coudoin () gcompris ! net>
Date:       2014-12-31 18:34:16
Message-ID: E1Y6O64-0001M6-DY () scm ! kde ! org
[Download RAW message or body]

Git commit 3e5c365ed01716dd22d89903ff8a9248ad07b01b by Bruno Coudoin.
Committed on 19/12/2014 at 21:58.
Pushed by bcoudoin into branch 'devel2'.

imageid, uppon error the word is reproposed at the end of the list

M  +2    -0    src/activities/imageid/Imageid.qml
M  +19   -3    src/activities/imageid/imageid.js

http://commits.kde.org/gcompris/3e5c365ed01716dd22d89903ff8a9248ad07b01b

diff --git a/src/activities/imageid/Imageid.qml b/src/activities/imageid/Imageid.qml
index 67b7785..5dfc9e5 100644
--- a/src/activities/imageid/Imageid.qml
+++ b/src/activities/imageid/Imageid.qml
@@ -76,6 +76,7 @@ ActivityBase {
             property alias wordListModel: wordListModel
             property alias parser: parser
             property variant goodWord
+            property int goodWordIndex
 
             function playWord() {
                 activity.audioVoices.append(ApplicationInfo.getAudioFilePath(goodWord.voice))
@@ -178,6 +179,7 @@ ActivityBase {
 
                     textLabel: word
                     isCorrectAnswer: word === items.goodWord.translatedTxt
+                    onIncorrectlyPressed: Activity.badWordSelected(items.goodWordIndex);
                     onCorrectlyPressed: Activity.nextSubLevel();
                 }
             }
diff --git a/src/activities/imageid/imageid.js b/src/activities/imageid/imageid.js
index e5d9138..e0dddb4 100755
--- a/src/activities/imageid/imageid.js
+++ b/src/activities/imageid/imageid.js
@@ -36,6 +36,7 @@ var baseUrl = "qrc:/gcompris/src/activities/imageid/resource/";
 var dataset = null;
 var lessons
 var wordList
+var subLevelsLeft
 
 function init(items_) {
     items = items_;
@@ -68,14 +69,23 @@ function initLevel() {
 
     maxSubLevel = wordList.length;
     items.score.numberOfSubLevels = maxSubLevel;
+    items.score.visible = true
 
+    subLevelsLeft = []
+    for(var i in wordList)
+        subLevelsLeft.push(i)
     initSubLevel()
 }
 
 function initSubLevel() {
     // initialize sublevel
-    items.score.currentSubLevel = currentSubLevel + 1;
-    items.goodWord = wordList[currentSubLevel]
+    if(items.score.currentSubLevel < items.score.numberOfSubLevels)
+        items.score.currentSubLevel = currentSubLevel + 1;
+    else
+        items.score.visible = false
+
+    items.goodWordIndex = subLevelsLeft.pop()
+    items.goodWord = wordList[items.goodWordIndex]
 
     var selectedWords = []
     selectedWords.push(items.goodWord.translatedTxt)
@@ -112,9 +122,15 @@ function previousLevel() {
 }
 
 function nextSubLevel() {
-    if( ++currentSubLevel >= maxSubLevel) {
+    ++currentSubLevel
+    if(subLevelsLeft.length === 0) {
         items.bonus.good("smiley")
     } else {
         initSubLevel();
     }
 }
+
+// Append to the queue of words for the sublevel the error
+function badWordSelected(wordIndex) {
+    subLevelsLeft.unshift(wordIndex)
+}

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic