Warning, /education/gcompris/src/activities/numbers-odd-even/resource/TutorialBase.qml is written in an unsupported language. File is not indexed.
0001 /* GCompris - TutorialBase.qml
0002 *
0003 * SPDX-FileCopyrightText: 2019 Deepak Kumar <deepakdk2431@gmail.com>
0004 *
0005 * Authors:
0006 * Deepak Kumar <deepakdk2431@gmail.com>
0007 *
0008 * SPDX-License-Identifier: GPL-3.0-or-later
0009 */
0010 import QtQuick 2.12
0011 import "../../../core"
0012
0013 Rectangle {
0014 id: tutorialRectangle
0015 anchors.fill: parent
0016 color: "#80FFFFFF"
0017 property alias firstNumber: firstNumber.textLabel
0018 property alias secondNumber: secondNumber.textLabel
0019 property alias message: message.text
0020 property bool isEvenExpected: true
0021
0022 GCText {
0023 id: question
0024 anchors {
0025 left: parent.left
0026 verticalCenter: parent.verticalCenter
0027 leftMargin: parent.height * 0.1
0028 centerIn: parent.Center
0029 top: parent.top
0030 topMargin: parent.height * 0.05
0031 }
0032 text: isEvenExpected ? qsTr("Choose the even number:") : qsTr("Choose the odd number:")
0033 fontSize: mediumSize
0034 color: "black"
0035 horizontalAlignment: Text.AlignLeft
0036 width: 1.8 * parent.width
0037 height: 1.8 * parent.height
0038 wrapMode: Text.WordWrap
0039 z: 2
0040 }
0041
0042 AnswerButton {
0043 id: firstNumber
0044 textLabel: ""
0045 anchors {
0046 top: parent.top
0047 topMargin: parent.height * 0.3
0048 left: parent.left
0049 leftMargin: parent.width * 0.2
0050 }
0051 width: parent.width * 0.2
0052 height: parent.height * 0.4
0053 isCorrectAnswer: (isEvenExpected && Number(textLabel) % 2 === 0) ||
0054 (!isEvenExpected && Number(textLabel) % 2 !== 0)
0055 onPressed: {
0056 if(isCorrectAnswer) {
0057 message.text = qsTr("Great")
0058 }
0059 else {
0060 if(isEvenExpected) {
0061 message.text = qsTr("There is an error: when divided by 2, %1 leaves a remainder of 1. Therefore this is an odd number.").arg(textLabel)
0062 }
0063 else {
0064 message.text = qsTr("There is an error: when divided by 2, %1 leaves a remainder of 0. Therefore this is an even number.").arg(textLabel)
0065 }
0066 }
0067 message.visible = true
0068 messageRectangle.visible = true
0069 }
0070 }
0071
0072 AnswerButton {
0073 id: secondNumber
0074 textLabel: ""
0075 anchors {
0076 top: parent.top
0077 topMargin: parent.height * 0.3
0078 left: parent.left
0079 leftMargin: parent.width * 0.65
0080 }
0081 width: parent.width * 0.2
0082 height: parent.height * 0.4
0083 isCorrectAnswer: (isEvenExpected && Number(textLabel) % 2 === 0) ||
0084 (!isEvenExpected && Number(textLabel) % 2 !== 0)
0085 onPressed: {
0086 if(isCorrectAnswer) {
0087 message.text = qsTr("Great")
0088 }
0089 else {
0090 if(isEvenExpected) {
0091 message.text = qsTr("There is an error: when divided by 2, %1 leaves a remainder of 1. Therefore this is an odd number.").arg(textLabel)
0092 }
0093 else {
0094 message.text = qsTr("There is an error: when divided by 2, %1 leaves a remainder of 0. Therefore this is an even number.").arg(textLabel)
0095 }
0096 }
0097 message.visible = true
0098 messageRectangle.visible = true
0099 }
0100 }
0101
0102 Rectangle {
0103 id: messageRectangle
0104 anchors {
0105 horizontalCenter: parent.horizontalCenter
0106 top: parent.top
0107 topMargin: parent.height * 0.75
0108 }
0109 opacity: 0.8
0110 radius: 10
0111 border.width: 6
0112 color: "white"
0113 border.color: "#87A6DD"
0114 width: parent.width * 1.15
0115 height: parent.height * 0.4
0116 visible: false
0117
0118 GCText {
0119 id: message
0120 anchors {
0121 centerIn: parent
0122 margins: parent.border.width+1
0123 }
0124 text: ""
0125 fontSizeMode: Text.Fit
0126 fontSize: smallSize
0127 color: "black"
0128 horizontalAlignment: Text.AlignHCenter
0129 verticalAlignment: Text.AlignVCenter
0130 width: parent.width
0131 height: parent.height
0132 wrapMode: Text.WordWrap
0133 z: 2
0134 }
0135 }
0136 }