Index: src/activities/multiplication_tables/Multiplication_tables.qml =================================================================== --- src/activities/multiplication_tables/Multiplication_tables.qml +++ src/activities/multiplication_tables/Multiplication_tables.qml @@ -23,24 +23,17 @@ import QtQuick.Controls 1.1 import QtQuick.Controls.Styles 1.1 import QtQuick.Layouts 1.1 - import "../../core" -import "multiplication_tables.js" -as Activity -import "multiplicationtables_dataset.js" -as Dataset - +import "multiplication_tables.js" as Activity +import "multiplicationtables_dataset.js" as Dataset ActivityBase { id: activity - property string url: "qrc:/gcompris/src/activities/multiplication_tables/resource/" property double startTime: 0 - property int flag: 0 - property - var dataset: Dataset + property bool startButtonClicked: false + property var dataset: Dataset property string mode: "multiplicationtables" - onStart: focus = true onStop: {} @@ -58,7 +51,6 @@ // Add here the QML items you need to access in javascript QtObject { - id: items property Item main: activity.main property alias background: background @@ -70,34 +62,28 @@ property alias score: score property alias questionGrid: questionGrid property alias repeater: repeater - } onStart: { Activity.start(items, mode, dataset, url) - } onStop: { Activity.stop() } Flow { - id: questionGrid anchors.fill: parent anchors.bottom: bar.top - spacing: 50 - + spacing: bar.height * 0.4 anchors { left: background.left right: background.rigth - margins: 60 + margins: bar.height * 0.6 } - Repeater { id: repeater model: 10 - Question { } } @@ -120,14 +106,14 @@ anchors.bottom: parent.bottom anchors.right: parent.right anchors { - bottomMargin: 50 - rightMargin: 120 + bottomMargin: bar.height * 0.4 + rightMargin: bar.height * 1.5 } style: ButtonStyle { background: Rectangle { - implicitWidth: 100 - implicitHeight: 40 + implicitWidth: bar.height * 0.9 + implicitHeight: bar.height * 0.3 border.width: control.activeFocus ? 2 : 1 border.color: "blue" radius: 4 @@ -143,33 +129,32 @@ } onClicked: { - if (flag == 1) { + if (startButtonClicked == true) { score.visible = true var str1 = new Date().getTime() - startTime - time.text = qsTr("Your time: %1 ms").arg(str1) + var str2 = str1/1000 + time.text = qsTr("Your time: %1 seconds").arg(str2) startTime = 0 - flag = 0 + startButtonClicked = false start_button.text = qsTr("START AGAIN") Activity.verifyAnswer() } } } - Button { id: start_button text: qsTr(" START ") anchors.bottom: parent.bottom anchors.right: stop_button.left anchors { - bottomMargin: 50 - rightMargin: 30 + bottomMargin: bar.height * 0.4 + rightMargin: bar.height * 0.4 } - style: ButtonStyle { background: Rectangle { - implicitWidth: 100 - implicitHeight: 40 + implicitWidth: bar.height * 0.9 + implicitHeight: bar.height * 0.3 border.width: control.activeFocus ? 2 : 1 border.color: "blue" radius: 4 @@ -183,21 +168,17 @@ } } } - - onClicked: { - - if (startTime == 0 && flag == 0) { + if (startTime == 0 && startButtonClicked == false) { Activity.resetvalue() start_button.text = qsTr(" START ") - time.text = qsTr(" Your timer started...") + time.text = qsTr(" Your Timer Started...") startTime = new Date().getTime() - flag = 1 + startButtonClicked = true } } } - GCText { id: score font.pointSize: 20 @@ -205,10 +186,9 @@ font.bold: true anchors.bottom: time.top anchors.right: parent.right - anchors { - bottomMargin: 15 - rightMargin: 150 + bottomMargin: bar.height * 0.09 + rightMargin: bar.height * 1.6 } Layout.alignment: Qt.AlignCenter } @@ -221,7 +201,7 @@ anchors.bottom: start_button.top anchors.right: parent.right anchors { - bottomMargin: 30 + bottomMargin: bar.height * 0.3 rightMargin: 130 } text: qsTr("--") @@ -234,7 +214,6 @@ content: Component { Item { height: column.height - Column { id: column spacing: 10 @@ -259,18 +238,14 @@ background.easyMode = (dataToSave["mode"] === "true"); } } - onSaveData: { dataToSave = { "mode": "" + background.easyMode } } - onClose: home() } - - DialogHelp { id: dialogHelp onClose: home() @@ -299,5 +274,4 @@ Component.onCompleted: win.connect(Activity.nextLevel) } } - } Index: src/activities/multiplication_tables/Question.qml =================================================================== --- src/activities/multiplication_tables/Question.qml +++ src/activities/multiplication_tables/Question.qml @@ -23,65 +23,45 @@ import "../../core" import GCompris 1.0 - - - -Row { - - id: row1 - +Flow { + id: questionItem property string url: "qrc:/gcompris/src/activities/multiplication_tables/resource/" property alias questionText: questionText.text property alias answerText: answerText.text property alias questionImage: question_image.source property alias questionImage_visible: question_image.opacity - - - - // 10 questions GCText { id: questionText - text:"Question" + text:qsTr("Question") font.pointSize: 20 font.bold: true color: "black" - } - - TextField { - id: answerText height: 35 font.pixelSize: 20 - - style: TextFieldStyle { - textColor: "#006060" - background: Rectangle { - radius: 5 - color: "orange" - implicitWidth: 100 - implicitHeight: 24 - border.color: "#333" - border.width: 1 - } + textColor: "#006060" + background: Rectangle { + radius: 5 + color: "orange" + implicitWidth: bar.height * 0.9 + implicitHeight: bar.height * 0.3 + border.color: "#333" + border.width: 1 } - + } } Image { id: question_image - width: 70;height: 50 + width: bar.height * 0.3 + height: bar.height * 0.3 fillMode: Image.PreserveAspectFit source: "qrc:/gcompris/src/activities/multiplication_tables/resource/wrong.svg" opacity: 0 } - } - - - - Index: src/activities/multiplication_tables/multiplication_tables.js =================================================================== --- src/activities/multiplication_tables/multiplication_tables.js +++ src/activities/multiplication_tables/multiplication_tables.js @@ -24,7 +24,6 @@ .import GCompris 1.0 as GCompris //for ApplicationInfo .import "qrc:/gcompris/src/core/core.js" as Core - var currentLevel = 0 var items var mode @@ -36,9 +35,7 @@ var answer = [] var score_cnt = 0 - function start(_items, _mode, _dataset, _url) { - items = _items mode = _mode dataset = _dataset.get() @@ -46,94 +43,55 @@ numberOfLevel = dataset.length currentLevel = 0 initLevel() - } - function stop() {} function initLevel() { - items.bar.level = currentLevel + 1 loadQuestions() - } - function loadQuestions() { - var i - question = dataset[currentLevel].questions answer = dataset[currentLevel].answers table = dataset[currentLevel].TableName - for (i = 0; i < question.length; i++) { - items.repeater.itemAt(i).questionText = qsTr("%1 = ").arg(question[i]) - } - } - function verifyAnswer() { - var j - for (j = 0; j < question.length; j++) { - if (items.repeater.itemAt(j).answerText.toString() == answer[j]) { - score_cnt = score_cnt + 1 items.repeater.itemAt(j).questionImage = url + "right.svg" items.repeater.itemAt(j).questionImage_visible = 1 - - - } else { - + } + else { items.repeater.itemAt(j).questionImage_visible = 1 items.repeater.itemAt(j).questionImage = url + "wrong.svg" - } - } - - items.score.text = qsTr("Your Score :- %1").arg(score_cnt.toString()) - } - - function resetvalue() { - var k - for (k = 0; k < question.length; k++) { - - - items.repeater.itemAt(k).answerText = "" + items.repeater.itemAt(k).answerText = qsTr("") items.repeater.itemAt(k).questionImage_visible = 0 - - score_cnt = 0 items.score.visible = false - } - score_cnt = 0 items.score.visible = false - } - - - function nextLevel() { - - if (numberOfLevel <= ++currentLevel) { currentLevel = 0 } Index: src/activities/multiplication_tables/multiplicationtables_dataset.js =================================================================== --- src/activities/multiplication_tables/multiplicationtables_dataset.js +++ src/activities/multiplication_tables/multiplicationtables_dataset.js @@ -16,7 +16,6 @@ */ function get() { return [ - { "TableName": "2", "questions": ["2 X 1", "2 X 2", "2 X 3", "2 X 4", "2 X 5", "2 X 6", "2 X 7", "2 X 8", "2 X 9", "2 X 10"],