diff --git a/src/activities/babymatch/resource/board/board1_0.qml b/src/activities/babymatch/resource/board/board1_0.qml index f64e185b2..f166f0f1a 100644 --- a/src/activities/babymatch/resource/board/board1_0.qml +++ b/src/activities/babymatch/resource/board/board1_0.qml @@ -1,74 +1,74 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Drag and Drop the items to make them match") - property variant levels : [ + property var levels : [ { "pixmapfile" : "images/lamp.svg", "x" : "0.2", "y" : "0.8", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/postpoint.svg", "x" : "0.5", "y" : "0.8", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/sailingboat.svg", "x" : "0.8", "y" : "0.8", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/light.svg", "x" : "0.2", "y" : "0.4", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/postcard.svg", "x" : "0.5", "y" : "0.4", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/fishingboat.svg", "x" : "0.8", "y" : "0.4", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 } ] } diff --git a/src/activities/babymatch/resource/board/board2_0.qml b/src/activities/babymatch/resource/board/board2_0.qml index 47a8cb543..3775cf2fe 100644 --- a/src/activities/babymatch/resource/board/board2_0.qml +++ b/src/activities/babymatch/resource/board/board2_0.qml @@ -1,72 +1,72 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels: [ + property var levels: [ { "pixmapfile" : "images/flowerpot.svg", "x" : "0.8", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/glass.svg", "x" : "0.2", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/eggpot.svg", "x" : "0.5", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/bottle.svg", "x" : "0.2", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/egg.svg", "x" : "0.5", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/flower.svg", "x" : "0.8", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 } ] } diff --git a/src/activities/babymatch/resource/board/board3_0.qml b/src/activities/babymatch/resource/board/board3_0.qml index 8e3f31ac9..23b17022b 100644 --- a/src/activities/babymatch/resource/board/board3_0.qml +++ b/src/activities/babymatch/resource/board/board3_0.qml @@ -1,73 +1,73 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels: [ + property var levels: [ { "pixmapfile" : "images/house.svg", "x" : "0.5", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/star.svg", "x" : "0.2", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/sailingboat.svg", "x" : "0.8", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/fusee.svg", "x" : "0.2", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/sofa.svg", "x" : "0.5", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/lighthouse.svg", "x" : "0.8", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 } ] } diff --git a/src/activities/babymatch/resource/board/board4_0.qml b/src/activities/babymatch/resource/board/board4_0.qml index c19ab4236..c0a8b1e1f 100644 --- a/src/activities/babymatch/resource/board/board4_0.qml +++ b/src/activities/babymatch/resource/board/board4_0.qml @@ -1,73 +1,73 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels: [ + property var levels: [ { "pixmapfile" : "images/rape.svg", "x" : "0.8", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/car.svg", "x" : "0.5", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/tree.svg", "x" : "0.2", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/apple.svg", "x" : "0.2", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/bicycle.svg", "x" : "0.5", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/carrot.svg", "x" : "0.8", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 } ] } diff --git a/src/activities/babymatch/resource/board/board5_0.qml b/src/activities/babymatch/resource/board/board5_0.qml index 19dd0ceca..675e04792 100644 --- a/src/activities/babymatch/resource/board/board5_0.qml +++ b/src/activities/babymatch/resource/board/board5_0.qml @@ -1,73 +1,73 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels: [ + property var levels: [ { "pixmapfile" : "images/postcard.svg", "x" : "0.2", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/tuxplane.svg", "x" : "0.5", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/minivan.svg", "x" : "0.8", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/pencil.svg", "x" : "0.2", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/tuxhelico.svg", "x" : "0.5", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/truck.svg", "x" : "0.8", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 } ] } diff --git a/src/activities/babymatch/resource/board/board6_0.qml b/src/activities/babymatch/resource/board/board6_0.qml index 2512578bb..fd52349bb 100644 --- a/src/activities/babymatch/resource/board/board6_0.qml +++ b/src/activities/babymatch/resource/board/board6_0.qml @@ -1,73 +1,73 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels: [ + property var levels: [ { "pixmapfile" : "images/crown.svg", "x" : "0.2", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/windflag5.svg", "x" : "0.5", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/football.svg", "x" : "0.8", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/castle.svg", "x" : "0.2", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/sailingboat.svg", "x" : "0.5", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/raquette.svg", "x" : "0.8", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 } ] } diff --git a/src/activities/babymatch/resource/board/board7_0.qml b/src/activities/babymatch/resource/board/board7_0.qml index c8cc04159..3c4f9bd16 100644 --- a/src/activities/babymatch/resource/board/board7_0.qml +++ b/src/activities/babymatch/resource/board/board7_0.qml @@ -1,73 +1,73 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels: [ + property var levels: [ { "pixmapfile" : "images/bell.svg", "x" : "0.5", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/lamp.svg", "x" : "0.2", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/lifebuoy.svg", "x" : "0.8", "y" : "0.7", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/sun.svg", "x" : "0.2", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/sound.svg", "x" : "0.5", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 }, { "pixmapfile" : "images/umbrella.svg", "x" : "0.8", "y" : "0.3", "type" : "SHAPE_BACKGROUND", "height" : 0.25, "width" : 0.25 } ] } diff --git a/src/activities/babyshapes/resource/board/board1_0.qml b/src/activities/babyshapes/resource/board/board1_0.qml index 82ca70395..9f718ff1f 100644 --- a/src/activities/babyshapes/resource/board/board1_0.qml +++ b/src/activities/babyshapes/resource/board/board1_0.qml @@ -1,95 +1,95 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Drag and Drop the items to make them match") - property variant levels: [ + property var levels: [ { "pixmapfile" : "food/baby_bottle.png", "x" : "0.5", "y" : "0.25" }, { "pixmapfile" : "food/orange.png", "x" : "0.2", "y" : "0.75" }, { "pixmapfile" : "food/cookie.png", "x" : "0.8", "y" : "0.75" }, { "pixmapfile" : "food/chocolate.png", "x" : "0.5", "y" : "0.75" }, { "pixmapfile" : "food/marmelade.png", "x" : "0.8", "y" : "0.25" }, { "pixmapfile" : "food/butter.png", "x" : "0.2", "y" : "0.25" }, { "pixmapfile" : "shapeBackground/T_butter.png", "x" : "0.2", "y" : "0.25", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_baby_bottle.png", "x" : "0.5", "y" : "0.25", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_marmelade.png", "x" : "0.8", "y" : "0.25", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_orange.png", "x" : "0.2", "y" : "0.75", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_chocolate.png", "x" : "0.5", "y" : "0.75", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_cookie.png", "x" : "0.8", "y" : "0.75", "type" : "SHAPE_BACKGROUND" } ] } diff --git a/src/activities/babyshapes/resource/board/board2_0.qml b/src/activities/babyshapes/resource/board/board2_0.qml index 6be77b40f..4cce2c4a2 100644 --- a/src/activities/babyshapes/resource/board/board2_0.qml +++ b/src/activities/babyshapes/resource/board/board2_0.qml @@ -1,93 +1,93 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels: [ + property var levels: [ { "pixmapfile" : "food/bread_slice.png", "x" : "0.5", "y" : "0.75" }, { "pixmapfile" : "food/banana.png", "x" : "0.8", "y" : "0.25" }, { "pixmapfile" : "food/yahourt.png", "x" : "0.5", "y" : "0.25" }, { "pixmapfile" : "food/suggar_box.png", "x" : "0.2", "y" : "0.75" }, { "pixmapfile" : "food/french_croissant.png", "x" : "0.2", "y" : "0.25" }, { "pixmapfile" : "food/baby_bottle.png", "x" : "0.8", "y" : "0.75" }, { "pixmapfile" : "shapeBackground/T_french_croissant.png", "x" : "0.2", "y" : "0.25", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_yahourt.png", "x" : "0.5", "y" : "0.25", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_banana.png", "x" : "0.8", "y" : "0.25", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_suggar_box.png", "x" : "0.2", "y" : "0.75", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_bread_slice.png", "x" : "0.5", "y" : "0.75", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_baby_bottle.png", "x" : "0.8", "y" : "0.75", "type" : "SHAPE_BACKGROUND" } ] } diff --git a/src/activities/babyshapes/resource/board/board3_0.qml b/src/activities/babyshapes/resource/board/board3_0.qml index 1396b0e91..67badd18f 100644 --- a/src/activities/babyshapes/resource/board/board3_0.qml +++ b/src/activities/babyshapes/resource/board/board3_0.qml @@ -1,93 +1,93 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels: [ + property var levels: [ { "pixmapfile" : "food/pear.png", "x" : "0.2", "y" : "0.75" }, { "pixmapfile" : "food/yahourt.png", "x" : "0.5", "y" : "0.75" }, { "pixmapfile" : "food/milk_shake.png", "x" : "0.8", "y" : "0.25" }, { "pixmapfile" : "food/grapefruit.png", "x" : "0.2", "y" : "0.25" }, { "pixmapfile" : "food/chocolate_cake.png", "x" : "0.5", "y" : "0.25" }, { "pixmapfile" : "food/milk_cup.png", "x" : "0.8", "y" : "0.75" }, { "pixmapfile" : "shapeBackground/T_grapefruit.png", "x" : "0.2", "y" : "0.25", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_chocolate_cake.png", "x" : "0.5", "y" : "0.25", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_milk_shake.png", "x" : "0.8", "y" : "0.25", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_pear.png", "x" : "0.2", "y" : "0.75", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_yahourt.png", "x" : "0.5", "y" : "0.75", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_milk_cup.png", "x" : "0.8", "y" : "0.75", "type" : "SHAPE_BACKGROUND" } ] } diff --git a/src/activities/babyshapes/resource/board/board4_0.qml b/src/activities/babyshapes/resource/board/board4_0.qml index ff53549da..715620984 100644 --- a/src/activities/babyshapes/resource/board/board4_0.qml +++ b/src/activities/babyshapes/resource/board/board4_0.qml @@ -1,93 +1,93 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels: [ + property var levels: [ { "pixmapfile" : "food/yahourt.png", "x" : "0.5", "y" : "0.75" }, { "pixmapfile" : "food/baby_bottle.png", "x" : "0.5", "y" : "0.25" }, { "pixmapfile" : "food/pear.png", "x" : "0.2", "y" : "0.75" }, { "pixmapfile" : "food/banana.png", "x" : "0.2", "y" : "0.25" }, { "pixmapfile" : "food/milk_cup.png", "x" : "0.8", "y" : "0.75" }, { "pixmapfile" : "food/round_cookie.png", "x" : "0.8", "y" : "0.25" }, { "pixmapfile" : "shapeBackground/T_banana.png", "x" : "0.2", "y" : "0.25", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_baby_bottle.png", "x" : "0.5", "y" : "0.25", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_round_cookie.png", "x" : "0.8", "y" : "0.25", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_pear.png", "x" : "0.2", "y" : "0.75", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_yahourt.png", "x" : "0.5", "y" : "0.75", "type" : "SHAPE_BACKGROUND" }, { "pixmapfile" : "shapeBackground/T_milk_cup.png", "x" : "0.8", "y" : "0.75", "type" : "SHAPE_BACKGROUND" } ] } diff --git a/src/activities/babyshapes/resource/board/board5_0.qml b/src/activities/babyshapes/resource/board/board5_0.qml index 13d00d4e9..c66cd81da 100644 --- a/src/activities/babyshapes/resource/board/board5_0.qml +++ b/src/activities/babyshapes/resource/board/board5_0.qml @@ -1,47 +1,47 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Hello! My name is Lock.") - property variant levels: [ + property var levels: [ { "pixmapfile" : "dog1/dog.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "dog1/dog1.png", "x" : "0.295", "y" : "0.745" }, { "pixmapfile" : "dog1/dog2.png", "x" : "0.793", "y" : "0.45" }, { "pixmapfile" : "dog1/dog3.png", "x" : "0.355", "y" : "0.25" } ] } diff --git a/src/activities/babyshapes/resource/board/board6_0.qml b/src/activities/babyshapes/resource/board/board6_0.qml index 18a414742..e3029d986 100644 --- a/src/activities/babyshapes/resource/board/board6_0.qml +++ b/src/activities/babyshapes/resource/board/board6_0.qml @@ -1,63 +1,63 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Lock with colored shapes.") property bool glow: false - property variant levels: [ + property var levels: [ { "pixmapfile" : "dog3/dog.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "dog3/dog1.png", "x" : "0.74", "y" : "0.771" }, { "pixmapfile" : "dog3/dog2.png", "x" : "0.199", "y" : "0.726" }, { "pixmapfile" : "dog3/dog3.png", "x" : "0.28", "y" : "0.303" }, { "pixmapfile" : "dog3/dog4.png", "x" : "0.859", "y" : "0.301" }, { "pixmapfile" : "dog3/dog5.png", "x" : "0.568", "y" : "0.206" }, { "pixmapfile" : "dog3/dog6.png", "x" : "0.473", "y" : "0.692" } ] } diff --git a/src/activities/babyshapes/resource/board/board7_0.qml b/src/activities/babyshapes/resource/board/board7_0.qml index 1e3df69b5..416d54b5a 100644 --- a/src/activities/babyshapes/resource/board/board7_0.qml +++ b/src/activities/babyshapes/resource/board/board7_0.qml @@ -1,51 +1,51 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property int numberOfSubLevel: 4 property string instruction: qsTr("Paul Gauguin, Arearea - 1892") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/Paul_Gauguin_006_background.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/Paul_Gauguin_006_chien.png", "dropAreaSize" : "10", "x" : "0.278", "y" : "0.807" }, { "pixmapfile" : "image/Paul_Gauguin_006_jeunes_filles.png", "dropAreaSize" : "10", "x" : "0.666", "y" : "0.46" }, { "pixmapfile" : "image/Paul_Gauguin_006_statue.png", "dropAreaSize" : "10", "x" : "0.19", "y" : "0.133" } ] } diff --git a/src/activities/babyshapes/resource/board/board7_1.qml b/src/activities/babyshapes/resource/board/board7_1.qml index c8b441d23..5f39fc8c8 100644 --- a/src/activities/babyshapes/resource/board/board7_1.qml +++ b/src/activities/babyshapes/resource/board/board7_1.qml @@ -1,56 +1,56 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Pieter Bruegel the Elder, The peasants wedding - 1568") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/Pieter_Bruegel_background.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/Pieter_Bruegel_service.png", "dropAreaSize" : "10", "x" : "0.684", "y" : "0.628" }, { "pixmapfile" : "image/Pieter_Bruegel_mur.png", "dropAreaSize" : "10", "x" : "0.866", "y" : "0.143" }, { "pixmapfile" : "image/Pieter_Bruegel_musicien.png", "dropAreaSize" : "10", "x" : "0.257", "y" : "0.453" }, { "pixmapfile" : "image/Pieter_Bruegel_fillette.png", "dropAreaSize" : "10", "x" : "0.354", "y" : "0.87" } ] } diff --git a/src/activities/babyshapes/resource/board/board7_2.qml b/src/activities/babyshapes/resource/board/board7_2.qml index 9f50fda22..dd55cb79a 100644 --- a/src/activities/babyshapes/resource/board/board7_2.qml +++ b/src/activities/babyshapes/resource/board/board7_2.qml @@ -1,62 +1,62 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("The Lady and the Unicorn - XVe century") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/lady_unicorn_background.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/lady_unicorn_5.png", "dropAreaSize" : "10", "x" : "0.07", "y" : "0.818" }, { "pixmapfile" : "image/lady_unicorn_4.png", "dropAreaSize" : "10", "x" : "0.256", "y" : "0.666" }, { "pixmapfile" : "image/lady_unicorn_2.png", "dropAreaSize" : "10", "x" : "0.462", "y" : "0.553" }, { "pixmapfile" : "image/lady_unicorn_3.png", "dropAreaSize" : "10", "x" : "0.724", "y" : "0.883" }, { "pixmapfile" : "image/lady_unicorn_1.png", "dropAreaSize" : "10", "x" : "0.877", "y" : "0.039" } ] } diff --git a/src/activities/babyshapes/resource/board/board7_3.qml b/src/activities/babyshapes/resource/board/board7_3.qml index 154f8aae1..d6880581e 100644 --- a/src/activities/babyshapes/resource/board/board7_3.qml +++ b/src/activities/babyshapes/resource/board/board7_3.qml @@ -1,62 +1,62 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Vincent van Gogh, Bedroom in Arles - 1888") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/Van_Gogh_0011_background.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/Van_Gogh_0011_5.png", "dropAreaSize" : "10", "x" : "0.695", "y" : "0.54" }, { "pixmapfile" : "image/Van_Gogh_0011_4.png", "dropAreaSize" : "10", "x" : "0.673", "y" : "0.068" }, { "pixmapfile" : "image/Van_Gogh_0011_3.png", "dropAreaSize" : "10", "x" : "0.491", "y" : "0.14" }, { "pixmapfile" : "image/Van_Gogh_0011_1.png", "dropAreaSize" : "10", "x" : "0.25", "y" : "0.434" }, { "pixmapfile" : "image/Van_Gogh_0011_2.png", "dropAreaSize" : "10", "x" : "0.086", "y" : "0.61" } ] } diff --git a/src/activities/babyshapes/resource/board/board7_4.qml b/src/activities/babyshapes/resource/board/board7_4.qml index f9c49004c..838c7ead7 100644 --- a/src/activities/babyshapes/resource/board/board7_4.qml +++ b/src/activities/babyshapes/resource/board/board7_4.qml @@ -1,68 +1,68 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Ambrosius Bosschaert the Elder, Flower Still Life - 1614") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/Bosschaert_04_background.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/Bosschaert_04_6.png", "dropAreaSize" : "10", "x" : "0.432", "y" : "0.732" }, { "pixmapfile" : "image/Bosschaert_04_5.png", "dropAreaSize" : "10", "x" : "0.553", "y" : "0.3" }, { "pixmapfile" : "image/Bosschaert_04_4.png", "dropAreaSize" : "10", "x" : "0.481", "y" : "0.486" }, { "pixmapfile" : "image/Bosschaert_04_3.png", "dropAreaSize" : "10", "x" : "0.217", "y" : "0.233" }, { "pixmapfile" : "image/Bosschaert_04_2.png", "dropAreaSize" : "10", "x" : "0.167", "y" : "0.582" }, { "pixmapfile" : "image/Bosschaert_04_1.png", "dropAreaSize" : "10", "x" : "0.653", "y" : "0.749" } ] } diff --git a/src/activities/braille_alphabets/BrailleChar.qml b/src/activities/braille_alphabets/BrailleChar.qml index b459b574b..06e29e62a 100644 --- a/src/activities/braille_alphabets/BrailleChar.qml +++ b/src/activities/braille_alphabets/BrailleChar.qml @@ -1,202 +1,202 @@ /* GCompris - BrailleChar.qml * * Copyright (C) 2014 Arkit Vora * * Authors: * Srishti Sethi (GTK+ version) * Arkit Vora (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import "braille_alphabets.js" as Activity import "../../core" import GCompris 1.0 Item { id: brailleCharItem height: dotWidth * 3 + grid.spacing * 4 property string brailleChar: "" property real dotWidth: width * 0.4 property real dotHeight: dotWidth property alias circles: circles property bool clickable property bool isLetter: brailleChar >= 'A' && brailleChar <= 'Z' - property variant brailleCodesLetter: { + property var brailleCodesLetter: { // For ASCII each letter, this represent the active dots in Braille. "A": [1], "B": [1, 2], "C": [1, 4], "D": [1, 4, 5], "E": [1, 5], "F": [1, 2, 4], "G": [1, 2, 4, 5], "H": [1, 2, 5], "I": [2, 4], "J": [2, 4, 5], "K": [1, 3], "L": [1, 2, 3], "M": [1, 3, 4], "N": [1, 3, 4, 5], "O": [1, 3, 5], "P": [1, 2, 3, 4], "Q": [1, 2, 3, 4, 5], "R": [1, 2, 3, 5], "S": [2, 3, 4], "T": [2, 3, 4, 5], "U": [1, 3, 6], "V": [1, 2, 3, 6], "W": [2, 4, 5, 6], "X": [1, 3, 4, 6], "Y": [1, 3, 4, 5, 6], "Z": [1, 3, 5, 6] } - property variant brailleCodesNumber: { + property var brailleCodesNumber: { // For ASCII each letter, this represent the active dots in Braille. "+": [3, 4, 6], "-": [3, 6], "*": [1, 6], "/": [3, 4], "#": [3, 4, 5, 6], "1": [1], "2" :[1, 2], "3": [1, 4], "4": [1, 4, 5], "5": [1, 5], "6": [1, 2, 4], "7": [1, 2, 4, 5], "8": [1, 2, 5], "9": [2, 4], "0" :[3, 5, 6] } - property variant brailleCodes: isLetter ? brailleCodesLetter : brailleCodesNumber + property var brailleCodes: isLetter ? brailleCodesLetter : brailleCodesNumber function updateDotsFromBrailleChar() { var dots = [] for(var car in brailleCodes) { if(car === brailleChar) { dots = brailleCodes[car] } } // Clear all the dots for(var i = 0; i < 6; i++) { circles.itemAt(i).state = "off" } for(var i in dots) { circles.itemAt(i).state = "on" } } function updateBrailleCharFromDots() { var dots = [] for( var i = 0; i < 6; i++) { if(circles.itemAt(i).state === "on") dots.push(i + 1) } var stringifiedDots = JSON.stringify(dots) for(var car in brailleCodes) { if(JSON.stringify(brailleCodes[car]) === stringifiedDots) { brailleChar = car return } } brailleChar = "" } function clearLetter() { brailleChar = "" updateDotsFromBrailleChar() } function switchState(value) { circles.itemAt(value-1).switchState() } Grid { id: grid anchors.centerIn: brailleCharItem spacing: (brailleCharItem.width - brailleCharItem.dotWidth * 2) / 2 columns: 2 rows: 3 flow: Grid.TopToBottom Repeater { id: circles model: 6 Rectangle { id: incircle1 border.width: 2 * ApplicationInfo.ratio color: on ? "#e4421c" : "#f0f0f0" border.color: "#2a2a2a" width: dotWidth height: dotHeight radius: width * 0.5 property bool on: clickable ? false : click_on_off() function click_on_off() { var code = brailleCodes[brailleChar] if(!code) return false for(var i = 0; i < code.length; i++) { if(code[i] === index + 1) { return true } } return false } function switchState() { if (state == "on") { state = "off" } else { state = "on" } activity.audioEffects.play("qrc:/gcompris/src/core/resource/sounds/scroll.wav") // On touch screens we don't get the exit event. border.width = 2 * ApplicationInfo.ratio brailleCharItem.updateBrailleCharFromDots() } Behavior on color { ColorAnimation { duration: 200 } } GCText { id: numtext text: clickable ? modelData : "" anchors.left: index >= 3 ? incircle1.right : undefined anchors.right: index < 3 ? incircle1.left : undefined anchors.verticalCenter: incircle1.verticalCenter font.weight: Font.DemiBold font.pointSize: NaN // need to clear font.pointSize explicitly font.pixelSize: Math.min(30 * ApplicationInfo.ratio, Math.max(parent.height, 20)) anchors.margins: 10 } MouseArea { id : mouse1 enabled: clickable ? true : false anchors.fill: parent hoverEnabled: true onEntered: incircle1.border.width = 4 * ApplicationInfo.ratio onExited: incircle1.border.width = 2 * ApplicationInfo.ratio onClicked: { incircle1.switchState(); } } states: [ State { name: "on" PropertyChanges { target: incircle1 on: true } }, State { name: "off" PropertyChanges { target: incircle1 on: false } } ] } } } } diff --git a/src/activities/categorization/Categorization.qml b/src/activities/categorization/Categorization.qml index 7363ed35b..beb90aaa4 100644 --- a/src/activities/categorization/Categorization.qml +++ b/src/activities/categorization/Categorization.qml @@ -1,239 +1,239 @@ /* GCompris - categorization.qml * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import QtQuick.Controls 1.5 import GCompris 1.0 import "../../core" import "categorization.js" as Activity import "qrc:/gcompris/src/core/core.js" as Core import "." ActivityBase { id: activity onStart: focus = true onStop: {} property string boardsUrl: ":/gcompris/src/activities/categorization/resource/board/" property bool vert: background.width < background.height - property variant barAtStart + property var barAtStart pageComponent: Image { id: background source: "qrc:/gcompris/src/activities/guesscount/resource/backgroundW01.svg" anchors.fill: parent sourceSize.width: parent.width signal start signal stop Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } // Add here the QML items you need to access in javascript QtObject { id: items property Item main: activity.main property alias background: background property alias bar: bar property alias bonus: bonus property alias categoryReview: categoryReview property alias menuScreen: menuScreen property alias menuModel: menuScreen.menuModel property alias dialogActivityConfig: dialogActivityConfig property string mode: "easy" property bool instructionsVisible: true property bool categoryImageChecked: (mode === "easy" || mode === "medium") property bool scoreChecked: (mode === "easy" || mode === "expert") property bool iAmReadyChecked: (mode === "expert") property bool displayUpdateDialogAtStart: true property var details property bool categoriesFallback property alias file: file property var categories: directory.getFiles(boardsUrl) } function hideBar() { barAtStart = ApplicationSettings.isBarHidden; if(categoryReview.width > categoryReview.height) ApplicationSettings.isBarHidden = false; else ApplicationSettings.isBarHidden = true; } onStart: { Activity.init(items, boardsUrl) dialogActivityConfig.getInitialConfiguration() Activity.start() hideBar() } onStop: { dialogActivityConfig.saveDatainConfiguration() ApplicationSettings.isBarHidden = barAtStart; } MenuScreen { id: menuScreen File { id: file onError: console.error("File error: " + msg); } } Directory { id: directory } CategoryReview { id: categoryReview } ExclusiveGroup { id: configOptions } DialogActivityConfig { id: dialogActivityConfig content: Component { Column { id: column spacing: 5 width: dialogActivityConfig.width height: dialogActivityConfig.height property alias easyModeBox: easyModeBox property alias mediumModeBox: mediumModeBox property alias expertModeBox: expertModeBox GCDialogCheckBox { id: easyModeBox width: column.width - 50 text: qsTr("Instructions and score visible") checked: (items.mode == "easy") ? true : false exclusiveGroup: configOptions onCheckedChanged: { if(easyModeBox.checked) { items.mode = "easy" menuScreen.iAmReady.visible = false } } } GCDialogCheckBox { id: mediumModeBox width: easyModeBox.width text: qsTr("Instructions visible and score invisible") checked: (items.mode == "medium") ? true : false exclusiveGroup: configOptions onCheckedChanged: { if(mediumModeBox.checked) { items.mode = "medium" menuScreen.iAmReady.visible = false } } } GCDialogCheckBox { id: expertModeBox width: easyModeBox.width text: qsTr("Instructions invisible and score visible") checked: (items.mode == "expert") ? true : false exclusiveGroup: configOptions onCheckedChanged: { if(expertModeBox.checked) { items.mode = "expert" menuScreen.iAmReady.visible = true } } } } } onLoadData: { if(dataToSave && dataToSave["mode"]) items.mode = dataToSave["mode"] if(dataToSave && dataToSave["displayUpdateDialogAtStart"]) items.displayUpdateDialogAtStart = (dataToSave["displayUpdateDialogAtStart"] == "true") ? true : false } onSaveData: { dataToSave["data"] = Activity.categoriesToSavedProperties(dataToSave) dataToSave["mode"] = items.mode dataToSave["displayUpdateDialogAtStart"] = items.displayUpdateDialogAtStart ? "true" : "false" } onClose: home() } DialogHelp { id: dialogHelp onClose: home() } Bar { id: bar content: menuScreen.started ? withConfig : withoutConfig property BarEnumContent withConfig: BarEnumContent { value: help | home | config } property BarEnumContent withoutConfig: BarEnumContent { value: home | level } onPreviousLevelClicked: Activity.previousLevel() onNextLevelClicked: Activity.nextLevel() onHelpClicked: { displayDialog(dialogHelp) } onHomeClicked: { if(items.menuScreen.started) activity.home() else if(items.categoryReview.started) Activity.launchMenuScreen() } onConfigClicked: { dialogActivityConfig.active = true displayDialog(dialogActivityConfig) } } Bonus { id: bonus Component.onCompleted: win.connect(Activity.nextLevel) } Loader { id: categoriesFallbackDialog sourceComponent: GCDialog { parent: activity.main message: qsTr("You don't have all the images for this activity. " + "Press Update to get the complete dataset. " + "Press the Cross to play with demo version or 'Never show this dialog later' if you want to never see again this dialog.") button1Text: qsTr("Update the image set") button2Text: qsTr("Never show this dialog later") onClose: items.categoriesFallback = false onButton1Hit: DownloadManager.downloadResource('data2/words/words.rcc') onButton2Hit: { items.displayUpdateDialogAtStart = false; dialogActivityConfig.saveDatainConfiguration() } } anchors.fill: parent focus: true active: items.categoriesFallback && items.displayUpdateDialogAtStart onStatusChanged: if (status == Loader.Ready) item.start() } } } diff --git a/src/activities/categorization/resource/board/category_alphabets.qml b/src/activities/categorization/resource/board/category_alphabets.qml index b4a44bd0a..cc2297832 100644 --- a/src/activities/categorization/resource/board/category_alphabets.qml +++ b/src/activities/categorization/resource/board/category_alphabets.qml @@ -1,89 +1,89 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property bool isEmbedded: true property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/src/activities/categorization/resource/images/alphabets/" - property variant levels: [ + property var levels: [ { "name": qsTr("Alphabets"), "image": imagesPrefix + "alphabets.jpg", "content": [ { "instructions": qsTr("Place the LETTERS to the right and other objects to the left"), "image": imagesPrefix + "upperA.svg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/src/activities/", "good": ["categorization/resource/images/alphabets/upperA.svg","categorization/resource/images/alphabets/lowerP.svg","categorization/resource/images/alphabets/upperR.svg", "categorization/resource/images/alphabets/lowerT.svg","categorization/resource/images/alphabets/lowerD.svg", "categorization/resource/images/alphabets/lowerE.svg"], "bad": ["categorization/resource/images/numbers/01.svg","categorization/resource/images/numbers/06.svg","categorization/resource/images/numbers/12.svg","lang/resource/words_sample/coconut.png", "lang/resource/words_sample/dolphin.png","lang/resource/words_sample/kiwi.png"] }, { "instructions": qsTr("Place the LETTERS to the right and other objects to the left"), "image": imagesPrefix + "upperA.svg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/src/activities/", "good": ["categorization/resource/images/alphabets/lowerB.svg","categorization/resource/images/alphabets/upperV.svg","categorization/resource/images/alphabets/lowerE.svg","categorization/resource/images/alphabets/lowerN.svg","categorization/resource/images/alphabets/upperM.svg", "categorization/resource/images/alphabets/upperO.svg"], "bad": ["categorization/resource/images/numbers/06.svg","categorization/resource/images/numbers/16.svg","lang/resource/words_sample/mouse.png","lang/resource/words_sample/orange.png","lang/resource/words_sample/raspberry.png","lang/resource/words_sample/tongue.png"] }, { "instructions": qsTr("Place the LETTERS to the right and other objects to the left"), "image": imagesPrefix + "upperA.svg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/src/activities/", "good": [ "categorization/resource/images/alphabets/upperF.svg","categorization/resource/images/alphabets/lowerK.svg","categorization/resource/images/alphabets/lowerR.svg","categorization/resource/images/alphabets/upperQ.svg","categorization/resource/images/alphabets/lowerB.svg"], bad: ["categorization/resource/images/numbers/07.svg","categorization/resource/images/numbers/00.svg","lang/resource/words_sample/turtle.png","lang/resource/words_sample/melon.png"] }, { "instructions": qsTr("Place the LETTERS to the right and other objects to the left"), "image": imagesPrefix + "upperA.svg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/src/activities/", "good": ["categorization/resource/images/alphabets/lowerH.svg","categorization/resource/images/alphabets/upperL.svg","categorization/resource/images/alphabets/upperN.svg","categorization/resource/images/alphabets/upperS.svg"], "bad": ["lang/resource/words_sample/pear.png","lang/resource/words_sample/butterfly.png","categorization/resource/images/numbers/08.svg", "categorization/resource/images/numbers/11.svg","categorization/resource/images/numbers/01.svg"] }, { "instructions": qsTr("Place the LETTERS to the right and other objects to the left"), "image": imagesPrefix + "upperA.svg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/src/activities/", "good": ["categorization/resource/images/alphabets/lowerG.svg","categorization/resource/images/alphabets/lowerT.svg","categorization/resource/images/alphabets/lowerK.svg"], "bad": ["categorization/resource/images/numbers/08.svg","categorization/resource/images/numbers/10.svg", "lang/resource/words_sample/dog.png"] }, { "instructions": qsTr("Place the LETTERS to the right and other objects to the left"), "image": imagesPrefix + "upperA.svg", "maxNumberOfGood": 2, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/src/activities/", "good": ["categorization/resource/images/alphabets/upperD.svg","categorization/resource/images/alphabets/upperJ.svg"], "bad": ["lang/resource/words_sample/green.png","lang/resource/words_sample/plum.png","categorization/resource/images/numbers/09.svg","lang/resource/words_sample/cat.png"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_animals.qml b/src/activities/categorization/resource/board/category_animals.qml index 49083fc76..de621a615 100644 --- a/src/activities/categorization/resource/board/category_animals.qml +++ b/src/activities/categorization/resource/board/category_animals.qml @@ -1,117 +1,117 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject{ property bool isEmbedded: false property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/data/words/animals/" - property variant levels:[ + property var levels:[ { "type": "lesson", "name": qsTr("Animals"), "image": imagesPrefix + "animalsherd.jpg", "content": [ { "instructions": qsTr("Place the ANIMALS to the right and other objects to the left"), "image": imagesPrefix + "tiger.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["animals/baboon.jpg","animals/bosmutus.jpg","animals/camel.jpg","animals/cow.jpg","animals/dog.jpg","birds/bird10.jpg"], "bad": ["nature/nature5.jpg","householdGoods/chair.jpg","food/biryani.jpg","others/electricfan.jpg","others/clock.jpg","nature/nature10.jpg"] }, { "instructions": qsTr("Place the ANIMALS to the right and other objects to the left"), "image": imagesPrefix + "tiger.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["animals/lion.jpg","birds/bird7.jpg","birds/bird8.jpg","animals/mouse1.jpg","animals/opossum.jpg","animals/pig.jpg"], "bad": ["nature/nature3.jpg","food/milk.jpg","food/butter.jpg","fruits/apple.jpg","transport/rickshaw.jpg","transport/bus.jpg"] }, { "instructions": qsTr("Place the ANIMALS to the right and other objects to the left"), "image": imagesPrefix + "opossum.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["animals/snowcat.jpg","animals/spidermonkey.jpg","animals/squirrel.jpg","animals/squirrel1.jpg","animals/tasmaniandevil.jpg","birds/bird22.jpg"], "bad": ["transport/helicopter.jpg","nature/nature2.jpg","others/house.jpg","transport/plane2.jpg","plants/plant4.jpg","nature/nature5.jpg"] }, { "instructions": qsTr("Place the ANIMALS to the right and other objects to the left"), "image": imagesPrefix + "tortoise.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["animals/redeyedfrog.jpg","animals/scorpian.jpg","animals/sealion.jpg","animals/sheep.jpg","animals/snake.jpg"], "bad": ["fruits/grapes.jpg","others/broom1.jpg","transport/car1.jpg","food/icecream.jpg"] }, { "instructions": qsTr("Place the ANIMALS to the right and other objects to the left"), "image": imagesPrefix + "koala.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["animals/donkey.jpg","animals/elephant.jpg","insects/insect20.jpg","animals/tiger.jpg","animals/zebra.jpg"], "bad": ["vegetables/pumpkin.jpg","vegetables/carrots.jpg","transport/cycle.jpg","plants/tree3.jpg"] }, { "instructions": qsTr("Place the ANIMALS to the right and other objects to the left"), "image": imagesPrefix + "hedgehog.jpg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/", "good": ["animals/giraffe.jpg","birds/bird25.jpg","animals/hedgehog.jpg","insects/insect7.jpg"], "bad": ["vegetables/potato.jpg","transport/balloon.jpg","food/cheese.jpg","others/mobile.jpg","transport/bus1.jpg"] }, { "instructions": qsTr("Place the ANIMALS to the right and other objects to the left"), "image": imagesPrefix + "lion.jpg", "maxNumberOfGood": 3 , "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["animals/koala.jpg","animals/kodiak-bear.jpg","birds/bird27.jpg"], "bad": ["nature/nature6.jpg","transport/ferry.jpg","food/eggs.jpg","food/hamburger.jpg"] }, { "instructions": qsTr("Place the ANIMALS to the right and other objects to the left"), "image": imagesPrefix + "pig.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["animals/tiger.jpg","animals/tortoise.jpg","animals/tortoise1.jpg"], "bad": ["transport/car1.jpg","fruits/papaya.jpg","food/hotdog.jpg"] }, { "instructions": qsTr("Place the ANIMALS to the right and other objects to the left"), "image": imagesPrefix + "snowcat.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["animals/porcupine.jpg","animals/cow.jpg","birds/bird29.jpg"], "bad": ["nature/nature8.jpg","food/macroni.jpg","others/house.jpg"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_birds.qml b/src/activities/categorization/resource/board/category_birds.qml index d3ef0594a..283e58cf0 100644 --- a/src/activities/categorization/resource/board/category_birds.qml +++ b/src/activities/categorization/resource/board/category_birds.qml @@ -1,117 +1,117 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject{ property bool isEmbedded: false property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/data/words/birds/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("Birds"), "image": imagesPrefix + "bird.jpg", "content": [ { "instructions": qsTr("Place the BIRDS to the right and other objects to the left"), "image": imagesPrefix + "bird.png", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["birds/parrot.jpg","birds/bird34.jpg","birds/bird23.jpg","birds/peacock.jpg","birds/rooster.jpg","birds/bird1.jpg"], "bad": ["animals/baboon.jpg","animals/bosmutus.jpg","animals/camel.jpg","animals/cow.jpg","others/sharpnerandpencil.jpg","transport/cycle.jpg"] }, { "instructions": qsTr("Place the BIRDS to the right and other objects to the left"), "image": imagesPrefix + "bird.png", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["birds/bird2.jpg","birds/bird3.jpg","birds/bird4.jpg","birds/bird5.jpg","birds/bird6.jpg","birds/bird7.jpg"], "bad": ["animals/dog.jpg","animals/dolphin.jpg","animals/donkey.jpg","animals/elephant.jpg","others/mobile.jpg","transport/helicopter1.jpg"] }, { "instructions": qsTr("Place the BIRDS to the right and other objects to the left"), "image": imagesPrefix + "bird.png", "maxNumberOfGood": 5, "maxNumberOfBad": 7, "prefix": "qrc:/gcompris/data/words/", "good": ["birds/bird8.jpg","birds/bird9.jpg","birds/bird10.jpg","birds/bird11.jpg","birds/bird12.jpg"], "bad": ["plants/tree1.jpg","transport/train2.jpg","animals/giraffe.jpg","vegetables/spinaches.jpg","fruits/kiwi.jpg","insects/insect12.jpg","food/cereal.jpg"] }, { "instructions": qsTr("Place the BIRDS to the right and other objects to the left"), "image": imagesPrefix + "bird.png", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["birds/bird13.jpg","birds/bird14.jpg","birds/bird15.jpg","birds/bird16.jpg","birds/bird17.jpg"], "bad": ["animals/hare.jpg","animals/hedgehog.jpg","food/cheese.jpg","food/pizza.jpg"] }, { "instructions": qsTr("Place the BIRDS to the right and other objects to the left"), "image": imagesPrefix + "bird.png", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["birds/bird18.jpg","birds/bird19.jpg","birds/bird20.jpg","birds/bird21.jpg","birds/bird22.jpg"], "bad": ["animals/horse.jpg","animals/koala.jpg","food/milk.jpg","insects/insect5.jpg"] }, { "instructions": qsTr("Place the BIRDS to the right and other objects to the left"), "image": imagesPrefix + "bird.png", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/", "good": ["birds/bird23.jpg","birds/bird24.jpg","birds/bird25.jpg","birds/bird26.jpg"], "bad": ["animals/marsupialis.jpg","animals/mouse.jpg","others/pepsi.jpg","insects/insect16.jpg","food/milk.jpg"] }, { "instructions": qsTr("Place the BIRDS to the right and other objects to the left"), "image": imagesPrefix + "bird.png", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["birds/bird27.jpg","birds/bird28.jpg","birds/bird29.jpg"], "bad": ["animals/kodiak-bear.jpg","animals/krotiki.jpg","others/clock.jpg"] }, { "instructions": qsTr("Place the BIRDS to the right and other objects to the left"), "image": imagesPrefix + "bird.png", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["birds/bird30.jpg","birds/bird31.jpg","birds/bird32.jpg"], "bad": ["animals/mouse1.jpg","animals/pig.jpg","nature/nature5.jpg"] }, { "instructions": qsTr("Place the BIRDS to the right and other objects to the left"), "image": imagesPrefix + "bird.png", "maxNumberOfGood": 2, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["birds/bird33.jpg","birds/bird34.jpg"], "bad": ["animals/lion.jpg","plants/tree3.jpg","transport/balloon.jpg","householdGoods/refrigerator.jpg"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_colors.qml b/src/activities/categorization/resource/board/category_colors.qml index 3e212be1f..b784aa055 100644 --- a/src/activities/categorization/resource/board/category_colors.qml +++ b/src/activities/categorization/resource/board/category_colors.qml @@ -1,120 +1,120 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject{ property bool isEmbedded: false property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/data/words/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("Colors"), "image": imagesPrefix + "others/color2.png", "content": [ { "instructions": "Place the objects matching GREEN color to right and others to the left", "image": imagesPrefix + "green.png", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["artichoke.png","cabbage.png","cucumber.png","cactus.png","clover.png"], "bad": ["left.png","lobster.png","mail.png","post.png"] }, { "instructions": "Place the objects matching WHITE color to right and others to the left", "image": imagesPrefix + "white.png", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["milk.png","paper.png","dove.png","mail.png","egg.png", "bead.png"], "bad": ["flash.png","plum.png","potato.png","pumpkin.png","rabbit.png","kiwi.png"] }, { "instructions": "Place the objects matching PINK color to right and others to the left", "image": imagesPrefix + "pink.png", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["hair_dryer.png","flamingo.png","raspberry.png","pencil.png","flash.png"], "bad": ["ink.png","kiwi.png","ladybug.png","phone.png"] }, { "tags": ["red"], "instructions": "Place the objects matching RED color to right and others to the left", "image": imagesPrefix + "red.png", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["shapes/dice.svg","lobster.png","pair.png","ladybug.png","post.png"], "bad": ["shapes/halforange.svg","radio.png","ramp.png","wheat.png"] }, { "instructions": "Place the objects matching BROWN color to right and others to the left", "image": imagesPrefix + "brown.png", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["shapes/cookie.svg","date_fruit.png","chocolate.png","board.png","potato.png","kiwi.png"], "bad": ["cheese.png","bright.png","shapes/conehat.svg","dolphin.png","shapes/cd.svg","drip.png"] }, { "instructions": "Place the objects matching PURPLE color to right and others to the left", "categorise": "PURPLE", "image": imagesPrefix + "others/purple.png", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["grape.png","eggplant.png","shapes/conehat.svg","phone.png","plum.png","ink.png"], "bad": ["bulb.png","bell.png","blackbird.png","umbrella.png","pumpkin.png","shapes/halfmoon.svg"] }, { "instructions": "Place the objects matching GREY color to right and others to the left", "image": imagesPrefix + "gray.png", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["chain.png","rabbit.png","ramp.png","dolphin.png","faucet.png","shapes/halfmoon.svg"], "bad": ["shapes/backcard.svg","radio.png","clover.png","left.png","flash.png","ink.png"] }, { "instructions": "Place the objects matching ORANGE color to right and others to the left", "image": imagesPrefix + "orange-color.png", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["pumpkin.png","shapes/halforange.svg","orange.png"], "bad": ["plum.png","potato.png","post.png"] }, { "instructions": "Place the objects matching YELLOW color to right and others to the left", "categorise":"YELLOW", "image": imagesPrefix + "yellow.png", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["anchor.png","cheese.png","bright.png","shapes/rectangle_led.svg","bulb.png","bell.png"], "bad": ["blackbird.png","pair.png","plum.png","potato.png","drip.png","ladybug.png"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_fishes.qml b/src/activities/categorization/resource/board/category_fishes.qml index 29616429f..56a9315ca 100644 --- a/src/activities/categorization/resource/board/category_fishes.qml +++ b/src/activities/categorization/resource/board/category_fishes.qml @@ -1,91 +1,91 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property bool isEmbedded: true property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/src/activities/categorization/resource/images/fishes/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("fishes"), "image": imagesPrefix + "fish20.jpg", "content": [ { "instructions": qsTr("Place the FISHES to the right and other objects to the left"), "image": imagesPrefix + "fish10.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["fishes/fish1.jpg","fishes/fish2.png","fishes/fish3.jpg","fishes/fish4.jpg","fishes/fish5.jpg","fishes/fish6.jpg"], "bad": ["monuments/beandenburgGate.jpg","monuments/burj.jpg","others/bulb.jpg","tools/cutingTool.jpg","others/knife.jpg","tools/multimeter.jpg"] }, { "instructions": qsTr("Place the FISHES to the right and other objects to the left"), "image": imagesPrefix + "fish13.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["fishes/fish7.jpg","fishes/fish8.jpg","fishes/fish9.jpg","fishes/fish10.jpg","fishes/fish11.jpg","fishes/fish12.jpg"], "bad": ["renewable/dam2.jpg","renewable/solar5.jpg","others/pillow.jpg","tools/plier2.jpg","tools/nailCutter.jpg","monuments/colosseum.jpg"] }, { "instructions": qsTr("Place the FISHES to the right and other objects to the left"), "image": imagesPrefix + "fish3.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["fishes/fish13.jpg","fishes/fish14.jpg","fishes/fish15.jpg","fishes/fish16.jpg","fishes/fish17.jpg"], "bad": ["others/bulb.jpg","others/chair.jpg","renewable/windmill.jpg","monuments/monument2.jpg"] }, { "instructions": qsTr("Place the FISHES to the right and other objects to the left"), "image": imagesPrefix + "fish16.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["fishes/fish18.jpg","fishes/fish19.jpg","fishes/fish20.jpg","fishes/fish21.jpg", "fishes/fish22.jpg"], "bad": ["others/plate.jpg","monuments/operaHouse.jpg","monuments/zimniPalace.jpg","renewable/geothermal.jpg"] }, { "instructions": qsTr("Place the FISHES to the right and other objects to the left"), "image": imagesPrefix + "fish20.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["fishes/fish23.jpg","fishes/fish24.jpg", "fishes/fish25.jpg"], "bad": ["monuments/monument3.jpg","others/pan.jpg","others/pencil.jpg"] }, { "instructions": qsTr("Place the FISHES to the right and other objects to the left"), "image": imagesPrefix + "fish25.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["fishes/fish26.jpg","fishes/fish27.jpg","fishes/fish28.jpg"], "bad": ["renewable/windmill13.jpg","renewable/geothermal.jpg","tools/scissors.jpg"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_food.qml b/src/activities/categorization/resource/board/category_food.qml index b53bb76b9..c2384e92f 100644 --- a/src/activities/categorization/resource/board/category_food.qml +++ b/src/activities/categorization/resource/board/category_food.qml @@ -1,90 +1,90 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject{ property bool isEmbedded: false property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/data/words/food/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("Food"), "image": imagesPrefix + "pizza.jpg", "content": [ { "instructions": qsTr("Place the FOOD ITEMS to the right and other objects to the left"), "image": imagesPrefix + "sweetBread.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["food/applepie.jpg","food/bananaNutBread.jpg","food/biryani.jpg","food/cereal.jpg","food/cheese.jpg","food/eggs.jpg"], "bad": ["nature/nature28.jpg","plants/plant2.jpg","nature/nature27.jpg","birds/bird1.jpg","nature/nature17.jpg","insects/insect10.jpg"] }, { "instructions": qsTr("Place the FOOD ITEMS to the right and other objects to the left"), "image": imagesPrefix + "pizza1.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["food/fish.jpg","food/frenchFries.jpg","food/friedEggs.jpg","food/grilledSandwich.jpg","food/hamburger.jpg","food/hotdog.jpg"], "bad": ["nature/nature26.jpg","birds/bird25.jpg","transport/cycle.jpg","insects/insect1.jpg","nature/nature24.jpg","others/fork.jpg"] }, { "instructions": qsTr("Place the FOOD ITEMS to the right and other objects to the left"), "image": imagesPrefix + "hotdog.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["food/icecream.jpg","food/cereal1.jpg","food/cheese1.jpg","food/kathiRoll.jpg","food/macroni.jpg"], "bad": ["animals/camel.jpg","animals/hare.jpg","insects/insect4.jpg","birds/bird5.jpg"] }, { "instructions": qsTr("Place the FOOD ITEMS to the right and other objects to the left"), "image": imagesPrefix + "frenchFries.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["food/MaozVegetariano.jpg","food/milk.jpg","food/bananaNutBread.jpg","food/pitaBread.jpg","food/pizza.jpg"], "bad": ["birds/bird6.jpg","others/street.jpg","householdGoods/iron2.jpg","insects/insect8.jpg"] }, { "instructions": qsTr("Place the FOOD ITEMS to the right and other objects to the left"), "image": imagesPrefix + "hamburger.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["food/icecream1.jpg","food/riceBeans.jpg","food/scrambledEggsVeggies.jpg"], "bad": ["nature/nature21.jpg","plants/tree2.jpg","householdGoods/bed.jpg"] }, { "instructions": qsTr("Place the FOOD ITEMS to the right and other objects to the left"), "image": imagesPrefix + "milk.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["food/skimmedMilk.jpg","food/steak.jpg","food/sweetBread.jpg"], "bad": ["birds/bird4.jpg","animals/koala.jpg","transport/ferry.jpg"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_fruits.qml b/src/activities/categorization/resource/board/category_fruits.qml index c9cef4fc0..e19f7f6c3 100644 --- a/src/activities/categorization/resource/board/category_fruits.qml +++ b/src/activities/categorization/resource/board/category_fruits.qml @@ -1,108 +1,108 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject{ property bool isEmbedded: false property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/src/activities/lang/resource/words_sample/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("Fruits"), "image": "qrc:/gcompris/data/words/fruits/fruitsalad.jpg", "content": [ { "instructions": qsTr("Place the FRUITS to the right and other objects to the left"), "image": imagesPrefix + "fruit.png", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["fruits/apple.jpg","fruits/apricot.jpg","fruits/banana.jpg","fruits/berries.jpg","fruits/billberries.jpg","fruits/cherries.jpg"], "bad": ["vegetables/batatadoce.jpg","vegetables/bittergourd.jpg","vegetables/blackchillies.jpg","vegetables/aubergine.jpg","others/house.jpg","others/street.jpg"], }, { "instructions": qsTr("Place the FRUITS to the right and other objects to the left"), "image": imagesPrefix + "fruit.png", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["fruits/cranberries.jpg","fruits/feiji.jpg","fruits/kiwi.jpg","fruits/lemon.jpg","fruits/litchi.jpg","fruits/mango.jpg"], "bad": ["vegetables/garlic.jpg","vegetables/carrots.jpg","vegetables/cauliflower.jpg","vegetables/chillies.jpg","others/spoon.jpg","others/fork.jpg"] }, { "instructions": qsTr("Place the FRUITS to the right and other objects to the left"), "image": imagesPrefix + "fruit.png", "maxNumberOfGood": 5, "maxNumberOfBad": 7, "prefix": "qrc:/gcompris/data/words/", "good": ["fruits/mirabellen.jpg","fruits/nectarine.jpg","fruits/papaya.jpg","fruits/peach.jpg","fruits/pineapple.jpg"], "bad": ["vegetables/chineseradish.jpg","vegetables/cucumber.jpg","food/cereal.jpg","food/macroni.jpg","food/hamburger.jpg","transport/cycle.jpg","transport/car1.jpg"] }, { "instructions": qsTr("Place the FRUITS to the right and other objects to the left"), "image": imagesPrefix + "fruit.png", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/", "good": ["fruits/plum.jpg","fruits/stackelberry.jpg","fruits/tyttberries.jpg","fruits/strwaberry.jpg"], "bad": ["vegetables/dahuisi.jpg","others/mobile.jpg","vegetables/fid.jpg","food/eggs.jpg","food/icecream.jpg"] }, { "instructions": qsTr("Place the FRUITS to the right and other objects to the left"), "image": imagesPrefix + "fruit.png", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/", "good": ["fruits/fruitsalad.jpg","fruits/guava.jpg","fruits/grapes.jpg","fruits/litchi.jpg"], "bad": ["vegetables/pumpkin.jpg","transport/bus.jpg","food/milk.jpg","food/cheese.jpg","food/butter.jpg"] }, { "instructions": qsTr("Place the FRUITS to the right and other objects to the left"), "image": imagesPrefix + "fruit.png", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["fruits/pear.jpg","fruits/pyrusmalus.jpg","fruits/pineapple.jpg"], "bad": ["vegetables/radish.jpg","food/popcorn.jpg","others/street.jpg"] }, { "instructions": qsTr("Place the FRUITS to the right and other objects to the left"), "image": imagesPrefix + "fruit.png", "maxNumberOfGood": 3 , "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["fruits/peach.jpg","fruits/tyttberries.jpg","fruits/papaya.jpg"], "bad": ["vegetables/spinach.jpg","food/hotdog.jpg", "food/milk.jpg"] }, { "instructions": qsTr("Place the FRUITS to the right and other objects to the left"), "image": imagesPrefix + "fruit.png", "maxNumberOfGood": 2, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["fruits/mango.jpg","fruits/strwaberry.jpg"], "bad": ["others/pencil.jpg","vegetables/onion.jpg","food/cheese.jpg","food/water.jpg"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_household_goods.qml b/src/activities/categorization/resource/board/category_household_goods.qml index 8337502dc..a2342e225 100644 --- a/src/activities/categorization/resource/board/category_household_goods.qml +++ b/src/activities/categorization/resource/board/category_household_goods.qml @@ -1,163 +1,163 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject{ property bool isEmbedded: false property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/data/words/householdGoods/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("Household goods"), "image": imagesPrefix + "utensils.jpg", "content": [ { "instructions": qsTr("Place the HOUSEHOLD GOODS to the right and other objects to the left"), "image":imagesPrefix + "oven.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["householdGoods/bedsheet.jpg","householdGoods/blender.png","householdGoods/breadtoaster.jpg", "householdGoods/canOpener.jpg","householdGoods/bathtub.jpg","householdGoods/bed.jpg"], "bad": ["food/eggs.jpg","food/milk.jpg","food/riceBeans.jpg","transport/metro.jpg","transport/plane.jpg","fruits/apple.jpg"] }, { "instructions": qsTr("Place the HOUSEHOLD GOODS to the right and other objects to the left"), "image": imagesPrefix + "dressingtable.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": [ "householdGoods/almirah.jpg","householdGoods/coffeeMaker.jpg","householdGoods/laptop.jpg","householdGoods/bookshelf.jpg","householdGoods/chair.jpg","householdGoods/chest.jpg"], "bad": ["transport/ship1.jpg","nature/nature5.jpg","fruits/papaya.jpg","food/hamburger.jpg","transport/ship.jpg","others/street.jpg"] }, { "instructions": qsTr("Place the HOUSEHOLD GOODS to the right and other objects to the left"), "image":imagesPrefix + "radio.jpg", "maxNumberOfGood": 7, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/", "good": ["householdGoods/curtains.jpg","householdGoods/heater.jpg","householdGoods/stool.jpg","householdGoods/couch.jpg","householdGoods/crib.jpg","householdGoods/oven.jpg","householdGoods/almirah.jpg"], "bad": ["others/house.jpg","transport/rocket1.jpg","transport/train4.jpg","insects/insect16.jpg","birds/bird14.jpg"] }, { "instructions": qsTr("Place the HOUSEHOLD GOODS to the right and other objects to the left"), "image":imagesPrefix + "sewingMachine.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["householdGoods/quilt.jpg","householdGoods/iron.jpg","householdGoods/bed2.jpg","householdGoods/couch2.jpg","householdGoods/diningtable.jpg","householdGoods/coffeeMaker1.jpg"], "bad": ["transport/ferry1.jpg","vegetables/mushroom.jpg","insects/insect22.jpg","birds/bird5.jpg","food/friedEggs.jpg","food/MaozVegetariano.jpg"] }, { "instructions": qsTr("Place the HOUSEHOLD GOODS to the right and other objects to the left"), "image": imagesPrefix + "bed.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["householdGoods/almirah1.jpg","householdGoods/radio.jpg","householdGoods/chair2.jpg","householdGoods/stool2.jpg","householdGoods/electricBlanket.jpg","householdGoods/refrigerator1.jpg"], "bad": ["birds/bird2.jpg","birds/bird5.jpg","food/macroni.jpg","transport/exchanger.jpg","vegetables/potato.jpg","others/pepsi.jpg"] }, { "instructions": qsTr("Place the HOUSEHOLD GOODS to the right and other objects to the left"), "image":imagesPrefix + "heater.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["householdGoods/television.jpg","householdGoods/toaster.jpg","householdGoods/curtains1.jpg","householdGoods/coffeeMaker2.jpg","householdGoods/iron1.jpg"], "bad": ["nature/nature14.jpg","food/pizza1.jpg","fruits/mango.jpg","vegetables/spinach.jpg"] }, { "instructions": qsTr("Place the HOUSEHOLD GOODS to the right and other objects to the left"), "image":imagesPrefix + "ac.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["householdGoods/heater1.jpg","householdGoods/oven1.jpg","householdGoods/radio1.jpg","householdGoods/electricBlanket.jpg","householdGoods/bathtub.jpg"], "bad": ["vegetables/zucchini.jpg","others/street.jpg","transport/helicopter.jpg","plants/tree2.jpg"] }, { "instructions": qsTr("Place the HOUSEHOLD GOODS to the right and other objects to the left"), "image":imagesPrefix + "breadtoaster.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["householdGoods/ac.jpg","householdGoods/iron2.jpg","householdGoods/toaster.jpg", "householdGoods/sewingMachine1.jpg", "householdGoods/vacuumCleaner.jpg"], "bad": ["food/hotdog.jpg","animals/cow.jpg","birds/bird25.jpg","insects/insect14.jpg"] }, { "instructions": qsTr("Place the HOUSEHOLD GOODS to the right and other objects to the left"), "image": imagesPrefix + "bathtub.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["householdGoods/bed1.jpg","householdGoods/lamp.jpg","householdGoods/chair3.jpg", "householdGoods/refrigerator2.jpg","householdGoods/towels.jpg"], "bad": ["transport/bus.jpg","animals/elephant.jpg","insects/insect5.jpg","others/street.jpg"] }, { "instructions": qsTr("Place the HOUSEHOLD GOODS to the right and other objects to the left"), "image": imagesPrefix + "stool.jpg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/", "good": ["householdGoods/chest1.jpg","householdGoods/diningtable1.jpg","householdGoods/laptop.jpg","householdGoods/sewingMachine.jpg"], "bad": ["animals/kodiak-bear.jpg","animals/sealion.jpg","transport/plane.jpg","food/frenchFries.jpg","others/house.jpg"] }, { "instructions": qsTr("Place the HOUSEHOLD GOODS to the right and other objects to the left"), "image": imagesPrefix + "almirah.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["householdGoods/couch2.jpg","householdGoods/refrigerator.jpg","householdGoods/ac1.jpg"], "bad": ["insects/insect18.jpg","transport/car1.jpg","animals/dog.jpg"] }, { "instructions": qsTr("Place the HOUSEHOLD GOODS to the right and other objects to the left"), "image":imagesPrefix + "coffeeMaker2.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["householdGoods/heater2.jpg","householdGoods/dressingtable.jpg","householdGoods/stool2.jpg"], "bad": ["animals/lion.jpg","vegetables/aubergine.jpg","nature/nature12.jpg"] }, { "instructions": qsTr("Place the HOUSEHOLD GOODS to the right and other objects to the left"), "image": imagesPrefix + "chest.jpg", "maxNumberOfGood": 2, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["householdGoods/chair5.jpg","householdGoods/lamp1.JPG"], "bad": ["vegetables/fid.jpg","animals/koala.jpg","transport/ferry.jpg","others/broom1.jpg"] }, { "instructions": qsTr("Place the HOUSEHOLD GOODS to the right and other objects to the left"), "image":imagesPrefix + "heater1.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["householdGoods/ac2.JPG","householdGoods/vacuumCleaner.jpg","householdGoods/sewingMachine2.jpg"], "bad": ["insects/insect15.jpg","vegetables/potato.jpg","nature/nature13.jpg"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_insects.qml b/src/activities/categorization/resource/board/category_insects.qml index e021cdee6..4b2656dc2 100644 --- a/src/activities/categorization/resource/board/category_insects.qml +++ b/src/activities/categorization/resource/board/category_insects.qml @@ -1,90 +1,90 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject{ property bool isEmbedded: false property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/data/words/insects/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("Insects"), "image": imagesPrefix + "insect6.jpg", "content": [ { "instructions": qsTr("Place the INSECTS to the right and other objects to the left"), "image": imagesPrefix + "insect15.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["insects/insect1.jpg","insects/insect2.jpg","insects/insect3.jpg","insects/insect4.jpg","insects/insect5.jpg","insects/insect6.jpg"], "bad": ["nature/nature4.jpg","plants/tree2.jpg","birds/bird8.jpg","birds/bird5.jpg","animals/giraffe.jpg","animals/horse.jpg"] }, { "instructions": qsTr("Place the INSECTS to the right and other objects to the left"), "image": imagesPrefix + "insect25.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["insects/insect7.jpg","insects/insect8.jpg","insects/insect9.jpg","insects/insect10.jpg","insects/insect11.jpg","insects/insect12.jpg"], "bad": ["food/eggs.jpg","birds/bird2.jpg","birds/bird3.jpg","animals/lion.jpg","animals/mouse.jpg","animals/elephant.jpg"] }, { "instructions": qsTr("Place the INSECTS to the right and other objects to the left"), "image": imagesPrefix + "insect6.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["insects/insect13.jpg","insects/insect14.jpg","insects/insect15.jpg","insects/insect16.jpg","insects/insect17.jpg"], "bad": ["transport/helicopter.jpg","householdGoods/oven.jpg","birds/bird8.jpg","birds/bird9.jpg"] }, { "instructions": qsTr("Place the INSECTS to the right and other objects to the left"), "image": imagesPrefix + "insect8.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["insects/insect18.jpg","insects/insect19.jpg","insects/insect20.jpg","insects/insect21.jpg","insects/insect22.jpg"], "bad": ["householdGoods/bed.jpg","others/mobile.jpg","birds/bird17.jpg","animals/hare.jpg"] }, { "instructions": qsTr("Place the INSECTS to the right and other objects to the left"), "image": imagesPrefix + "insect19.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["insects/insect23.jpg","insects/insect24.jpg","insects/insect25.jpg"], "bad": ["plants/tree3.jpg","birds/bird29.jpg","animals/pig.jpg"] }, { "instructions": qsTr("Place the INSECTS to the right and other objects to the left"), "image": imagesPrefix + "insect12.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["insects/insect26.jpg","insects/insect27.jpg","insects/insect12.jpg"], "bad": ["householdGoods/iron.jpg","birds/bird33.jpg","animals/sheep.jpg"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_living_beings.qml b/src/activities/categorization/resource/board/category_living_beings.qml index ff7b51ab4..547e3ce3d 100644 --- a/src/activities/categorization/resource/board/category_living_beings.qml +++ b/src/activities/categorization/resource/board/category_living_beings.qml @@ -1,99 +1,99 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject{ property bool isEmbedded: false property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/data/words/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("Living"), "image": imagesPrefix + "plants" + "/" + "plant1.jpg", "content": [ { "instructions": qsTr("Place the living beings to the right and other objects to the left"), "image":imagesPrefix + "plants" + "/" + "plant5.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["plants/plant2.jpg","plants/tree1.jpg","animals/donkey.jpg","animals/horse.jpg","birds/bird12.jpg","birds/bird13.jpg"], "bad": ["transport/balloon.jpg","transport/bus.jpg","others/house.jpg","others/clock.jpg","householdGoods/ac.jpg","others/pencil.jpg"] }, { "instructions": qsTr("Place the living beings to the right and other objects to the left"), "image":imagesPrefix + "insects" + "/" + "insect4.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["insects/insect16.jpg","birds/bird17.jpg","insects/insect22.jpg","insects/insect19.jpg","insects/insect23.jpg","birds/bird21.jpg"], "bad": ["transport/plane.jpg","transport/metro.jpg","householdGoods/refrigerator.jpg","householdGoods/chest1.jpg","food/grilledSandwich.jpg","others/mobile.jpg"] }, { "instructions": qsTr("Place the living beings to the right and other objects to the left"), "image":imagesPrefix + "birds" + "/" + "bird5.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good":["plants/plant1.jpg","plants/tree2.jpg","insects/insect3.jpg","insects/insect4.jpg","birds/bird1.jpg"], "bad": ["transport/rickshaw.jpg","householdGoods/bed.jpg","others/pepsi.jpg","householdGoods/canOpener.jpg"] }, { "instructions": qsTr("Place the living beings to the right and other objects to the left"), "image":imagesPrefix + "plants" +"/" + "tree2.jpg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/", "good": ["plants/plant3.jpg","plants/tree3.jpg","animals/snowcat.jpg","animals/pig.jpg"], "bad": ["transport/plane.jpg","food/frenchFries.jpg","food/water.jpg","others/street.jpg","householdGoods/bed.jpg"] }, { "instructions": qsTr("Place the living beings to the right and other objects to the left"), "image":imagesPrefix + "animals" + "/" + "opossum.jpg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/", "good": ["plants/tree4.jpg","animals/giraffe.jpg","insects/insect7.jpg","birds/bird12.jpg","birds/bird15.jpg"], "bad": ["householdGoods/heater.jpg","householdGoods/couch.jpg","transport/ship.jpg","others/fork.jpg","food/eggs.jpg"] }, { "instructions": qsTr("Place the living beings to the right and other objects to the left"), "image":imagesPrefix + "animals" + "/" + "hare.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["plants/plant4.jpg","animals/lion.jpg","birds/bird24.jpg"], "bad": ["transport/helicopter.jpg","householdGoods/iron.jpg","others/mobile.jpg"] }, { "instructions": qsTr("Place the living beings to the right and other objects to the left"), "image":imagesPrefix + "insects" + "/" + "insect5.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["plants/plant5.jpg","plants/plant6.jpg","animals/sheep.jpg"], "bad": ["transport/rocket.jpg","others/pepsi.jpg","food/hotdog.jpg"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_monuments.qml b/src/activities/categorization/resource/board/category_monuments.qml index 6175906a6..b6524a1f0 100644 --- a/src/activities/categorization/resource/board/category_monuments.qml +++ b/src/activities/categorization/resource/board/category_monuments.qml @@ -1,90 +1,90 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property bool isEmbedded: true property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/src/activities/categorization/resource/images/monuments/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("Monuments"), "image": imagesPrefix + "colosseum.jpg", "content": [ { "instructions": qsTr("Place the MONUMENTS to the right and other objects to the left"), "image": imagesPrefix + "victoriaMemorial.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["monuments/bayterek.jpg","monuments/burj.jpg","monuments/cathedral.jpg","monuments/colosseum.jpg","monuments/beandenburgGate.jpg","monuments/arcDeTriomphe.jpg"], "bad": ["renewable/windmill5.jpg","renewable/dam2.jpg","tools/tweezer.jpg","others/bulb.jpg","others/pan.jpg","others/knife.jpg"] }, { "instructions": qsTr("Place the MONUMENTS to the right and other objects to the left"), "image": imagesPrefix + "parthenon.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["monuments/christTheRedeemer.jpg","monuments/eiffelTower.jpg","monuments/empireState.jpg" ,"monuments/greatPyramid.jpg","monuments/greatWall.jpg","monuments/IndiaGate.jpg"], "bad": ["fishes/fish3.jpg","fishes/fish5.jpg","renewable/dam2.jpg","others/spoons.jpg","others/igloo.jpg","tools/measuringTape.jpg"] }, { "instructions": qsTr("Place the MONUMENTS to the right and other objects to the left"), "image": imagesPrefix + "monument2.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["monuments/jucheTower.jpg","monuments/kutubMinar.jpg","monuments/leaningTowerOfPisa.jpg" ,"monuments/leninMuseum.jpg","monuments/monument1.jpg"], "bad": ["fishes/fish7.jpg","fishes/fish16.jpg","tools/hammer4.jpg","tools/sprinkler.jpg"] }, { "instructions": qsTr("Place the MONUMENTS to the right and other objects to the left"), "image": imagesPrefix + "greatPyramid.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["monuments/mountRushmore.jpg","monuments/operaHouse.jpg","monuments/parthenon.jpg","monuments/statueOfLiberty.jpg","monuments/tajMahal.jpg"], "bad": ["renewable/solar2.jpg","renewable/geothermal.jpg","tools/scissor.jpg","tools/stripper1.png"] }, { "instructions": qsTr("Place the MONUMENTS to the right and other objects to the left"), "image": imagesPrefix + "beandenburgGate.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["monuments/usCapitol.jpg","monuments/victoriaMemorial.jpg","monuments/zimniPalace.jpg"], "bad": ["tools/plier2.jpg","others/pillow.jpg","renewable/solar5.jpg"] }, { "instructions": qsTr("Place the MONUMENTS to the right and other objects to the left"), "image": imagesPrefix + "IndiaGate.jpg", "maxNumberOfGood": 2, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["monuments/monument2.jpg","monuments/monument3.jpg"], "bad": ["others/volleyball.jpg","tools/sickle.jpg","others/chair.jpg","renewable/dam4.jpg"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_nature.qml b/src/activities/categorization/resource/board/category_nature.qml index c5fde4d92..bd9ccea40 100644 --- a/src/activities/categorization/resource/board/category_nature.qml +++ b/src/activities/categorization/resource/board/category_nature.qml @@ -1,108 +1,108 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject{ property bool isEmbedded: false property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/data/words/nature/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("Nature"), "image": imagesPrefix + "nature7.jpg", "content": [ { "instructions": qsTr("Place the NATURE images to the right and other objects to the left"), "image": imagesPrefix + "nature25.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["nature/nature1.jpg","nature/nature2.jpg","nature/nature3.jpg","nature/nature4.jpg","nature/nature5.jpg","nature/nature6.jpg"], "bad": ["transport/train3.jpg","others/spoon.jpg","transport/bus.jpg","others/clock.jpg","food/hamburger.jpg","food/macroni.jpg"] }, { "instructions": qsTr("Place the NATURE images to the right and other objects to the left"), "image": imagesPrefix + "nature28.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["nature/nature7.jpg","nature/nature8.jpg","nature/nature9.jpg","nature/nature10.jpg", "nature/nature11.jpg","nature/nature12.jpg"], "bad": ["fruits/mango.jpg","vegetables/onion.jpg","transport/cycle.jpg","others/fork.jpg","food/riceBeans.jpg","others/pepsi.jpg"] }, { "instructions": qsTr("Place the NATURE images to the right and other objects to the left"), "image": imagesPrefix + "nature22.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["nature/nature13.jpg","nature/nature14.jpg","nature/nature15.jpg","nature/nature16.jpg","nature/nature17.jpg"], "bad": ["transport/autorickshaw.jpg","transport/bulletTrain.jpg","householdGoods/chest.jpg","others/broom1.jpg"] }, { "instructions": qsTr("Place the NATURE images to the right and other objects to the left"), "image": imagesPrefix + "nature2.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["nature/nature18.jpg","nature/nature19.jpg","nature/nature20.jpg","nature/nature21.jpg","nature/nature22.jpg"], "bad": ["transport/train5.jpg","transport/tram1.jpg","others/mobile.jpg","others/electricfan.jpg"] }, { "instructions": qsTr("Place the NATURE images to the right and other objects to the left"), "image": imagesPrefix + "nature2.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["nature/nature29.jpg","nature/nature30.jpg","nature/nature31.jpg","nature/nature32.jpg","nature/nature33.jpg"], "bad": ["fruits/pineapple.jpg","food/pitaBread.jpg","householdGoods/bed.jpg","others/house.jpg"] }, { "instructions": qsTr("Place the NATURE images to the right and other objects to the left"), "image": imagesPrefix + "nature6.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["nature/nature23.jpg","nature/nature24.jpg","nature/nature25.jpg"], "bad": ["vegetables/zucchini.jpg","others/street.jpg","householdGoods/couch.jpg"] }, { "instructions": qsTr("Place the NATURE images to the right and other objects to the left"), "image": imagesPrefix + "nature14.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["nature/nature26.jpg","nature/nature27.jpg","nature/nature28.jpg"], "bad": ["food/MaozVegetariano.jpg","transport/rickshaw2.jpg","others/electricfan.jpg"] }, { "instructions": qsTr("Place the NATURE images to the right and other objects to the left"), "image": imagesPrefix + "nature14.jpg", "maxNumberOfGood": 2, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["nature/nature34.jpg","nature/nature35.jpg"], "bad": ["householdGoods/chair2.jpg","food/milk.jpg","others/weighingmachine.jpg","others/pencil.jpg"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_numbers.qml b/src/activities/categorization/resource/board/category_numbers.qml index 1e3c1a054..6f387a823 100644 --- a/src/activities/categorization/resource/board/category_numbers.qml +++ b/src/activities/categorization/resource/board/category_numbers.qml @@ -1,63 +1,63 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property bool isEmbedded: true property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/src/activities/categorization/resource/images/numbers/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("Numbers"), "image": "qrc:/gcompris/src/activities/categorization/resource/images/numbers/numbers.jpg", "content": [ { "instructions": qsTr("Place the NUMBERS to the right and other objects to the left"), "image": imagesPrefix + "00.svg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/src/activities/", "good": ["categorization/resource/images/numbers/12.svg","categorization/resource/images/numbers/02.svg","categorization/resource/images/numbers/00.svg","categorization/resource/images/numbers/08.svg","categorization/resource/images/numbers/10.svg","categorization/resource/images/numbers/04.svg"], "bad": ["categorization/resource/images/alphabets/upperA.svg","categorization/resource/images/alphabets/upperM.svg","categorization/resource/images/alphabets/lowerB.svg","categorization/resource/images/alphabets/upperS.svg","lang/resource/words_sample/fish.png","lang/resource/words_sample/color.png"] }, { "instructions": qsTr("Place the NUMBERS to the right and other objects to the left"), "image": imagesPrefix + "00.svg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/src/activities/", "good": ["categorization/resource/images/numbers/05.svg","categorization/resource/images/numbers/11.svg","categorization/resource/images/numbers/09.svg","categorization/resource/images/numbers/03.svg","categorization/resource/images/numbers/07.svg"], "bad": ["categorization/resource/images/alphabets/upperZ.svg","categorization/resource/images/alphabets/lowerH.svg","lang/resource/words_sample/mosquito.png","lang/resource/words_sample/fruit.png"] }, { "instructions": qsTr("Place the NUMBERS to the right and other objects to the left"), "image": imagesPrefix + "00.svg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/src/activities/", "good": ["categorization/resource/images/numbers/01.svg","categorization/resource/images/numbers/06.svg","categorization/resource/images/numbers/16.svg"], "bad": ["categorization/resource/images/alphabets/upperR.svg","categorization/resource/images/alphabets/lowerQ.svg", "lang/resource/words_sample/strawberry.png"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_odd_even.qml b/src/activities/categorization/resource/board/category_odd_even.qml index 391b920bf..36b0ccd58 100644 --- a/src/activities/categorization/resource/board/category_odd_even.qml +++ b/src/activities/categorization/resource/board/category_odd_even.qml @@ -1,91 +1,91 @@ /* GCompris * * Copyright (C) 2017 Rudra Nil Basu * * Authors: * Rudra Nil Basu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.0 QtObject { property bool isEmbedded: false property bool allowExpertMode: false property string imagesPrefix: "qrc:/gcompris/data/words/numbers/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("odd even numbers"), "image": imagesPrefix + "11.svg", "content": [ { "instructions": qsTr("Place the EVEN Numbers to the right and ODD Numbers to the left"), "image": imagesPrefix + "16.svg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/numbers/", "good": ["02.svg","04.svg","06.svg","08.svg", "10.svg","12.svg"], "bad": ["01.svg","03.svg","05.svg","07.svg","09.svg","11.svg"] }, { "instructions": qsTr("Place the EVEN Numbers to the right and ODD Numbers to the left"), "image": imagesPrefix + "02.svg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/numbers/", "good": ["even72.svg","even22.svg","even96.svg","even92.svg","even88.svg","even192.svg"], "bad": ["odd47.svg","15.svg","odd35.svg","odd23.svg","odd39.svg","odd111.svg"] }, { "instructions": qsTr("Place the EVEN Numbers to the right and ODD Numbers to the left"), "image": imagesPrefix + "02.svg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/numbers/", "good": ["even786.svg","even276.svg","even192.svg","even92.svg"], "bad": ["odd111.svg","odd145.svg","odd39.svg","odd353.svg","odd23.svg"] }, { "instructions": qsTr("Place the EVEN Numbers to the right and ODD Numbers to the left"), "image": imagesPrefix + "02.svg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/numbers/", "good": ["even22.svg","even88.svg","even192.svg","even786.svg","even72.svg"], "bad": ["odd47.svg","odd353.svg","odd35.svg","15.svg"] }, { "instructions": qsTr("Place the EVEN Numbers to the right and ODD Numbers to the left"), "image": imagesPrefix + "02.svg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/numbers//", "good": ["16.svg","10.svg","12.svg"], "bad": ["01.svg","07.svg","05.svg"] }, { "instructions": qsTr("Place the EVEN Numbers to the right and ODD Numbers to the left"), "image": imagesPrefix + "16.svg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/numbers/", "good": ["02.svg","08.svg","04.svg"], "bad": ["09.svg","03.svg","11.svg"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_renewable.qml b/src/activities/categorization/resource/board/category_renewable.qml index 6b8d13e66..b0866f66e 100644 --- a/src/activities/categorization/resource/board/category_renewable.qml +++ b/src/activities/categorization/resource/board/category_renewable.qml @@ -1,108 +1,108 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property bool isEmbedded: true property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/src/activities/categorization/resource/images/renewable/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("Renewable"), "image": imagesPrefix + "windmill12.jpg", "content": [ { "instructions": qsTr("Place the RENEWABLE energy sources to the right and other objects to the left"), "image": imagesPrefix + "windmill12.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["renewable/windmill.jpg","renewable/windmill1.jpg","renewable/windmill2.jpg","renewable/windmill3.jpg","renewable/windmill4.jpg","renewable/windmill5.jpg"], "bad": ["fishes/fish20.jpg","others/volleyball.jpg","monuments/burj.jpg","tools/nosePlier.jpg","others/pillow.jpg","fishes/fish10.jpg"] }, { "instructions": qsTr("Place the RENEWABLE energy sources to the right and other objects to the left"), "image": imagesPrefix + "solar8.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["renewable/solar1.jpg","renewable/solar2.jpg","renewable/solar3.jpg","renewable/solar4.jpg","renewable/solar5.jpg","renewable/solar6.jpg"], "bad": ["others/plate.jpg","fishes/fish25.jpg","tools/scissor1.jpg","monuments/christTheRedeemer.jpg","others/bucket.png","monuments/jucheTower.jpg"] }, { "instructions": qsTr("Place the RENEWABLE energy sources to the right and other objects to the left"), "image": imagesPrefix + "dam2.jpg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["renewable/dam1.jpg","renewable/dam2.jpg","renewable/dam3.jpg","renewable/dam4.jpg"], "bad": ["fishes/fish14.jpg","tools/wrench.jpg","tools/plier2.jpg","others/baseball.jpg","monuments/arcDeTriomphe.jpg"] }, { "instructions": qsTr("Place the RENEWABLE energy sources to the right and other objects to the left"), "image": imagesPrefix + "dam5.jpg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["renewable/windmill2.jpg","renewable/windmill13.jpg","renewable/solar7.jpg","renewable/solar3.jpg"], "bad": ["monuments/greatPyramid.jpg","others/buffetset.jpg","others/weighingMachine.jpg","tools/sprinkler.jpg","monuments/arcDeTriomphe.jpg"] }, { "instructions": qsTr("Place the RENEWABLE energy sources to the right and other objects to the left"), "image": imagesPrefix + "geothermal.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["renewable/dam5.jpg","renewable/geothermal.jpg","renewable/windmill6.jpg","renewable/windmill7.jpg","renewable/windmill8.jpg"], "bad": ["fishes/fish6.jpg","fishes/fish3.jpg","others/pan.jpg","others/spoons.jpg"] }, { "instructions": qsTr("Place the RENEWABLE energy sources to the right and other objects to the left"), "image": imagesPrefix + "dam3.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["renewable/windmill9.jpg","renewable/windmill12.jpg","renewable/solar7.jpg"], "bad": ["others/blackslate.jpg","monuments/IndiaGate.jpg","tools/multimeter.jpg"] }, { "instructions": qsTr("Place the RENEWABLE energy sources to the right and other objects to the left"), "image": imagesPrefix + "solar2.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["renewable/solar8.jpg","renewable/dam5.jpg","renewable/windmill11.jpg"], "bad": ["others/plate.jpg","others/chair.jpg","monuments/eiffelTower.jpg"] }, { "instructions": qsTr("Place the RENEWABLE energy sources to the right and other objects to the left"), "image": imagesPrefix + "solar4.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["renewable/windmill14.jpg","renewable/windmill15.jpg","renewable/dam5.jpg"], "bad": ["others/plate.jpg","fishes/fish18.jpg","monuments/leMusee.jpg"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_shapes.qml b/src/activities/categorization/resource/board/category_shapes.qml index 58ca263fb..18e5bc198 100644 --- a/src/activities/categorization/resource/board/category_shapes.qml +++ b/src/activities/categorization/resource/board/category_shapes.qml @@ -1,209 +1,209 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject{ property bool isEmbedded: false property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/data/words/shapes/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("Shapes"), "image": imagesPrefix + "cube.JPG", "content": [ { "instructions": qsTr("Place the objects matching a CIRCLE to the right and others to the left"), "image": imagesPrefix + "circle.svg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["cd.svg","clock.svg","coin.svg","globe.svg","smile.svg"], "bad": ["backcard.svg","can.svg","can1.svg","conehat.svg"] }, { "instructions": qsTr("Place the objects matching a RECTANGLE to right and others to the left"), "image": imagesPrefix + "rectangle.svg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["paper.svg","rectangle_led.svg","stickynote.svg","rainbowsquare.svg"], "bad": ["cylinder.svg","icecream.svg","trapezium.svg","trash.svg","pizza.svg"] }, { "instructions": qsTr("Place the objects matching a SPHERE to right and others to the left"), "image": imagesPrefix + "sun.svg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/", "good": ["shapes/football.svg","shapes/globe.svg","ball.png","shapes/watermelon.svg"], "bad": ["shapes/cone.svg","shapes/halforange.svg","shapes/sunrise.svg","shapes/juice2.svg","shapes/icecube.svg"] }, { "instructions": qsTr("Place the objects matching a TRAPEZOID to right and others to the left"), "image": imagesPrefix + "trapezium.svg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["trapezium2.svg","trapezium4.svg","trapezium3.svg","rectangle.svg","rhombus1.svg"], "bad": ["cube.svg","dice.svg","rectbin.svg","yellowtriangle.svg"] }, { "instructions": qsTr("Place the objects matching a TRIANGLE to right and others to the left"), "image": imagesPrefix + "triangle.svg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["yellowtriangle.svg","trianglehat.svg","warning.svg","warning1.svg"], "bad": ["sun.svg","cookie.svg","rhombus2.svg","trapezium2.svg","semicircle.svg"] }, { "instructions": qsTr("Place the objects matching a SEMICIRCLE to right and others to the left"), "image": imagesPrefix + "semicircle.svg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["fan.svg","halfmoon.svg","sunrise.svg","rainbow.svg"], "bad": ["diceface.svg","watermelon.svg","squareclock.svg","trianglehat.svg","circle.svg"] }, { "instructions": qsTr("Place the objects matching a PENTAGON to right and others to the left"), "image": imagesPrefix + "pentagon.svg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/", "good": ["shapes/pentagon1.svg","shapes/pentagon2.svg","shapes/pentagon3.svg","shapes/pentagon4.svg"], "bad": ["shapes/nonagon1.svg","shapes/trianglehat.svg","shapes/rainbowsquare.svg","shapes/paper.svg","shapes/hexagon1.svg"] }, { "instructions": qsTr("Place the objects matching a SQUARE to right and others to the left"), "image": imagesPrefix + "rhombus.svg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["rsquare.svg","rainbowsquare.svg","ledsquare.svg","stickynote.svg"], "bad": ["trapezium.svg","slate.svg","rhombus4.svg","globe.svg","parallelogram.svg"] }, { "instructions": qsTr("Place the objects matching a CONE to right and others to the left"), "image": imagesPrefix + "cone.svg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["ice_cream.png","icecone.svg","icecream.svg","conehat.svg"], "bad": ["semicircle.svg","glass.svg","bowl3.svg","halforange.svg","dice.svg"] }, { "instructions": qsTr("Place the objects matching a PARALLELOGRAM to right and others to the left"), "image": imagesPrefix + "parallelogram.svg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["pgram1.svg","pgram2.svg","pgram3.svg","paper.svg","rectangle_led.svg",], "bad": ["globe.svg","heptagon.svg","pizza.svg","trapezium4.svg"] }, { "instructions": qsTr("Place the objects matching a HEPTAGON to right and others to the left"), "image": imagesPrefix + "heptagon.svg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["heptagon1.svg","heptagon2.svg","heptagon3.svg","heptagon4.svg"], "bad": ["nonagon4.svg","octagon1.svg","decagon2.svg","pentagon1.svg","hexagon4.svg"] }, { "instructions": qsTr("Place the objects matching a CUBE to right and others to the left"), "image": imagesPrefix + "cube.svg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["icecube.svg","cube1.svg","dice.svg","rubikscube.svg","rubikscube1.svg"], "bad": ["juice2.svg","cuboid1.svg","stickynote.svg","backcard.svg"] }, { "instructions": qsTr("Place the objects matching a RHOMBUS to right and others to the left"), "image": imagesPrefix + "rhombus1.svg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["rainbowsquare.svg","rhombus2.svg","ledsquare.svg","rhombus4.svg"], "bad": ["hexagon.svg","parallelogram.svg","pentagon4.svg","pgram1.svg","trapezium2.svg"] }, { "instructions": qsTr("Place the objects matching a NONAGON to right and others to the left"), "image": imagesPrefix + "nonagon.svg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["nonagon1.svg","nonagon4.svg","nonagon2.svg","nonagon3.svg"], "bad": ["pgram2.svg","diceface.svg","octagon2.svg","decagon1.svg","decagon2.svg"], }, { "instructions": qsTr("Place the objects matching a CUBOID to right and others to the left"), "image": imagesPrefix + "cuboid.svg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["dice.svg","rubikscube.svg","cuboid1.svg","juice2.svg","cube1.svg"], "bad": ["backcard.svg","cone.svg","pizza.svg","trash.svg"] }, { "instructions": qsTr("Place the objects matching a HEXAGON to right and others to the left"), "image": imagesPrefix + "hexagon.svg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["hexagon2.svg","hexagon3.svg","hexagon4.svg","hexagon1.svg"], "bad": ["rhombus1.svg","pgram2.svg","heptagon1.svg","pentagon3.svg","trapezium2.svg"] }, { "instructions": qsTr("Place the objects matching an OCTAGON to right and others to the left"), "image": imagesPrefix + "octagon.svg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["octagon2.svg","octagon3.svg","octagon4.svg","octagon1.svg"], "bad": ["rectangle_led.svg","decagon2.svg","hexagon2.svg","heptagon1.svg","nonagon2.svg"] }, { "instructions": qsTr("Place the objects matching a CYLINDER to right and others to the left"), "image": imagesPrefix + "cylinder.svg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["rolling_pin.png","tin.png","can1.svg","can.svg", "trash.svg"], "bad": ["halforange.svg","decagon3.svg","wcone.svg","juice2.svg"] }, { "instructions": qsTr("Place the objects matching a DECAGON to right and others to the left"), "image": imagesPrefix + "decagon.svg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/shapes/", "good": ["decagon3.svg","decagon4.svg","decagon1.svg","decagon2.svg"], "bad": ["hexagon2.svg","nonagon1.svg","nonagon4.svg","octagon2.svg","heptagon1.svg"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_tools.qml b/src/activities/categorization/resource/board/category_tools.qml index 8c93afd1f..999448a1d 100644 --- a/src/activities/categorization/resource/board/category_tools.qml +++ b/src/activities/categorization/resource/board/category_tools.qml @@ -1,126 +1,126 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property bool isEmbedded: true property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/src/activities/categorization/resource/images/tools/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("Tools"), "image": imagesPrefix + "measuringTape.jpg", "content": [ { "instructions": qsTr("Place the TOOLS to the right and other objects to the left"), "image": imagesPrefix + "wrench.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["tools/clawHammer.jpg", "tools/clawHammer1.jpg","tools/estwingHammer.jpg","tools/framingHammer.jpg","tools/hammer1.jpg","tools/hammer2.jpg"], "bad": ["monuments/arcDeTriomphe.jpg","others/buffetset.jpg","monuments/cathedral.jpg","others/pillow.jpg","renewable/windmill1.jpg", "renewable/geothermal.jpg"] }, { "instructions": qsTr("Place the TOOLS to the right and other objects to the left"), "image": imagesPrefix + "sideCutter1.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["tools/measuringTape.jpeg","tools/measuringTape1.jpg","tools/nosePlier.jpg","tools/nosePlier1.jpg","tools/measuringTape3.jpg","tools/measuringTape4.jpg"], "bad": ["others/pan.jpg","others/blackslate.jpg","monuments/colosseum.jpg","fishes/fish10.jpg","renewable/dam1.jpg","monuments/monument3.jpg"] }, { "instructions": qsTr("Place the TOOLS to the right and other objects to the left"), "image": imagesPrefix + "scissors.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["tools/scissor1.jpg","tools/scissor2.jpg","tools/scissors.jpg","tools/sprinkler.jpg","tools/tweezer.jpg","tools/wrench1.jpg"], "bad": ["others/buffetset.jpg","monuments/beandenburgGate.jpg","monuments/parthenon.jpg","fishes/fish12.jpg","fishes/fish16.jpg","others/plate.jpg"] }, { "instructions": qsTr("Place the TOOLS to the right and other objects to the left"), "image": imagesPrefix + "sprinkler.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["tools/sprinkler.jpg","tools/screwDriver.jpg","tools/screwDriver1.jpg","tools/screwDriver2.jpg","tools/screwDriver3.jpg","tools/plier.jpg"], "bad": ["others/baseball.jpg","others/igloo.jpg","monuments/mountRushmore.jpg","renewable/dam3.jpg","monuments/greatWall.jpg","renewable/windmill7.jpg"] }, { "instructions": qsTr("Place the TOOLS to the right and other objects to the left"), "image": imagesPrefix + "plier.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["tools/multimeter.jpg","tools/screwDriver.jpg","tools/hammer3.jpg","tools/measuringTape.jpg","tools/nosePlier.jpg"], "bad": ["fishes/fish25.jpg","fishes/fish18.jpg","monuments/monument1.jpg","monuments/monument2.jpg"] }, { "instructions": qsTr("Place the TOOLS to the right and other objects to the left"), "image": imagesPrefix + "nosePlier2.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["tools/wrench.jpg","tools/tweezer1.jpg","tools/sickle.jpg","tools/plier.jpg","tools/sideCutter1.jpg"], "bad": ["renewable/solar5.jpg","others/bulb.jpg","renewable/dam3.jpg","monuments/leninMuseum.jpg"] }, { "instructions": qsTr("Place the TOOLS to the right and other objects to the left"), "image": imagesPrefix + "multimeter.jpg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["tools/nosePlier3.jpg","tools/scissor.jpg","tools/plier2.jpg","tools/sideCutter1.jpg"], "bad": ["fishes/fish3.jpg","others/chair.jpg","monuments/operaHouse.jpg","renewable/windmill12.jpg","monuments/IndiaGate.jpg"] }, { "instructions": qsTr("Place the TOOLS to the right and other objects to the left"), "image": imagesPrefix + "nailCutter.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["tools/measuringTape2.jpg","tools/hammer5.jpg","tools/plier1.jpg"], "bad": ["fishes/fish6.jpg","monuments/tajMahal.jpg","renewable/solar3.jpg"] }, { "instructions": qsTr("Place the TOOLS to the right and other objects to the left"), "image": imagesPrefix + "screwDriver.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["tools/nosePlier2.jpg","tools/multimeter2.jpg","tools/nailCutter.jpg"], "bad": ["fishes/fish10.jpg","others/pan.jpg","others/igloo.jpg"] }, { "instructions": qsTr("Place the TOOLS to the right and other objects to the left"), "image": imagesPrefix + "scissor.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/src/activities/categorization/resource/images/", "good": ["tools/hammer4.jpg","tools/screwDriver.jpg","tools/multimeter1.jpg"], "bad": ["renewable/dam2.jpg","monuments/leaningTowerOfPisa.jpg", "others/pillow.jpg"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_transports.qml b/src/activities/categorization/resource/board/category_transports.qml index a7a72b4c3..ac42657bf 100644 --- a/src/activities/categorization/resource/board/category_transports.qml +++ b/src/activities/categorization/resource/board/category_transports.qml @@ -1,127 +1,127 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject{ property bool isEmbedded: false property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/data/words/transport/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("Transport"), "image": imagesPrefix + "balloon.jpg", "content": [ { "instructions": qsTr("Place the MEANS OF TRANSPORTATION to the right and other objects to the left"), "image":imagesPrefix + "tucker.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["transport/autorickshaw.jpg","transport/balloon.jpg","transport/bicycle2.jpg","transport/boat.jpg","transport/bulletTrain.jpg","transport/bullockcart.jpg"], "bad": ["householdGoods/ac.jpg","householdGoods/heater.jpg","householdGoods/quilt.jpg","food/kathiRoll.jpg","food/icecream.jpg","vegetables/carrots.jpg"] }, { "instructions": qsTr("Place the MEANS OF TRANSPORTATION to the right and other objects to the left"), "image":imagesPrefix + "train1.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["transport/bus.jpg","transport/camel.jpg","transport/car1.jpg","transport/exchanger.jpg","transport/ferry.jpg","transport/flight.jpg"], "bad": ["householdGoods/coffeeMaker.jpg","householdGoods/curtains.jpg","nature/nature6.jpg","insects/insect10.jpg","householdGoods/lamp.jpg","others/fork.jpg"] }, { "instructions": qsTr("Place the MEANS OF TRANSPORTATION to the right and other objects to the left"), "image":imagesPrefix + "ship.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["transport/helicopter.jpg","transport/metro.jpg","transport/plane.jpg","transport/train5.jpg","transport/rickshaw.jpg","transport/rocket.jpg"], "bad": ["nature/nature5.jpg","nature/nature8.jpg","food/biryani.jpg","food/skimmedMilk.jpg","fruits/grapes.jpg","fruits/apple.jpg"] }, { "instructions": qsTr("Place the MEANS OF TRANSPORTATION to the right and other objects to the left"), "image":imagesPrefix + "plane.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["transport/bus2.jpg","transport/car2.jpg","transport/ferry1.jpg","transport/ship.jpg","transport/rotorShip.jpg","transport/cycle.jpg"], "bad": ["vegetables/pumpkin.jpg","householdGoods/oven.jpg","householdGoods/radio1.jpg","food/riceBeans.jpg","fruits/guava.jpg","plants/plant2.jpg","nature/nature14.jpg"] }, { "tags": ["transport"], "instructions": qsTr("Place the MEANS OF TRANSPORTATION to the right and other objects to the left"), "image":imagesPrefix + "train2.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["transport/tram.jpg","transport/tucker.jpg","transport/bus1.jpg","transport/car1.jpg", "transport/ferry1.jpg"], "bad": ["insects/insect15.jpg","birds/bird18.jpg","animals/giraffe.jpg","others/street.jpg"] }, { "instructions": qsTr("Place the MEANS OF TRANSPORTATION to the right and other objects to the left"), "image":imagesPrefix + "roadTrain.jpg", "maxNumberOfGood": 5, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["transport/cycle.jpg","transport/helicopter1.jpg","transport/plane1.jpg","transport/train2.jpg","animals/horse.jpg"], "bad": ["food/hamburger.jpg","householdGoods/electricBlanket.jpg","householdGoods/bed.jpg","vegetables/spinach.jpg"] }, { "instructions": qsTr("Place the MEANS OF TRANSPORTATION to the right and other objects to the left"), "image":imagesPrefix + "car2.jpg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/", "good": ["transport/plane2.jpg","transport/roadTrain.jpg","transport/rocket1.jpg","transport/train4.jpg"], "bad": ["food/pizza.jpg","householdGoods/toaster.jpg","animals/koala.jpg","birds/bird21.jpg","insects/insect12.jpg"] }, { "instructions": qsTr("Place the MEANS OF TRANSPORTATION to the right and other objects to the left"), "image":imagesPrefix + "ferry.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["transport/car3.jpg","transport/train3.jpg","transport/ship1.jpg"], "bad": ["householdGoods/almirah.jpg","plants/tree3.jpg","nature/nature17.jpg"] }, { "instructions": qsTr("Place the MEANS OF TRANSPORTATION to the right and other objects to the left"), "image":imagesPrefix + "rocket1.jpg", "maxNumberOfGood": 2, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["transport/car5.jpg","transport/tanker.jpg"], "bad": ["food/milk.jpg","householdGoods/vacuumCleaner.jpg","insects/insect9.jpg","birds/bird23.jpg"] }, { "instructions": qsTr("Place the MEANS OF TRANSPORTATION to the right and other objects to the left"), "image":imagesPrefix + "cycle.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["transport/plane3.jpg","transport/rickshaw2.jpg","transport/train1.jpg"], "bad": ["insects/insect18.jpg","vegetables/cauliflower.jpg","nature/nature24.jpg"] } ] } ] } diff --git a/src/activities/categorization/resource/board/category_vegetables.qml b/src/activities/categorization/resource/board/category_vegetables.qml index 525f1e8c1..3ed5ff1db 100644 --- a/src/activities/categorization/resource/board/category_vegetables.qml +++ b/src/activities/categorization/resource/board/category_vegetables.qml @@ -1,90 +1,90 @@ /* GCompris * * Copyright (C) 2016 Divyam Madaan * * Authors: * Divyam Madaan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject{ property bool isEmbedded: false property bool allowExpertMode: true property string imagesPrefix: "qrc:/gcompris/data/words/vegetables/" - property variant levels: [ + property var levels: [ { "type": "lesson", "name": qsTr("Vegetables"), "image": imagesPrefix + "vegetablesmix.jpg", "content": [ { "instructions": qsTr("Place the VEGETABLES to the right and other objects to the left"), "image": imagesPrefix + "vegetablesmix.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["vegetables/batatadoce.jpg","vegetables/bittergourd.jpg","vegetables/blackchillies.jpg", "vegetables/aubergine.jpg","vegetables/peas.JPG","vegetables/carrots.jpg"], "bad": ["fruits/cranberries.jpg","fruits/feiji.jpg","fruits/strwaberry.jpg","fruits/pear.jpg","food/applepie.jpg","food/biryani.jpg","transport/bus.jpg","transport/truck.jpg"] }, { "instructions": qsTr("Place the VEGETABLES to the right and other objects to the left"), "image": imagesPrefix + "vegetablesmix.jpg", "maxNumberOfGood": 6, "maxNumberOfBad": 6, "prefix": "qrc:/gcompris/data/words/", "good": ["vegetables/cauliflower.jpg","vegetables/chillies.jpg","vegetables/chineseradish.jpg","vegetables/cucumber.jpg","vegetables/dahuisi.jpg","vegetables/garlic.jpg"], "bad": ["fruits/apple.jpg","fruits/apricot.jpg","fruits/banana.jpg","fruits/berries.jpg","transport/boat.jpg","plants/plant2.jpg","nature/nature6.jpg","householdGoods/quilt.jpg"] }, { "instructions": qsTr("Place the VEGETABLES to the right and other objects to the left"), "image": imagesPrefix + "vegetablesmix.jpg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/", "good": ["vegetables/potato.jpg","vegetables/radish.jpg","vegetables/redchillies.jpg","vegetables/spinach.jpg"], "bad": ["fruits/billberries.jpg","fruits/cherries.jpg","food/cheese.jpg","birds/bird7.jpg","insects/insect2.jpg"] }, { "instructions": qsTr("Place the VEGETABLES to the right and other objects to the left"), "image": imagesPrefix + "vegetablesmix.jpg", "maxNumberOfGood": 4, "maxNumberOfBad": 5, "prefix": "qrc:/gcompris/data/words/", "good": ["vegetables/spinaches.jpg","vegetables/taroroot.jpg","vegetables/cauliflower.jpg","vegetables/batatadoce.jpg"], "bad": ["fruits/kiwi.jpg","householdGoods/vacuumCleaner.jpg","householdGoods/utensils.jpg","food/pizza.jpg","transport/tanker.jpg"] }, { "instructions": qsTr("Place the VEGETABLES to the right and other objects to the left"), "image": imagesPrefix + "vegetablesmix.jpg", "maxNumberOfGood": 3, "maxNumberOfBad": 3, "prefix": "qrc:/gcompris/data/words/", "good": ["vegetables/mushroom.jpg","vegetables/pumpkin.jpg","vegetables/sweetpotato.jpg"], "bad": ["fruits/mango.jpg","plants/plant6.jpg","others/electricfan.jpg"] }, { "instructions": qsTr("Place the VEGETABLES to the right and other objects to the left"), "image": imagesPrefix + "vegetablesmix.jpg", "maxNumberOfGood": 2, "maxNumberOfBad": 4, "prefix": "qrc:/gcompris/data/words/", "good": ["vegetables/zucchini.jpg","vegetables/vegetablesmix.jpg"], "bad": ["fruits/papaya.jpg","food/sweetBread.jpg","others/clock.jpg","others/pepsi.jpg"] } ] } ] } diff --git a/src/activities/checkers/Checkers.qml b/src/activities/checkers/Checkers.qml index f0d990e77..39ade3f0d 100644 --- a/src/activities/checkers/Checkers.qml +++ b/src/activities/checkers/Checkers.qml @@ -1,467 +1,467 @@ /* GCompris - checkers.qml * * Copyright (C) 2017 Johnny Jazeix * * Authors: * Johnny Jazeix * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import QtQuick.Controls 1.5 import QtQuick.Controls.Styles 1.4 import GCompris 1.0 import "../../core" import "." import "checkers.js" as Activity ActivityBase { id: activity property bool acceptClick: true property bool twoPlayers: false // difficultyByLevel means that at level 1 computer is bad better at last level property bool difficultyByLevel: true onStart: focus = true onStop: {} pageComponent: Image { id: background anchors.fill: parent source: Activity.url + 'background-wood.svg' signal start signal stop Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } // Add here the QML items you need to access in javascript QtObject { id: items property Item main: activity.main property GCAudio audioEffects: activity.audioEffects property alias background: background property alias bar: bar property alias bonus: bonus property int barHeightAddon: ApplicationSettings.isBarHidden ? 1 : 3 property bool isPortrait: (background.height > background.width) property int cellSize: items.isPortrait ? Math.min(background.width / (items.numberOfCases + 2), (background.height - controls.height) / (items.numberOfCases + barHeightAddon)) : Math.min(background.width / (items.numberOfCases + 2), background.height / (items.numberOfCases + barHeightAddon)) - property variant fen: activity.fen + property var fen: activity.fen property bool twoPlayer: activity.twoPlayers property bool difficultyByLevel: activity.difficultyByLevel property var positions property var pieces: pieces property var squares: squares property var history property var redo_stack property alias redoTimer: redoTimer property int from property bool blackTurn property bool gameOver property var movesToDo: [] property string message property alias trigComputerMove: trigComputerMove property int numberOfCases: 10 Behavior on cellSize { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 1000 } } } onStart: { Activity.start(items) } onStop: { Activity.stop() } Grid { anchors { top: parent.top topMargin: items.isPortrait ? 0 : items.cellSize / 2 leftMargin: 10 * ApplicationInfo.ratio rightMargin: 10 * ApplicationInfo.ratio } columns: (items.isPortrait==true) ? 1 : 3 rows: (items.isPortrait==true) ? 2 : 1 width: (items.isPortrait==true) ? undefined : background.width anchors.horizontalCenter: parent.horizontalCenter spacing: 10 horizontalItemAlignment: Grid.AlignHCenter verticalItemAlignment: Grid.AlignVCenter Column { id: controls anchors { leftMargin: 10 rightMargin: 10 } width: items.isPortrait ? parent.width : Math.max(undo.width * 1.2, Math.min( (background.width * 0.9 - undo.width - chessboard.width), (background.width - chessboard.width) / 2)) GCText { color: "white" anchors.horizontalCenter: parent.horizontalCenter width: parent.width fontSize: smallSize text: items.message horizontalAlignment: Text.AlignHCenter wrapMode: TextEdit.WordWrap } Grid { spacing: 10 columns: items.isPortrait ? 3 : 1 anchors.horizontalCenter: parent.horizontalCenter horizontalItemAlignment: Grid.AlignHCenter verticalItemAlignment: Grid.AlignVCenter Button { id: undo height: 30 * ApplicationInfo.ratio text: qsTr("Undo"); style: GCButtonStyle { theme: "light" } onClicked: Activity.undo() enabled: (items.history && items.history.length > 0) ? true : false opacity: enabled ? 1 : 0 Behavior on opacity { PropertyAnimation { easing.type: Easing.InQuad duration: 200 } } } Button { id: redo height: 30 * ApplicationInfo.ratio text: qsTr("Redo"); style: GCButtonStyle { theme: "light" } onClicked: { Activity.redo() } enabled: items.redo_stack.length > 0 && acceptClick ? 1 : 0 opacity: enabled Behavior on opacity { PropertyAnimation { easing.type: Easing.InQuad duration: 200 } } } Button { height: 30 * ApplicationInfo.ratio text: qsTr("Swap"); style: GCButtonStyle { theme: "light" } enabled: items.twoPlayer opacity: enabled onClicked: chessboard.swap() } } } Rectangle { id:boardBg width: items.cellSize * (items.numberOfCases + 0.2) height: items.cellSize * (items.numberOfCases + 0.2) z: 09 color: "#2E1B0C" // The chessboard GridView { id: chessboard cellWidth: items.cellSize cellHeight: items.cellSize width: items.cellSize * items.numberOfCases height: items.cellSize * items.numberOfCases interactive: false keyNavigationWraps: true model: items.numberOfCases*items.numberOfCases layoutDirection: Qt.RightToLeft delegate: square rotation: 180 z: 10 anchors.centerIn: boardBg Component { id: square Image { source: index % 2 + (Math.floor(index / items.numberOfCases) % 2) == 1 ? Activity.url + 'checkers-white.svg' : Activity.url + 'checkers-black.svg'; width: items.cellSize height: items.cellSize } } Behavior on rotation { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 1400 } } function swap() { items.audioEffects.play('qrc:/gcompris/src/core/resource/sounds/flip.wav') if(chessboard.rotation == 180) chessboard.rotation = 0 else chessboard.rotation = 180 } } } } Repeater { id: squares model: items.positions delegate: square parent: chessboard DropArea { id: square x: items.cellSize * (9 - pos % items.numberOfCases) + spacing / 2 y: items.cellSize * Math.floor(pos / items.numberOfCases) + spacing / 2 width: items.cellSize - spacing height: items.cellSize - spacing z: 1 keys: acceptMove ? ['acceptMe'] : ['sorryNo'] property bool acceptMove: false property bool jumpable: false property int pos: modelData.pos property int spacing: 6 * ApplicationInfo.ratio Rectangle { id: possibleMove anchors.fill: parent color: parent.containsDrag ? '#803ACAFF' : 'transparent' border.width: parent.acceptMove || parent.jumpable ? 5 : 0 border.color: parent.acceptMove ? '#FF808080' : '#C0808080' radius: parent.acceptMove ? width*0.5 : 0 z: 1 } } function getSquareAt(pos) { for(var i=0; i < squares.count; i++) { if(squares.itemAt(i).pos === pos) return squares.itemAt(i) } return undefined } } Repeater { id: pieces model: items.positions delegate: piece parent: chessboard Piece { id: piece sourceSize.width: items.cellSize width: items.cellSize - spacing height: items.cellSize - spacing source: img ? Activity.url + img + '.svg' : '' img: modelData.img x: items.cellSize * (items.numberOfCases - 1 - pos % items.numberOfCases) + spacing / 2 y: items.cellSize * Math.floor(pos / items.numberOfCases) + spacing / 2 z: 1 pos: modelData.pos newPos: modelData.pos rotation: - chessboard.rotation property int spacing: 6 * ApplicationInfo.ratio Drag.active: dragArea.drag.active Drag.hotSpot.x: width / 2 Drag.hotSpot.y: height / 2 MouseArea { id: dragArea anchors.fill: parent enabled: !items.gameOver drag.target: parent onPressed: { piece.Drag.keys = ['acceptMe'] parent.z = 100 if(parent.isWhite == 1 && !items.blackTurn || parent.isWhite == 0 && items.blackTurn) { items.from = parent.newPos Activity.showPossibleMoves(items.from) } else if(items.from != -1 && squares.getSquareAt(parent.newPos)['acceptMove']) { Activity.moveTo(items.from, parent.newPos) } } onReleased: { // If no target or move not possible, we reset the position if(!piece.Drag.target || (items.from != -1 && !Activity.moveTo(items.from, piece.Drag.target.pos))) { var pos = parent.pos // Force recalc of the old x,y position parent.pos = -1 if(pieces.getPieceAt(pos)) pieces.getPieceAt(pos).move(pos) } } } } function moveTo(from, to, moves) { items.movesToDo.push({"from": from, "to": to, "move": moves}); if(items.movesToDo.length == 1) { moveInternal(); } } function moveInternal() { var moveToDo = items.movesToDo[0] var from = moveToDo.from; var to = moveToDo.to; var moves = moveToDo.move; items.audioEffects.play('qrc:/gcompris/src/core/resource/sounds/scroll.wav') var fromPiece = getPieceAt(from) var toPiece = getPieceAt(to) if(moves.jumps.length != 0) items.audioEffects.play('qrc:/gcompris/src/core/resource/sounds/smudge.wav') else items.audioEffects.play('qrc:/gcompris/src/core/resource/sounds/scroll.wav') toPiece.hide(from) movingPiece = fromPiece if(moves.jumps.length != 0) { listJumps = moves.jumps } else { // create the move if needed listJumps = [Activity.viewPosToEngine(from), Activity.viewPosToEngine(to)] } } function promotion(to) { var toPiece = getPieceAt(to) toPiece.promotion() } function getPieceAt(pos) { for(var i=0; i < pieces.count; i++) { if(pieces.itemAt(i).newPos == pos) return pieces.itemAt(i) } return undefined } } property var movingPiece: undefined property var listJumps property bool restartNeeded: false onListJumpsChanged: { if(listJumps.length >= 2) { if(!animationTimer.isRunning) animationTimer.restart(); else restartNeeded = true; } } SequentialAnimation { id: animationTimer onRunningChanged: { if(!running && restartNeeded) start() } ScriptAction { script: { restartNeeded = false var to = Activity.engineToViewPos(listJumps[1]) movingPiece.move(to) } } PauseAnimation { duration: 200 } ScriptAction { script: { listJumps.shift() // only shifting does not trigger the onChanged var tmp = listJumps listJumps = tmp // only change player once all the jumps have been done if(listJumps.length == 1) { items.movesToDo.shift() if(items.movesToDo.length > 0) { pieces.moveInternal() } else { Activity.refresh() movingPiece = undefined } } } } } Timer { id: trigComputerMove repeat: false interval: 400 onTriggered: Activity.randomMove() } // Use to redo the computer move after the user move Timer { id: redoTimer repeat: false interval: 400 onTriggered: { acceptClick = true; Activity.moveByEngine(move) } property var move function moveByEngine(engineMove) { move = engineMove redoTimer.start() } } DialogHelp { id: dialogHelp onClose: home() } Bar { id: bar content: BarEnumContent { value: help | home | (items.twoPlayer ? 0 : level) | (items.twoPlayer && !items.gameOver ? 0 : reload) } onHelpClicked: { displayDialog(dialogHelp) } onPreviousLevelClicked: Activity.previousLevel() onNextLevelClicked: Activity.nextLevel() onHomeClicked: activity.home() onReloadClicked: { trigComputerMove.stop() Activity.initLevel() } } Bonus { id: bonus } } } diff --git a/src/activities/chess/Chess.qml b/src/activities/chess/Chess.qml index 98a08da56..780e7de87 100644 --- a/src/activities/chess/Chess.qml +++ b/src/activities/chess/Chess.qml @@ -1,408 +1,408 @@ /* GCompris - chess.qml * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Bruno Coudoin (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import QtQuick.Controls 1.5 import QtQuick.Controls.Styles 1.4 import GCompris 1.0 import "../../core" import "." import "chess.js" as Activity ActivityBase { id: activity property bool acceptClick: true property bool twoPlayers: false // difficultyByLevel means that at level 1 computer is bad better at last level property bool difficultyByLevel: true - property variant fen: [ + property var fen: [ ["initial state", "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 1 1"], ["initial state", "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 1 1"], ["initial state", "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 1 1"], ["initial state", "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 1 1"], ["initial state", "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 1 1"] ] onStart: focus = true onStop: {} pageComponent: Image { id: background anchors.fill: parent source: Activity.url + 'background-wood.svg' signal start signal stop Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } // Add here the QML items you need to access in javascript QtObject { id: items property Item main: activity.main property GCAudio audioEffects: activity.audioEffects property alias background: background property alias bar: bar property alias bonus: bonus property int barHeightAddon: ApplicationSettings.isBarHidden ? 1 : 3 property bool isPortrait: (background.height > background.width) property int cellSize: items.isPortrait ? Math.min(background.width / (8 + 2), (background.height - controls.height) / (8 + barHeightAddon)) : Math.min(background.width / (8 + 2), background.height / (8 + barHeightAddon)) - property variant fen: activity.fen + property var fen: activity.fen property bool twoPlayer: activity.twoPlayers property bool difficultyByLevel: activity.difficultyByLevel property var positions property var pieces: pieces property var squares: squares property var history property var redo_stack property alias redoTimer: redoTimer property int from property bool blackTurn property bool gameOver property string message property alias trigComputerMove: trigComputerMove Behavior on cellSize { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 1000 } } } onStart: { Activity.start(items) } onStop: { Activity.stop() } Grid { anchors { top: parent.top topMargin: items.isPortrait ? 0 : items.cellSize / 2 leftMargin: 10 * ApplicationInfo.ratio rightMargin: 10 * ApplicationInfo.ratio } columns: (items.isPortrait==true)?1:3 rows: (items.isPortrait==true)?2:1 width: (items.isPortrait==true)?undefined:background.width anchors.horizontalCenter: parent.horizontalCenter spacing: 10 horizontalItemAlignment: Grid.AlignHCenter verticalItemAlignment: Grid.AlignVCenter Column { id: controls anchors { leftMargin: 10 rightMargin: 10 } width: items.isPortrait ? parent.width : Math.max(undo.width * 1.2, Math.min( (background.width * 0.9 - undo.width - chessboard.width), (background.width - chessboard.width) / 2)) GCText { color: "white" anchors.horizontalCenter: parent.horizontalCenter width: parent.width fontSize: smallSize text: items.message horizontalAlignment: Text.AlignHCenter wrapMode: TextEdit.WordWrap } Grid { spacing: 10 columns: items.isPortrait ? 3 : 1 anchors.horizontalCenter: parent.horizontalCenter horizontalItemAlignment: Grid.AlignHCenter verticalItemAlignment: Grid.AlignVCenter Button { id: undo height: 30 * ApplicationInfo.ratio text: qsTr("Undo"); style: GCButtonStyle { theme: "light" } onClicked: Activity.undo() enabled: items.history.length > 0 ? 1 : 0 opacity: enabled Behavior on opacity { PropertyAnimation { easing.type: Easing.InQuad duration: 200 } } } Button { id: redo height: 30 * ApplicationInfo.ratio text: qsTr("Redo"); style: GCButtonStyle { theme: "light" } onClicked: { if (!twoPlayers) { acceptClick = false; Activity.redo() } else { Activity.redo() } } enabled: items.redo_stack.length > 0 && acceptClick ? 1 : 0 opacity: enabled Behavior on opacity { PropertyAnimation { easing.type: Easing.InQuad duration: 200 } } } Button { height: 30 * ApplicationInfo.ratio text: qsTr("Swap"); style: GCButtonStyle { theme: "light" } enabled: items.twoPlayer opacity: enabled onClicked: chessboard.swap() } } } Rectangle { id:boardBg width: items.cellSize * 8.2 height: items.cellSize * 8.2 z: 09 color: "#3A1F0A" // The chessboard GridView { id: chessboard cellWidth: items.cellSize cellHeight: items.cellSize width: items.cellSize * 8 height: items.cellSize * 8 interactive: false keyNavigationWraps: true model: 64 layoutDirection: Qt.RightToLeft delegate: square rotation: 180 z: 10 anchors.centerIn: boardBg Component { id: square Image { source: index % 2 + (Math.floor(index / 8) % 2) == 1 ? Activity.url + 'chess-white.svg' : Activity.url + 'chess-black.svg'; width: items.cellSize height: items.cellSize } } Behavior on rotation { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 1400 } } function swap() { items.audioEffects.play('qrc:/gcompris/src/core/resource/sounds/flip.wav') if(chessboard.rotation == 180) chessboard.rotation = 0 else chessboard.rotation = 180 } } } } Repeater { id: squares model: items.positions delegate: square parent: chessboard DropArea { id: square x: items.cellSize * (7 - pos % 8) + spacing / 2 y: items.cellSize * Math.floor(pos / 8) + spacing / 2 width: items.cellSize - spacing height: items.cellSize - spacing z: 1 keys: acceptMove ? ['acceptMe'] : ['sorryNo'] property bool acceptMove : false property int pos: modelData.pos property int spacing: 6 * ApplicationInfo.ratio Rectangle { id: possibleMove anchors.fill: parent color: parent.containsDrag ? '#803ACAFF' : 'transparent' border.width: parent.acceptMove ? 5 : 0 border.color: '#FF808080' z: 1 } } function getSquareAt(pos) { for(var i=0; i < squares.count; i++) { if(squares.itemAt(i).pos === pos) return squares.itemAt(i) } return(undefined) } } Repeater { id: pieces model: items.positions delegate: piece parent: chessboard Piece { id: piece sourceSize.width: items.cellSize width: items.cellSize - spacing height: items.cellSize - spacing source: img ? Activity.url + img + '.svg' : '' img: modelData.img x: items.cellSize * (7 - pos % 8) + spacing / 2 y: items.cellSize * Math.floor(pos / 8) + spacing / 2 z: 1 pos: modelData.pos newPos: modelData.pos rotation: - chessboard.rotation property int spacing: 6 * ApplicationInfo.ratio Drag.active: dragArea.drag.active Drag.hotSpot.x: width / 2 Drag.hotSpot.y: height / 2 MouseArea { id: dragArea anchors.fill: parent enabled: !items.gameOver drag.target: parent onPressed: { piece.Drag.keys = ['acceptMe'] parent.z = 100 if(parent.isWhite == 1 && !items.blackTurn || parent.isWhite == 0 && items.blackTurn) { items.from = parent.newPos Activity.showPossibleMoves(items.from) } else if(items.from != -1 && squares.getSquareAt(parent.newPos)['acceptMove']) { Activity.moveTo(items.from, parent.newPos) } } onReleased: { // If no target or move not possible, we reset the position if(!piece.Drag.target || (items.from != -1 && !Activity.moveTo(items.from, piece.Drag.target.pos))) { var pos = parent.pos // Force recalc of the old x,y position parent.pos = -1 pieces.getPieceAt(pos).move(pos) } } } } function moveTo(from, to) { items.audioEffects.play('qrc:/gcompris/src/core/resource/sounds/scroll.wav') var fromPiece = getPieceAt(from) var toPiece = getPieceAt(to) if(toPiece.img != '') items.audioEffects.play('qrc:/gcompris/src/core/resource/sounds/smudge.wav') else items.audioEffects.play('qrc:/gcompris/src/core/resource/sounds/scroll.wav') toPiece.hide(from) fromPiece.move(to) } function promotion(to) { var toPiece = getPieceAt(to) toPiece.promotion() } function getPieceAt(pos) { for(var i=0; i < pieces.count; i++) { if(pieces.itemAt(i).newPos == pos) return pieces.itemAt(i) } return(undefined) } } Timer { id: trigComputerMove repeat: false interval: 400 onTriggered: Activity.randomMove() } // Use to redo the computer move after the user move Timer { id: redoTimer repeat: false interval: 400 onTriggered: { acceptClick = true; Activity.moveByEngine(move) } property var move function moveByEngine(engineMove) { move = engineMove redoTimer.start() } } DialogHelp { id: dialogHelp onClose: home() } Bar { id: bar content: BarEnumContent { value: help | home | (items.twoPlayer ? 0 : level) | (items.twoPlayer && !items.gameOver ? 0 : reload) } onHelpClicked: { displayDialog(dialogHelp) } onPreviousLevelClicked: Activity.previousLevel() onNextLevelClicked: Activity.nextLevel() onHomeClicked: activity.home() onReloadClicked: { trigComputerMove.stop() Activity.initLevel() } } Bonus { id: bonus } } } diff --git a/src/activities/chronos/resource/board/board1_0.qml b/src/activities/chronos/resource/board/board1_0.qml index f4ab185bd..089f9360b 100644 --- a/src/activities/chronos/resource/board/board1_0.qml +++ b/src/activities/chronos/resource/board/board1_0.qml @@ -1,84 +1,84 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Moonwalker") - property variant levels: [ + property var levels: [ { "pixmapfile": "images/bg.jpg", "type": "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile": "images/4.png", "x": "0.7", "y": "0.7", "soundFile": "sound/2.$CA" }, { "pixmapfile": "images/3.png", "x": "0.3", "y": "0.7", "soundFile": "sound/3.$CA" }, { "pixmapfile": "images/2.png", "x": "0.7", "y": "0.25", "soundFile": "sound/2.$CA" }, { "pixmapfile": "images/1.png", "x": "0.3", "y": "0.25", "soundFile": "sound/1.$CA" }, { "text": qsTr("1"), "x": "0.3", "y": 0.25, "width": "0.2", "type": "DisplayText" }, { "text": qsTr("2"), "x": "0.7", "y": 0.25, "width": "0.2", "type": "DisplayText" }, { "text": qsTr("3"), "x": "0.3", "y": 0.7, "width": "0.2", "type": "DisplayText" }, { "text": qsTr("4"), "x": "0.7", "y": 0.7, "width": "0.2", "type": "DisplayText" } ] } diff --git a/src/activities/chronos/resource/board/board2_0.qml b/src/activities/chronos/resource/board/board2_0.qml index 5b4510bc6..258238e47 100644 --- a/src/activities/chronos/resource/board/board2_0.qml +++ b/src/activities/chronos/resource/board/board2_0.qml @@ -1,84 +1,84 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("The 4 Seasons") - property variant levels: [ + property var levels: [ { "pixmapfile": "images/autumn.svg", "x": 0.25, "y": 0.7, "width": 0.4, "height": 0.319 }, { "pixmapfile": "images/summer.svg", "x": 0.75, "y": 0.25, "width": 0.4, "height": 0.319 }, { "pixmapfile": "images/spring.svg", "x": 0.25, "y": 0.25, "width": 0.4, "height": 0.319 }, { "pixmapfile": "images/winter.svg", "x": 0.75, "y": 0.7, "width": 0.4, "height": 0.319 }, { "text": qsTr("Spring"), "x": "0.25", "y": 0.25, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("Summer"), "x": "0.75", "y": 0.25, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("Autumn"), "x": "0.25", "y": 0.7, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("Winter"), "x": "0.75", "y": 0.7, "width": "0.4", "type": "DisplayText" } ] } diff --git a/src/activities/chronos/resource/board/board3_0.qml b/src/activities/chronos/resource/board/board3_0.qml index d6546a525..12c0254f6 100644 --- a/src/activities/chronos/resource/board/board3_0.qml +++ b/src/activities/chronos/resource/board/board3_0.qml @@ -1,84 +1,84 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Gardening") - property variant levels: [ + property var levels: [ { "pixmapfile": "images/garden1.svg", "x": 0.25, "y": 0.25, "width": 0.4, "height": 0.309 }, { "pixmapfile": "images/garden4.svg", "x": 0.75, "y": 0.7, "width": 0.4, "height": 0.309 }, { "pixmapfile": "images/garden3.svg", "x": 0.25, "y": 0.7, "width": 0.4, "height": 0.309 }, { "pixmapfile": "images/garden2.svg", "x": 0.75, "y": 0.25, "width": 0.4, "height": 0.309 }, { "text": qsTr("1"), "x": "0.25", "y": 0.25, "width": "0.2", "type": "DisplayText" }, { "text": qsTr("2"), "x": "0.75", "y": 0.25, "width": "0.2", "type": "DisplayText" }, { "text": qsTr("3"), "x": "0.25", "y": 0.7, "width": "0.2", "type": "DisplayText" }, { "text": qsTr("4"), "x": "0.75", "y": 0.7, "width": "0.2", "type": "DisplayText" } ] } diff --git a/src/activities/chronos/resource/board/board4_0.qml b/src/activities/chronos/resource/board/board4_0.qml index 259a18597..2a87fb095 100644 --- a/src/activities/chronos/resource/board/board4_0.qml +++ b/src/activities/chronos/resource/board/board4_0.qml @@ -1,84 +1,84 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Tux and the apple tree") - property variant levels: [ + property var levels: [ { "pixmapfile": "images/chronos-tuxtree3.svg", "x": "0.25", "y": "0.7", "width": 0.4, "height": 0.4 }, { "pixmapfile": "images/chronos-tuxtree2.svg", "x": "0.75", "y": "0.25", "width": 0.4, "height": 0.4 }, { "pixmapfile": "images/chronos-tuxtree4.svg", "x": "0.75", "y": "0.7", "width": 0.4, "height": 0.4 }, { "pixmapfile": "images/chronos-tuxtree1.svg", "x": "0.25", "y": "0.25", "width": 0.4, "height": 0.4 }, { "text": qsTr("1"), "x": "0.25", "y": 0.25, "width": "0.2", "type": "DisplayText" }, { "text": qsTr("2"), "x": "0.75", "y": 0.25, "width": "0.2", "type": "DisplayText" }, { "text": qsTr("3"), "x": "0.25", "y": 0.7, "width": "0.2", "type": "DisplayText" }, { "text": qsTr("4"), "x": "0.75", "y": 0.7, "width": "0.2", "type": "DisplayText" } ] } diff --git a/src/activities/chronos/resource/board/board5_0.qml b/src/activities/chronos/resource/board/board5_0.qml index 8b2649631..2eb9372d3 100644 --- a/src/activities/chronos/resource/board/board5_0.qml +++ b/src/activities/chronos/resource/board/board5_0.qml @@ -1,64 +1,64 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property int numberOfSubLevel: 4 property string instruction: qsTr("Place each image in the order and on the date it was invented.") - property variant levels: [ + property var levels: [ { "pixmapfile": "images/fardier.svg", "x": 0.7, "y": 0.8, "width": 0.4, "height": 0.14 }, { "pixmapfile": "images/st_rocket.svg", "x": 0.25, "y": 0.55, "width": 0.4, "height": 0.308 }, { "text": qsTr("1829 Stephenson's Rocket Steam locomotive"), "x": 0.24, "y": 0.29, "width": 0.4, "type": "DisplayText" }, { "text": qsTr("1769 Cugnot's fardier"), "x": 0.75, "y": 0.59, "width": 0.4, "type": "DisplayText" }, { "text": qsTr("Transportation"), "x": 0.8, "y": 0.3, "width": 0.3, "type": "DisplayText" } ] } diff --git a/src/activities/chronos/resource/board/board5_1.qml b/src/activities/chronos/resource/board/board5_1.qml index bd3df6e7a..7745c64e3 100644 --- a/src/activities/chronos/resource/board/board5_1.qml +++ b/src/activities/chronos/resource/board/board5_1.qml @@ -1,70 +1,70 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Transportation") - property variant levels: [ + property var levels: [ { "pixmapfile": "images/helico_cornu.svg", "x": 0.75, "y": 0.55, "width": 0.4, "height": 0.16 }, { "pixmapfile": "images/Eole.svg", "x": "0.5", "y": "0.9", "width": 0.4, "height": 0.2 }, { "pixmapfile": "images/mongolfiere.svg", "x": 0.2, "y": 0.55, "width": 0.4, "height": 0.522 }, { "text": qsTr("1783 Montgolfier brothers' hot air balloon"), "x": "0.25", "y": 0.2, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("1880 Clement Ader's Eole"), "x": "0.5", "y": 0.75, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("1906 Paul Cornu First helicopter flight"), "x": 0.75, "y": 0.21, "width": 0.4, "type": "DisplayText" } ] } diff --git a/src/activities/chronos/resource/board/board5_2.qml b/src/activities/chronos/resource/board/board5_2.qml index a07123985..79df6e34c 100644 --- a/src/activities/chronos/resource/board/board5_2.qml +++ b/src/activities/chronos/resource/board/board5_2.qml @@ -1,70 +1,70 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Transportation") - property variant levels: [ + property var levels: [ { "pixmapfile": "images/celerifere.svg", "x": 0.2, "y": 0.55, "width": 0.4, "height": 0.406 }, { "pixmapfile": "images/fardier.svg", "x": 0.5, "y": 0.9, "width": 0.4, "height": 0.14 }, { "pixmapfile": "images/Eole.svg", "x": 0.75, "y": 0.55, "width": 0.4, "height": 0.4 }, { "text": qsTr("1791 Comte de Sivrac's Celerifere"), "x": "0.25", "y": 0.2, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("1769 Cugnot's fardier"), "x": "0.5", "y": 0.75, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("1880 Clement Ader's Eole"), "x": "0.75", "y": 0.21, "width": "0.4", "type": "DisplayText" } ] } diff --git a/src/activities/chronos/resource/board/board5_3.qml b/src/activities/chronos/resource/board/board5_3.qml index f09cabe83..4c4fdc3a3 100644 --- a/src/activities/chronos/resource/board/board5_3.qml +++ b/src/activities/chronos/resource/board/board5_3.qml @@ -1,70 +1,70 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Transportation") - property variant levels: [ + property var levels: [ { "pixmapfile": "images/celerifere.svg", "x": "0.2", "y": "0.55", "width": 0.4, "height": 0.406 }, { "pixmapfile": "images/mongolfiere.svg", "x": 0.5, "y": 0.9, "width": 0.4, "height": 0.522 }, { "pixmapfile": "images/st_rocket.svg", "x": 0.75, "y": 0.55, "width": 0.4, "height": 0.308 }, { "text": qsTr("1791 Comte de Sivrac's Celerifere"), "x": "0.25", "y": 0.2, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("1783 Montgolfier brothers' hot air balloon"), "x": "0.5", "y": 0.75, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("1829 Stephenson's Rocket Steam locomotive"), "x": "0.75", "y": 0.21, "width": "0.4", "type": "DisplayText" } ] } diff --git a/src/activities/chronos/resource/board/board5_4.qml b/src/activities/chronos/resource/board/board5_4.qml index a670b37ae..137179dc1 100644 --- a/src/activities/chronos/resource/board/board5_4.qml +++ b/src/activities/chronos/resource/board/board5_4.qml @@ -1,70 +1,70 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Transportation") - property variant levels: [ + property var levels: [ { "pixmapfile": "images/st_rocket.svg", "x": 0.2, "y": 0.55, "width": 0.4, "height": 0.308 }, { "pixmapfile": "images/Eole.svg", "x": "0.5", "y": "0.9", "width": 0.4, "height": 0.2 }, { "pixmapfile": "images/fardier.svg", "x": 0.75, "y": 0.55, "width": 0.4, "height": 0.14 }, { "text": qsTr("1829 Stephenson's Rocket Steam locomotive"), "x": "0.25", "y": 0.2, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("1880 Clement Ader's Eole"), "x": "0.5", "y": 0.75, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("1769 Cugnot's fardier"), "x": "0.75", "y": 0.21, "width": "0.4", "type": "DisplayText" } ] } diff --git a/src/activities/chronos/resource/board/board6_0.qml b/src/activities/chronos/resource/board/board6_0.qml index e7135414c..8db5fa219 100644 --- a/src/activities/chronos/resource/board/board6_0.qml +++ b/src/activities/chronos/resource/board/board6_0.qml @@ -1,71 +1,71 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property int numberOfSubLevel: 3 property string instruction: qsTr("Aviation") - property variant levels: [ + property var levels: [ { "pixmapfile": "images/Eole.svg", "x": "0.2", "y": "0.55", "width": 0.4, "height": 0.4 }, { "pixmapfile": "images/wright_flyer.svg", "x": 0.5, "y": 0.9, "width": 0.4, "height": 0.216 }, { "pixmapfile": "images/bleriot.svg", "x": 0.75, "y": 0.55, "width": 0.4, "height": 0.115 }, { "text": qsTr("1880 Clement Ader's Eole"), "x": "0.25", "y": 0.2, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("1903 The Wright brothers' Flyer III"), "x": 0.5, "y": 0.75, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("1909 Louis Bleriot crosses the English Channel"), "x": "0.75", "y": 0.21, "width": "0.4", "type": "DisplayText" } ] } diff --git a/src/activities/chronos/resource/board/board6_1.qml b/src/activities/chronos/resource/board/board6_1.qml index 868ec9b55..ceb8ede14 100644 --- a/src/activities/chronos/resource/board/board6_1.qml +++ b/src/activities/chronos/resource/board/board6_1.qml @@ -1,70 +1,70 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Aviation") - property variant levels: [ + property var levels: [ { "pixmapfile": "images/bell_X1.svg", "x": 0.2, "y": 0.55, "width": 0.4, "height": 0.244 }, { "pixmapfile": "images/lindbergh.svg", "x": 0.5, "y": 0.9, "width": 0.4, "height": 0.14 }, { "pixmapfile": "images/rafale.svg", "x": 0.75, "y": 0.55, "width": 0.4, "height": 0.292 }, { "text": qsTr("1947 Chuck Yeager breaks the sound-barrier"), "x": "0.25", "y": 0.2, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("1927 Charles Lindbergh crosses the Atlantic Ocean"), "x": "0.5", "y": 0.75, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("1934 Hélène Boucher's speed record of 444km/h"), "x": "0.75", "y": 0.21, "width": "0.4", "type": "DisplayText" } ] } diff --git a/src/activities/chronos/resource/board/board6_2.qml b/src/activities/chronos/resource/board/board6_2.qml index 46b375687..95b6d2369 100644 --- a/src/activities/chronos/resource/board/board6_2.qml +++ b/src/activities/chronos/resource/board/board6_2.qml @@ -1,70 +1,70 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Cars") - property variant levels: [ + property var levels: [ { "pixmapfile": "images/bolle1878.svg", "x": "0.2", "y": "0.55", "width": 0.4, "height": 0.4 }, { "pixmapfile": "images/fardier.svg", "x": 0.5, "y": 0.9, "width": 0.4, "height": 0.14 }, { "pixmapfile": "images/benz1885.svg", "x": 0.75, "y": 0.55, "width": 0.4, "height": 0.32 }, { "text": qsTr("1878 Amédée Bollée's La Mancelle"), "x": "0.25", "y": 0.2, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("1769 Cugnot's fardier"), "x": "0.5", "y": 0.75, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("1885 The first petrol car by Benz"), "x": "0.75", "y": 0.21, "width": "0.4", "type": "DisplayText" } ] } diff --git a/src/activities/chronos/resource/board/board6_3.qml b/src/activities/chronos/resource/board/board6_3.qml index 8cbe69e64..8131b57ff 100644 --- a/src/activities/chronos/resource/board/board6_3.qml +++ b/src/activities/chronos/resource/board/board6_3.qml @@ -1,70 +1,70 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Cars") - property variant levels: [ + property var levels: [ { "pixmapfile": "images/renault1899.svg", "x": 0.2, "y": 0.55, "width": 0.4, "height": 0.305 }, { "pixmapfile": "images/lancia1923.svg", "x": 0.5, "y": 0.9, "width": 0.4, "height": 0.16 }, { "pixmapfile": "images/1955ds19.svg", "x": 0.75, "y": 0.55, "width": 0.4, "height": 0.19 }, { "text": qsTr("1899 Renault voiturette"), "x": "0.25", "y": 0.2, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("1923 Lancia Lambda"), "x": "0.5", "y": 0.75, "width": "0.4", "type": "DisplayText" }, { "text": qsTr("1955 Citroën DS 19"), "x": 0.75, "y": 0.21, "width": 0.4, "type": "DisplayText" } ] } diff --git a/src/activities/details/resource/board/board10_0.qml b/src/activities/details/resource/board/board10_0.qml index d6e11f086..b6d927d70 100644 --- a/src/activities/details/resource/board/board10_0.qml +++ b/src/activities/details/resource/board/board10_0.qml @@ -1,44 +1,44 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Eilean Donan castle") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/EilanDonanCastle_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/EilanDonanCastle_0.png", "x" : "0.566", "y" : "0.327", "dropAreaSize" : "8" }, { "pixmapfile" : "image/EilanDonanCastle_1.png", "x" : "0.825", "y" : "0.174", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board11_0.qml b/src/activities/details/resource/board/board11_0.qml index 8951bcf8a..92f43a8e7 100644 --- a/src/activities/details/resource/board/board11_0.qml +++ b/src/activities/details/resource/board/board11_0.qml @@ -1,56 +1,56 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Gizah Pyramids, Egypt") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/GizahPyramids_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/GizahPyramids_0.png", "x" : "0.754", "y" : "0.498", "dropAreaSize" : "8" }, { "pixmapfile" : "image/GizahPyramids_1.png", "x" : "0.585", "y" : "0.365", "dropAreaSize" : "8" }, { "pixmapfile" : "image/GizahPyramids_2.png", "x" : "0.41", "y" : "0.604", "dropAreaSize" : "8" }, { "pixmapfile" : "image/GizahPyramids_3.png", "x" : "0.891", "y" : "0.71", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board12_0.qml b/src/activities/details/resource/board/board12_0.qml index 80824afb6..5c6183994 100644 --- a/src/activities/details/resource/board/board12_0.qml +++ b/src/activities/details/resource/board/board12_0.qml @@ -1,56 +1,56 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Sydney Opera House, Australia") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/OperaSidney_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/OperaSidney_0.png", "x" : "0.243", "y" : "0.543", "dropAreaSize" : "8" }, { "pixmapfile" : "image/OperaSidney_1.png", "x" : "0.399", "y" : "0.596", "dropAreaSize" : "8" }, { "pixmapfile" : "image/OperaSidney_2.png", "x" : "0.471", "y" : "0.375", "dropAreaSize" : "8" }, { "pixmapfile" : "image/OperaSidney_3.png", "x" : "0.579", "y" : "0.58", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board13_0.qml b/src/activities/details/resource/board/board13_0.qml index f697e9b94..53b5cbc14 100644 --- a/src/activities/details/resource/board/board13_0.qml +++ b/src/activities/details/resource/board/board13_0.qml @@ -1,62 +1,62 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Tower Bridge in London") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/TowerBridgeLondon_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/TowerBridgeLondon_0.png", "x" : "0.487", "y" : "0.365", "dropAreaSize" : "8" }, { "pixmapfile" : "image/TowerBridgeLondon_1.png", "x" : "0.774", "y" : "0.206", "dropAreaSize" : "8" }, { "pixmapfile" : "image/TowerBridgeLondon_2.png", "x" : "0.382", "y" : "0.709", "dropAreaSize" : "8" }, { "pixmapfile" : "image/TowerBridgeLondon_3.png", "x" : "0.844", "y" : "0.565", "dropAreaSize" : "8" }, { "pixmapfile" : "image/TowerBridgeLondon_4.png", "x" : "0.226", "y" : "0.668", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board14_0.qml b/src/activities/details/resource/board/board14_0.qml index f62f12da9..9776e6c1e 100644 --- a/src/activities/details/resource/board/board14_0.qml +++ b/src/activities/details/resource/board/board14_0.qml @@ -1,44 +1,44 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Eiffel Tower, seen from the champ de Mars, Paris, France") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/TourEiffel_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/TourEiffel_0.png", "x" : "0.493", "y" : "0.09", "dropAreaSize" : "8" }, { "pixmapfile" : "image/TourEiffel_1.png", "x" : "0.489", "y" : "0.524", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board15_0.qml b/src/activities/details/resource/board/board15_0.qml index 00490239e..33f2b622e 100644 --- a/src/activities/details/resource/board/board15_0.qml +++ b/src/activities/details/resource/board/board15_0.qml @@ -1,50 +1,50 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Courtyard of the Museum of Louvre, and its pyramid") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/Louvre_2007_02_24_c_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/Louvre_2007_02_24_c_0.png", "x" : "0.9", "y" : "0.495", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Louvre_2007_02_24_c_1.png", "x" : "0.494", "y" : "0.509", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Louvre_2007_02_24_c_2.png", "x" : "0.164", "y" : "0.437", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board16_0.qml b/src/activities/details/resource/board/board16_0.qml index 249f20ebb..1e250cdf1 100644 --- a/src/activities/details/resource/board/board16_0.qml +++ b/src/activities/details/resource/board/board16_0.qml @@ -1,50 +1,50 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Panorama of Château de Chenonceau, Indre-et-Loire, France.") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/Chenonceau_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/Chenonceau_0.png", "x" : "0.199", "y" : "0.459", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Chenonceau_1.png", "x" : "0.318", "y" : "0.421", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Chenonceau_2.png", "x" : "0.469", "y" : "0.579", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board17_0.qml b/src/activities/details/resource/board/board17_0.qml index 126afc183..a44887b66 100644 --- a/src/activities/details/resource/board/board17_0.qml +++ b/src/activities/details/resource/board/board17_0.qml @@ -1,56 +1,56 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Windmill in Sønderho, Fanø, Denmark") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/FanoeWindmill_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/FanoeWindmill_0.png", "x" : "0.679", "y" : "0.324", "dropAreaSize" : "8" }, { "pixmapfile" : "image/FanoeWindmill_1.png", "x" : "0.162", "y" : "0.612", "dropAreaSize" : "8" }, { "pixmapfile" : "image/FanoeWindmill_2.png", "x" : "0.703", "y" : "0.812", "dropAreaSize" : "8" }, { "pixmapfile" : "image/FanoeWindmill_3.png", "x" : "0.372", "y" : "0.696", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board18_0.qml b/src/activities/details/resource/board/board18_0.qml index c03ada7d3..1dc036bce 100644 --- a/src/activities/details/resource/board/board18_0.qml +++ b/src/activities/details/resource/board/board18_0.qml @@ -1,62 +1,62 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Nagoya Castle, Aichi Prefecture, Japan.") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/Nagoya_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/Nagoya_0.png", "x" : "0.731", "y" : "0.35", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Nagoya_1.png", "x" : "0.76", "y" : "0.721", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Nagoya_2.png", "x" : "0.213", "y" : "0.543", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Nagoya_3.png", "x" : "0.669", "y" : "0.117", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Nagoya_4.png", "x" : "0.515", "y" : "0.522", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board19_0.qml b/src/activities/details/resource/board/board19_0.qml index 787594545..76c7a9ff0 100644 --- a/src/activities/details/resource/board/board19_0.qml +++ b/src/activities/details/resource/board/board19_0.qml @@ -1,68 +1,68 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Taj Mahal, Agra, India") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/TajMahal_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/TajMahal_0.png", "x" : "0.499", "y" : "0.1", "dropAreaSize" : "8" }, { "pixmapfile" : "image/TajMahal_1.png", "x" : "0.893", "y" : "0.252", "dropAreaSize" : "8" }, { "pixmapfile" : "image/TajMahal_2.png", "x" : "0.507", "y" : "0.534", "dropAreaSize" : "8" }, { "pixmapfile" : "image/TajMahal_3.png", "x" : "0.351", "y" : "0.33", "dropAreaSize" : "8" }, { "pixmapfile" : "image/TajMahal_4.png", "x" : "0.626", "y" : "0.32", "dropAreaSize" : "8" }, { "pixmapfile" : "image/TajMahal_5.png", "x" : "0.501", "y" : "0.256", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board1_0.qml b/src/activities/details/resource/board/board1_0.qml index 1c8200bd9..6df947d4a 100644 --- a/src/activities/details/resource/board/board1_0.qml +++ b/src/activities/details/resource/board/board1_0.qml @@ -1,44 +1,44 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Vincent van Gogh, Entrance Hall of Saint-Paul Hospital - 1889") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/VincentVanGogh0012_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/VincentVanGogh0012_0.png", "x" : "0.543", "y" : "0.102", "dropAreaSize" : "8" }, { "pixmapfile" : "image/VincentVanGogh0012_1.png", "x" : "0.601", "y" : "0.468", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board20_0.qml b/src/activities/details/resource/board/board20_0.qml index 7320f0cd9..f84476904 100644 --- a/src/activities/details/resource/board/board20_0.qml +++ b/src/activities/details/resource/board/board20_0.qml @@ -1,92 +1,92 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Castle Neuschwanstein at Schwangau, Bavaria, Germany") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/Neuschwanstein_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/Neuschwanstein_0.png", "x" : "0.876", "y" : "0.578", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Neuschwanstein_1.png", "x" : "0.759", "y" : "0.537", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Neuschwanstein_2.png", "x" : "0.674", "y" : "0.348", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Neuschwanstein_3.png", "x" : "0.557", "y" : "0.465", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Neuschwanstein_4.png", "x" : "0.553", "y" : "0.735", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Neuschwanstein_5.png", "x" : "0.434", "y" : "0.537", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Neuschwanstein_6.png", "x" : "0.325", "y" : "0.265", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Neuschwanstein_7.png", "x" : "0.254", "y" : "0.11", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Neuschwanstein_8.png", "x" : "0.165", "y" : "0.535", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Neuschwanstein_9.png", "x" : "0.059", "y" : "0.499", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board21_0.qml b/src/activities/details/resource/board/board21_0.qml index a2e3da6ea..4b685923a 100644 --- a/src/activities/details/resource/board/board21_0.qml +++ b/src/activities/details/resource/board/board21_0.qml @@ -1,80 +1,80 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Egeskov Castle, Denmark") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/EgeskovSlotSpejling_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/EgeskovSlotSpejling_0.png", "x" : "0.766", "y" : "0.197", "dropAreaSize" : "8" }, { "pixmapfile" : "image/EgeskovSlotSpejling_1.png", "x" : "0.762", "y" : "0.816", "dropAreaSize" : "8" }, { "pixmapfile" : "image/EgeskovSlotSpejling_2.png", "x" : "0.669", "y" : "0.209", "dropAreaSize" : "8" }, { "pixmapfile" : "image/EgeskovSlotSpejling_3.png", "x" : "0.568", "y" : "0.452", "dropAreaSize" : "8" }, { "pixmapfile" : "image/EgeskovSlotSpejling_4.png", "x" : "0.524", "y" : "0.101", "dropAreaSize" : "8" }, { "pixmapfile" : "image/EgeskovSlotSpejling_5.png", "x" : "0.278", "y" : "0.161", "dropAreaSize" : "8" }, { "pixmapfile" : "image/EgeskovSlotSpejling_6.png", "x" : "0.524", "y" : "0.81", "dropAreaSize" : "8" }, { "pixmapfile" : "image/EgeskovSlotSpejling_7.png", "x" : "0.416", "y" : "0.412", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board2_0.qml b/src/activities/details/resource/board/board2_0.qml index 5cf94684d..7ae66cece 100644 --- a/src/activities/details/resource/board/board2_0.qml +++ b/src/activities/details/resource/board/board2_0.qml @@ -1,44 +1,44 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Vincent van Gogh, The Bridge of Langlois at Arles with a lady with umbrella - 1888") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/VincentVanGoghBridge_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/VincentVanGoghBridge_0.png", "x" : "0.56", "y" : "0.536", "dropAreaSize" : "8" }, { "pixmapfile" : "image/VincentVanGoghBridge_1.png", "x" : "0.943", "y" : "0.5", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board3_0.qml b/src/activities/details/resource/board/board3_0.qml index 53a34da83..58a8b11f5 100644 --- a/src/activities/details/resource/board/board3_0.qml +++ b/src/activities/details/resource/board/board3_0.qml @@ -1,50 +1,50 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Vincent van Gogh, The Church at Auvers-sur-Oise - 1890") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/Eglise_dAuvers-sur-Oise_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/Eglise_dAuvers-sur-Oise_0.png", "x" : "0.181", "y" : "0.78", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Eglise_dAuvers-sur-Oise_1.png", "x" : "0.577", "y" : "0.178", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Eglise_dAuvers-sur-Oise_2.png", "x" : "0.091", "y" : "0.56", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board4_0.qml b/src/activities/details/resource/board/board4_0.qml index 4e6304a22..85c57e482 100644 --- a/src/activities/details/resource/board/board4_0.qml +++ b/src/activities/details/resource/board/board4_0.qml @@ -1,62 +1,62 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Vincent van Gogh, Painter on His Way to Work - 1888") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/VincentVanGogh0013_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/VincentVanGogh0013_0.png", "x" : "0.501", "y" : "0.32", "dropAreaSize" : "8" }, { "pixmapfile" : "image/VincentVanGogh0013_1.png", "x" : "0.859", "y" : "0.828", "dropAreaSize" : "8" }, { "pixmapfile" : "image/VincentVanGogh0013_2.png", "x" : "0.67", "y" : "0.22", "dropAreaSize" : "8" }, { "pixmapfile" : "image/VincentVanGogh0013_3.png", "x" : "0.396", "y" : "0.268", "dropAreaSize" : "8" }, { "pixmapfile" : "image/VincentVanGogh0013_4.png", "x" : "0.212", "y" : "0.44", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board5_0.qml b/src/activities/details/resource/board/board5_0.qml index ec0bef428..2adb3ca42 100644 --- a/src/activities/details/resource/board/board5_0.qml +++ b/src/activities/details/resource/board/board5_0.qml @@ -1,86 +1,86 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Vincent van Gogh, The Harvest - 1888") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/VincentVanGogh0019_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/VincentVanGogh0019_0.png", "x" : "0.393", "y" : "0.348", "dropAreaSize" : "8" }, { "pixmapfile" : "image/VincentVanGogh0019_1.png", "x" : "0.784", "y" : "0.498", "dropAreaSize" : "8" }, { "pixmapfile" : "image/VincentVanGogh0019_2.png", "x" : "0.5", "y" : "0.464", "dropAreaSize" : "8" }, { "pixmapfile" : "image/VincentVanGogh0019_3.png", "x" : "0.13", "y" : "0.346", "dropAreaSize" : "8" }, { "pixmapfile" : "image/VincentVanGogh0019_4.png", "x" : "0.685", "y" : "0.604", "dropAreaSize" : "8" }, { "pixmapfile" : "image/VincentVanGogh0019_5.png", "x" : "0.226", "y" : "0.212", "dropAreaSize" : "8" }, { "pixmapfile" : "image/VincentVanGogh0019_6.png", "x" : "0.908", "y" : "0.21", "dropAreaSize" : "8" }, { "pixmapfile" : "image/VincentVanGogh0019_7.png", "x" : "0.292", "y" : "0.484", "dropAreaSize" : "8" }, { "pixmapfile" : "image/VincentVanGogh0019_8.png", "x" : "0.337", "y" : "0.27", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board6_0.qml b/src/activities/details/resource/board/board6_0.qml index 666d65799..890d71551 100644 --- a/src/activities/details/resource/board/board6_0.qml +++ b/src/activities/details/resource/board/board6_0.qml @@ -1,86 +1,86 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Vincent van Gogh, Cafe Terrace at Night - 1888") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/Gogh4_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/Gogh4_0.png", "x" : "0.753", "y" : "0.594", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Gogh4_1.png", "x" : "0.234", "y" : "0.776", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Gogh4_2.png", "x" : "0.633", "y" : "0.618", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Gogh4_3.png", "x" : "0.459", "y" : "0.922", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Gogh4_4.png", "x" : "0.511", "y" : "0.112", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Gogh4_5.png", "x" : "0.88", "y" : "0.532", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Gogh4_6.png", "x" : "0.783", "y" : "0.198", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Gogh4_7.png", "x" : "0.229", "y" : "0.444", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Gogh4_8.png", "x" : "0.579", "y" : "0.794", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board7_0.qml b/src/activities/details/resource/board/board7_0.qml index 97dc5a293..14fe13f10 100644 --- a/src/activities/details/resource/board/board7_0.qml +++ b/src/activities/details/resource/board/board7_0.qml @@ -1,80 +1,80 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Vincent van Gogh, The Night Café - 1888") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/Van_Gogh_The_Night_Cafe_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/Van_Gogh_The_Night_Cafe_0.png", "x" : "0.328", "y" : "0.124", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Van_Gogh_The_Night_Cafe_1.png", "x" : "0.606", "y" : "0.538", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Van_Gogh_The_Night_Cafe_2.png", "x" : "0.675", "y" : "0.356", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Van_Gogh_The_Night_Cafe_3.png", "x" : "0.808", "y" : "0.29", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Van_Gogh_The_Night_Cafe_4.png", "x" : "0.166", "y" : "0.354", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Van_Gogh_The_Night_Cafe_5.png", "x" : "0.278", "y" : "0.258", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Van_Gogh_The_Night_Cafe_6.png", "x" : "0.915", "y" : "0.944", "dropAreaSize" : "8" }, { "pixmapfile" : "image/Van_Gogh_The_Night_Cafe_7.png", "x" : "0.42", "y" : "0.262", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board8_0.qml b/src/activities/details/resource/board/board8_0.qml index 8eb15eedf..658231af6 100644 --- a/src/activities/details/resource/board/board8_0.qml +++ b/src/activities/details/resource/board/board8_0.qml @@ -1,86 +1,86 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Vincent van Gogh, Portrait of Pere Tanguy 1887-8") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/PortraitOfPereTanguy_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/PortraitOfPereTanguy_0.png", "x" : "0.112", "y" : "0.364", "dropAreaSize" : "8" }, { "pixmapfile" : "image/PortraitOfPereTanguy_1.png", "x" : "0.503", "y" : "0.252", "dropAreaSize" : "8" }, { "pixmapfile" : "image/PortraitOfPereTanguy_2.png", "x" : "0.904", "y" : "0.544", "dropAreaSize" : "8" }, { "pixmapfile" : "image/PortraitOfPereTanguy_3.png", "x" : "0.594", "y" : "0.466", "dropAreaSize" : "8" }, { "pixmapfile" : "image/PortraitOfPereTanguy_4.png", "x" : "0.107", "y" : "0.91", "dropAreaSize" : "8" }, { "pixmapfile" : "image/PortraitOfPereTanguy_5.png", "x" : "0.485", "y" : "0.814", "dropAreaSize" : "8" }, { "pixmapfile" : "image/PortraitOfPereTanguy_6.png", "x" : "0.254", "y" : "0.212", "dropAreaSize" : "8" }, { "pixmapfile" : "image/PortraitOfPereTanguy_7.png", "x" : "0.122", "y" : "0.08", "dropAreaSize" : "8" }, { "pixmapfile" : "image/PortraitOfPereTanguy_8.png", "x" : "0.906", "y" : "0.824", "dropAreaSize" : "8" } ] } diff --git a/src/activities/details/resource/board/board9_0.qml b/src/activities/details/resource/board/board9_0.qml index 40e14c5c0..34f704234 100644 --- a/src/activities/details/resource/board/board9_0.qml +++ b/src/activities/details/resource/board/board9_0.qml @@ -1,50 +1,50 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Notre Dame de Paris cathedral on the Île de la Cité island in Paris, France.") - property variant levels: [ + property var levels: [ { "pixmapfile" : "image/NDP_background.jpg", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "image/NDP_0.png", "x" : "0.508", "y" : "0.65", "dropAreaSize" : "8" }, { "pixmapfile" : "image/NDP_1.png", "x" : "0.499", "y" : "0.357", "dropAreaSize" : "8" }, { "pixmapfile" : "image/NDP_2.png", "x" : "0.286", "y" : "0.888", "dropAreaSize" : "8" } ] } diff --git a/src/activities/explore_farm_animals/AnimalLevels.qml b/src/activities/explore_farm_animals/AnimalLevels.qml index 9e0602d77..cc207c92f 100644 --- a/src/activities/explore_farm_animals/AnimalLevels.qml +++ b/src/activities/explore_farm_animals/AnimalLevels.qml @@ -1,113 +1,113 @@ /* GCompris - AnimalLevels.qml * * Copyright (C) 2015 Ayush Agrawal * * Authors: * Beth Hadley (GTK+ version) * Ayush Agrawal (Qt Quick port) * Djalil MESLI (Qt Quick port) * Johnny Jazeix (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import GCompris 1.0 import "../../core" import "explore-level.js" as Activity Image { id: animalImg width: animalWidth height: animalHeight sourceSize.width: width sourceSize.height: height fillMode: Image.PreserveAspectFit property string name: name property alias starVisible: star.visible property int questionId property string title property string description property string imageSource property string question property string audio - signal displayDescription(variant animal) + signal displayDescription(var animal) SequentialAnimation { id: anim running: true loops: 1 NumberAnimation { target: animalImg property: "rotation" from: 0; to: 360 duration: 400 + Math.floor(Math.random() * 400) easing.type: Easing.InOutQuad } } Image { id: star x: animalImg.width / 2.5 y: animalImg.height * 0.8 visible: false source:"qrc:/gcompris/src/core/resource/star.png" } MultiPointTouchArea { id: touchArea anchors.centerIn: parent // Make the item big enough to be clicked easily width: Math.max(parent.width, 55 * ApplicationInfo.ratio) height: Math.max(parent.height, 55 * ApplicationInfo.ratio) touchPoints: [ TouchPoint { id: point1 } ] mouseEnabled: true onPressed: { var questionTargetId = items.questionOrder[Activity.items.progressbar.value] Activity.items.instruction.visible = false if (Activity.items.score.currentSubLevel == 1) { audioVoices.play(animalImg.audio); displayDescription(animalImg) star.visible = true; } else { if (questionId === questionTargetId) { animWin.start(); items.progressbar.value ++; Activity.nextSubSubLevel(); } else { items.bonus.bad("smiley") } } } } SequentialAnimation { id: animWin running: false loops: 1 NumberAnimation { target: animalImg property: "rotation" from: 0; to: 360 duration: 600 easing.type: Easing.InOutQuad } } } diff --git a/src/activities/geo-country/resource/board/board10_0.qml b/src/activities/geo-country/resource/board/board10_0.qml index f83f7b1e2..14c207d1a 100644 --- a/src/activities/geo-country/resource/board/board10_0.qml +++ b/src/activities/geo-country/resource/board/board10_0.qml @@ -1,340 +1,340 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property int numberOfSubLevel: 1 property string instruction: qsTr("United States of America") - property variant levels: [ + property var levels: [ { "pixmapfile" : "usa/background.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "usa/washington.png", "toolTipText" : "Washington", "x" : "0.13", "y" : "0.083" }, { "pixmapfile" : "usa/oregon.png", "toolTipText" : "Oregon", "x" : "0.11", "y" : "0.199" }, { "pixmapfile" : "usa/idaho.png", "toolTipText" : "Idaho", "x" : "0.209", "y" : "0.187" }, { "pixmapfile" : "usa/montana.png", "toolTipText" : "Montana", "x" : "0.293", "y" : "0.147" }, { "pixmapfile" : "usa/north_dakota.png", "toolTipText" : "North Dakota", "x" : "0.436", "y" : "0.156" }, { "pixmapfile" : "usa/south_dakota.png", "toolTipText" : "South Dakota", "x" : "0.435", "y" : "0.273" }, { "pixmapfile" : "usa/nebraska.png", "toolTipText" : "Nebraska", "x" : "0.441", "y" : "0.376" }, { "pixmapfile" : "usa/kansas.png", "toolTipText" : "Kansas", "x" : "0.463", "y" : "0.49" }, { "pixmapfile" : "usa/colorado.png", "toolTipText" : "Colorado", "x" : "0.336", "y" : "0.458" }, { "pixmapfile" : "usa/new_mexico.png", "toolTipText" : "New Mexico", "x" : "0.316", "y" : "0.625" }, { "pixmapfile" : "usa/arizona.png", "toolTipText" : "Arizona", "x" : "0.209", "y" : "0.613" }, { "pixmapfile" : "usa/alaska.png", "toolTipText" : "Alaska", "x" : "0.115", "y" : "0.861" }, { "pixmapfile" : "usa/hawaii.png", "toolTipText" : "Hawaii", "x" : "0.302", "y" : "0.921" }, { "pixmapfile" : "usa/texas.png", "toolTipText" : "Texas", "x" : "0.427", "y" : "0.754" }, { "pixmapfile" : "usa/oklahoma.png", "toolTipText" : "Oklahoma", "x" : "0.456", "y" : "0.605" }, { "pixmapfile" : "usa/minnesota.png", "toolTipText" : "Minnesota", "x" : "0.544", "y" : "0.197" }, { "pixmapfile" : "usa/iowa.png", "toolTipText" : "Iowa", "x" : "0.549", "y" : "0.36" }, { "pixmapfile" : "usa/missouri.png", "toolTipText" : "Missouri", "x" : "0.569", "y" : "0.494" }, { "pixmapfile" : "usa/arkansas.png", "toolTipText" : "Arkansas", "x" : "0.574", "y" : "0.622" }, { "pixmapfile" : "usa/louisiana.png", "toolTipText" : "Louisiana", "x" : "0.596", "y" : "0.758" }, { "pixmapfile" : "usa/mississippi.png", "toolTipText" : "Mississippi", "x" : "0.626", "y" : "0.694" }, { "pixmapfile" : "usa/tennessee.png", "toolTipText" : "Tennessee", "x" : "0.69", "y" : "0.569" }, { "pixmapfile" : "usa/kentucky.png", "toolTipText" : "Kentucky", "x" : "0.69", "y" : "0.503" }, { "pixmapfile" : "usa/indiana.png", "toolTipText" : "Indiana", "x" : "0.673", "y" : "0.428" }, { "pixmapfile" : "usa/illinois.png", "toolTipText" : "Illinois", "x" : "0.618", "y" : "0.436" }, { "pixmapfile" : "usa/wisconsin.png", "toolTipText" : "Wisconsin", "x" : "0.6", "y" : "0.256" }, { "pixmapfile" : "usa/michigan.png", "toolTipText" : "Michigan", "x" : "0.66", "y" : "0.254" }, { "pixmapfile" : "usa/ohio.png", "toolTipText" : "Ohio", "x" : "0.733", "y" : "0.397" }, { "pixmapfile" : "usa/west_virginia.png", "toolTipText" : "West Virginia", "x" : "0.785", "y" : "0.443" }, { "pixmapfile" : "usa/virginia.png", "toolTipText" : "Virginia", "x" : "0.806", "y" : "0.47" }, { "pixmapfile" : "usa/north_carolina.png", "toolTipText" : "North Carolina", "x" : "0.801", "y" : "0.553" }, { "pixmapfile" : "usa/south_carolina.png", "toolTipText" : "South Carolina", "x" : "0.788", "y" : "0.634" }, { "pixmapfile" : "usa/georgia.png", //: Translators: Strip USA| and translate only Georgia "toolTipText" : "USA|Georgia", "x" : "0.75", "y" : "0.673" }, { "pixmapfile" : "usa/florida.png", "toolTipText" : "Florida", "x" : "0.754", "y" : "0.841" }, { "pixmapfile" : "usa/alabama.png", "toolTipText" : "Alabama", "x" : "0.688", "y" : "0.689" }, { "pixmapfile" : "usa/maryland.png", "toolTipText" : "Maryland", "x" : "0.841", "y" : "0.415" }, { "pixmapfile" : "usa/new_jersey.png", "toolTipText" : "New Jersey", "x" : "0.872", "y" : "0.361" }, { "pixmapfile" : "usa/delaware.png", "toolTipText" : "Delaware", "x" : "0.867", "y" : "0.41" }, { "pixmapfile" : "usa/pennsylvania.png", "toolTipText" : "Pennsylvania", "x" : "0.819", "y" : "0.352" }, { "pixmapfile" : "usa/new_york.png", "toolTipText" : "New York", "x" : "0.844", "y" : "0.261" }, { "pixmapfile" : "usa/vermont.png", "toolTipText" : "Vermont", "x" : "0.884", "y" : "0.215" }, { "pixmapfile" : "usa/new_hampshire.png", "toolTipText" : "New Hampshire", "x" : "0.906", "y" : "0.207" }, { "pixmapfile" : "usa/maine.png", "toolTipText" : "Maine", "x" : "0.934", "y" : "0.149" }, { "pixmapfile" : "usa/washington_dc.png", "toolTipText" : "Washington D.C.", "x" : "0.943", "y" : "0.575" }, { "pixmapfile" : "usa/california.png", "toolTipText" : "California", "x" : "0.096", "y" : "0.448" }, { "pixmapfile" : "usa/nevada.png", "toolTipText" : "Nevada", "x" : "0.146", "y" : "0.424" }, { "pixmapfile" : "usa/utah.png", "toolTipText" : "Utah", "x" : "0.233", "y" : "0.418" }, { "pixmapfile" : "usa/wyoming.png", "toolTipText" : "Wyoming", "x" : "0.313", "y" : "0.305" }, { "pixmapfile" : "usa/massachusetts.png", "toolTipText" : "Massachusetts", "x" : "0.909", "y" : "0.266" }, { "pixmapfile" : "usa/rhode_island.png", "toolTipText" : "Rhode Island", "x" : "0.915", "y" : "0.288" }, { "pixmapfile" : "usa/connecticut.png", "toolTipText" : "Connecticut", "x" : "0.896", "y" : "0.301" } ] } diff --git a/src/activities/geo-country/resource/board/board10_1.qml b/src/activities/geo-country/resource/board/board10_1.qml index 51ea2835e..3c0295418 100644 --- a/src/activities/geo-country/resource/board/board10_1.qml +++ b/src/activities/geo-country/resource/board/board10_1.qml @@ -1,339 +1,339 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("United States of America") - property variant levels: [ + property var levels: [ { "pixmapfile" : "usa/background1.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "usa/washington.png", "toolTipText" : "Washington", "x" : "0.13", "y" : "0.083" }, { "pixmapfile" : "usa/oregon.png", "toolTipText" : "Oregon", "x" : "0.11", "y" : "0.199" }, { "pixmapfile" : "usa/idaho.png", "toolTipText" : "Idaho", "x" : "0.209", "y" : "0.187" }, { "pixmapfile" : "usa/montana.png", "toolTipText" : "Montana", "x" : "0.293", "y" : "0.147" }, { "pixmapfile" : "usa/north_dakota.png", "toolTipText" : "North Dakota", "x" : "0.436", "y" : "0.156" }, { "pixmapfile" : "usa/south_dakota.png", "toolTipText" : "South Dakota", "x" : "0.435", "y" : "0.273" }, { "pixmapfile" : "usa/nebraska.png", "toolTipText" : "Nebraska", "x" : "0.441", "y" : "0.376" }, { "pixmapfile" : "usa/kansas.png", "toolTipText" : "Kansas", "x" : "0.463", "y" : "0.49" }, { "pixmapfile" : "usa/colorado.png", "toolTipText" : "Colorado", "x" : "0.336", "y" : "0.458" }, { "pixmapfile" : "usa/new_mexico.png", "toolTipText" : "New Mexico", "x" : "0.316", "y" : "0.625" }, { "pixmapfile" : "usa/arizona.png", "toolTipText" : "Arizona", "x" : "0.209", "y" : "0.613" }, { "pixmapfile" : "usa/alaska.png", "toolTipText" : "Alaska", "x" : "0.115", "y" : "0.861" }, { "pixmapfile" : "usa/hawaii.png", "toolTipText" : "Hawaii", "x" : "0.302", "y" : "0.921" }, { "pixmapfile" : "usa/texas.png", "toolTipText" : "Texas", "x" : "0.427", "y" : "0.754" }, { "pixmapfile" : "usa/oklahoma.png", "toolTipText" : "Oklahoma", "x" : "0.456", "y" : "0.605" }, { "pixmapfile" : "usa/minnesota.png", "toolTipText" : "Minnesota", "x" : "0.544", "y" : "0.197" }, { "pixmapfile" : "usa/iowa.png", "toolTipText" : "Iowa", "x" : "0.549", "y" : "0.36" }, { "pixmapfile" : "usa/missouri.png", "toolTipText" : "Missouri", "x" : "0.569", "y" : "0.494" }, { "pixmapfile" : "usa/arkansas.png", "toolTipText" : "Arkansas", "x" : "0.574", "y" : "0.622" }, { "pixmapfile" : "usa/louisiana.png", "toolTipText" : "Louisiana", "x" : "0.596", "y" : "0.758" }, { "pixmapfile" : "usa/mississippi.png", "toolTipText" : "Mississippi", "x" : "0.626", "y" : "0.694" }, { "pixmapfile" : "usa/tennessee.png", "toolTipText" : "Tennessee", "x" : "0.69", "y" : "0.569" }, { "pixmapfile" : "usa/kentucky.png", "toolTipText" : "Kentucky", "x" : "0.69", "y" : "0.503" }, { "pixmapfile" : "usa/indiana.png", "toolTipText" : "Indiana", "x" : "0.673", "y" : "0.428" }, { "pixmapfile" : "usa/illinois.png", "toolTipText" : "Illinois", "x" : "0.618", "y" : "0.436" }, { "pixmapfile" : "usa/wisconsin.png", "toolTipText" : "Wisconsin", "x" : "0.6", "y" : "0.256" }, { "pixmapfile" : "usa/michigan.png", "toolTipText" : "Michigan", "x" : "0.66", "y" : "0.254" }, { "pixmapfile" : "usa/ohio.png", "toolTipText" : "Ohio", "x" : "0.733", "y" : "0.397" }, { "pixmapfile" : "usa/west_virginia.png", "toolTipText" : "West Virginia", "x" : "0.785", "y" : "0.443" }, { "pixmapfile" : "usa/virginia.png", "toolTipText" : "Virginia", "x" : "0.806", "y" : "0.47" }, { "pixmapfile" : "usa/north_carolina.png", "toolTipText" : "North Carolina", "x" : "0.801", "y" : "0.553" }, { "pixmapfile" : "usa/south_carolina.png", "toolTipText" : "South Carolina", "x" : "0.788", "y" : "0.634" }, { "pixmapfile" : "usa/georgia.png", //: Translators: Strip USA| and translate only Georgia "toolTipText" : "USA|Georgia", "x" : "0.75", "y" : "0.673" }, { "pixmapfile" : "usa/florida.png", "toolTipText" : "Florida", "x" : "0.754", "y" : "0.841" }, { "pixmapfile" : "usa/alabama.png", "toolTipText" : "Alabama", "x" : "0.688", "y" : "0.689" }, { "pixmapfile" : "usa/maryland.png", "toolTipText" : "Maryland", "x" : "0.841", "y" : "0.415" }, { "pixmapfile" : "usa/new_jersey.png", "toolTipText" : "New Jersey", "x" : "0.872", "y" : "0.361" }, { "pixmapfile" : "usa/delaware.png", "toolTipText" : "Delaware", "x" : "0.867", "y" : "0.41" }, { "pixmapfile" : "usa/pennsylvania.png", "toolTipText" : "Pennsylvania", "x" : "0.819", "y" : "0.352" }, { "pixmapfile" : "usa/new_york.png", "toolTipText" : "New York", "x" : "0.844", "y" : "0.261" }, { "pixmapfile" : "usa/vermont.png", "toolTipText" : "Vermont", "x" : "0.884", "y" : "0.215" }, { "pixmapfile" : "usa/new_hampshire.png", "toolTipText" : "New Hampshire", "x" : "0.906", "y" : "0.207" }, { "pixmapfile" : "usa/maine.png", "toolTipText" : "Maine", "x" : "0.934", "y" : "0.149" }, { "pixmapfile" : "usa/washington_dc.png", "toolTipText" : "Washington D.C.", "x" : "0.943", "y" : "0.575" }, { "pixmapfile" : "usa/california.png", "toolTipText" : "California", "x" : "0.096", "y" : "0.448" }, { "pixmapfile" : "usa/nevada.png", "toolTipText" : "Nevada", "x" : "0.146", "y" : "0.424" }, { "pixmapfile" : "usa/utah.png", "toolTipText" : "Utah", "x" : "0.233", "y" : "0.418" }, { "pixmapfile" : "usa/wyoming.png", "toolTipText" : "Wyoming", "x" : "0.313", "y" : "0.305" }, { "pixmapfile" : "usa/massachusetts.png", "toolTipText" : "Massachusetts", "x" : "0.909", "y" : "0.266" }, { "pixmapfile" : "usa/rhode_island.png", "toolTipText" : "Rhode Island", "x" : "0.915", "y" : "0.288" }, { "pixmapfile" : "usa/connecticut.png", "toolTipText" : "Connecticut", "x" : "0.896", "y" : "0.301" } ] } diff --git a/src/activities/geo-country/resource/board/board11_0.qml b/src/activities/geo-country/resource/board/board11_0.qml index adeb70c4e..8d4bbc2c0 100644 --- a/src/activities/geo-country/resource/board/board11_0.qml +++ b/src/activities/geo-country/resource/board/board11_0.qml @@ -1,153 +1,153 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property int numberOfSubLevel: 3 property string instruction: qsTr("Districts of Italy") - property variant levels: [ + property var levels: [ { "pixmapfile" : "italy/backgrounditaly.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "italy/liguria.png", "toolTipText" : "Liguria", "x" : "0.181", "y" : "0.267" }, { "pixmapfile" : "italy/piemonte.png", "toolTipText" : "Piemonte", "x" : "0.108", "y" : "0.169" }, { "pixmapfile" : "italy/valle_d_aosta.png", "toolTipText" : "Valle d'Aosta", "x" : "0.063", "y" : "0.13" }, { "pixmapfile" : "italy/lombardia.png", "toolTipText" : "Lombardia", "x" : "0.276", "y" : "0.134" }, { "pixmapfile" : "italy/trentino_alto_adige.png", "toolTipText" : "Trentino Alto Adige", "x" : "0.401", "y" : "0.07" }, { "pixmapfile" : "italy/veneto.png", "toolTipText" : "Veneto", "x" : "0.438", "y" : "0.127" }, { "pixmapfile" : "italy/friuli_venezia_giulia.png", "toolTipText" : "Friuli Venezia Giulia", "x" : "0.547", "y" : "0.093" }, { "pixmapfile" : "italy/emilia_romagna.png", "toolTipText" : "Emilia Romagna", "x" : "0.366", "y" : "0.247" }, { "pixmapfile" : "italy/toscana.png", "toolTipText" : "Toscana", "x" : "0.371", "y" : "0.341" }, { "pixmapfile" : "italy/umbria.png", "toolTipText" : "Umbria", "x" : "0.5", "y" : "0.378" }, { "pixmapfile" : "italy/marche.png", "toolTipText" : "Marche", "x" : "0.539", "y" : "0.346" }, { "pixmapfile" : "italy/lazio.png", "toolTipText" : "Lazio", "x" : "0.513", "y" : "0.461" }, { "pixmapfile" : "italy/abruzzo.png", "toolTipText" : "Abruzzo", "x" : "0.612", "y" : "0.437" }, { "pixmapfile" : "italy/molise.png", "toolTipText" : "Molise", "x" : "0.668", "y" : "0.487" }, { "pixmapfile" : "italy/campania.png", "toolTipText" : "Campania", "x" : "0.688", "y" : "0.569" }, { "pixmapfile" : "italy/puglia.png", "toolTipText" : "Puglia", "x" : "0.849", "y" : "0.558" }, { "pixmapfile" : "italy/basilicata.png", "toolTipText" : "Basilicata", "x" : "0.797", "y" : "0.589" }, { "pixmapfile" : "italy/calabria.png", "toolTipText" : "Calabria", "x" : "0.822", "y" : "0.713" }, { "pixmapfile" : "italy/sicilia.png", "toolTipText" : "Sicilia", "x" : "0.598", "y" : "0.819" }, { "pixmapfile" : "italy/sardegna.png", "toolTipText" : "Sardegna", "x" : "0.198", "y" : "0.625" } ] } diff --git a/src/activities/geo-country/resource/board/board11_1.qml b/src/activities/geo-country/resource/board/board11_1.qml index 448d59e70..0d8abea19 100644 --- a/src/activities/geo-country/resource/board/board11_1.qml +++ b/src/activities/geo-country/resource/board/board11_1.qml @@ -1,308 +1,308 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Districts of Northern Italy") - property variant levels: [ + property var levels: [ { "pixmapfile" : "italy/north/background.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "italy/north/aosta.png", "toolTipText" : "Aosta", "x" : "0.126", "y" : "0.425" }, { "pixmapfile" : "italy/north/imperia.png", "toolTipText" : "Imperia", "x" : "0.182", "y" : "0.895" }, { "pixmapfile" : "italy/north/savona.png", "toolTipText" : "Savona", "x" : "0.244", "y" : "0.826" }, { "pixmapfile" : "italy/north/genova.png", "toolTipText" : "Genova", "x" : "0.344", "y" : "0.768" }, { "pixmapfile" : "italy/north/la_spezia.png", "toolTipText" : "La_Spezia", "x" : "0.43", "y" : "0.82" }, { "pixmapfile" : "italy/north/verbania.png", "toolTipText" : "Verbania", "x" : "0.245", "y" : "0.32" }, { "pixmapfile" : "italy/north/vercelli.png", "toolTipText" : "Vercelli", "x" : "0.23", "y" : "0.469" }, { "pixmapfile" : "italy/north/biella.png", "toolTipText" : "Biella", "x" : "0.218", "y" : "0.467" }, { "pixmapfile" : "italy/north/novara.png", "toolTipText" : "Novara", "x" : "0.28", "y" : "0.463" }, { "pixmapfile" : "italy/north/torino.png", "toolTipText" : "Torino", "x" : "0.131", "y" : "0.58" }, { "pixmapfile" : "italy/north/cuneo.png", "toolTipText" : "Cuneo", "x" : "0.154", "y" : "0.756" }, { "pixmapfile" : "italy/north/asti.png", "toolTipText" : "Asti", "x" : "0.231", "y" : "0.663" }, { "pixmapfile" : "italy/north/alessandria.png", "toolTipText" : "Alessandria", "x" : "0.289", "y" : "0.663" }, { "pixmapfile" : "italy/north/piacenza.png", "toolTipText" : "Piacenza", "x" : "0.413", "y" : "0.662" }, { "pixmapfile" : "italy/north/parma.png", "toolTipText" : "Parma", "x" : "0.457", "y" : "0.698" }, { "pixmapfile" : "italy/north/reggio_emilia.png", "toolTipText" : "Reggio_Emilia", "x" : "0.527", "y" : "0.721" }, { "pixmapfile" : "italy/north/modena.png", "toolTipText" : "Modena", "x" : "0.577", "y" : "0.741" }, { "pixmapfile" : "italy/north/bologna.png", "toolTipText" : "Bologna", "x" : "0.63", "y" : "0.763" }, { "pixmapfile" : "italy/north/ferrara.png", "toolTipText" : "Ferrara", "x" : "0.687", "y" : "0.688" }, { "pixmapfile" : "italy/north/ravenna.png", "toolTipText" : "Ravenna", "x" : "0.711", "y" : "0.783" }, { "pixmapfile" : "italy/north/forli-cesena.png", "toolTipText" : "Forli-Cesena", "x" : "0.723", "y" : "0.87" }, { "pixmapfile" : "italy/north/rimini.png", "toolTipText" : "Rimini", "x" : "0.77", "y" : "0.89" }, { "pixmapfile" : "italy/north/varese.png", "toolTipText" : "Varese", "x" : "0.307", "y" : "0.396" }, { "pixmapfile" : "italy/north/milano.png", "toolTipText" : "Milano", "x" : "0.352", "y" : "0.482" }, { "pixmapfile" : "italy/north/pavia.png", "toolTipText" : "Pavia", "x" : "0.335", "y" : "0.609" }, { "pixmapfile" : "italy/north/como.png", "toolTipText" : "Como", "x" : "0.358", "y" : "0.368" }, { "pixmapfile" : "italy/north/lecco.png", "toolTipText" : "Lecco", "x" : "0.386", "y" : "0.377" }, { "pixmapfile" : "italy/north/sondrio.png", "toolTipText" : "Sondrio", "x" : "0.456", "y" : "0.267" }, { "pixmapfile" : "italy/north/bergamo.png", "toolTipText" : "Bergamo", "x" : "0.442", "y" : "0.414" }, { "pixmapfile" : "italy/north/brescia.png", "toolTipText" : "Brescia", "x" : "0.502", "y" : "0.412" }, { "pixmapfile" : "italy/north/lodi.png", "toolTipText" : "Lodi", "x" : "0.409", "y" : "0.546" }, { "pixmapfile" : "italy/north/cremona.png", "toolTipText" : "Cremona", "x" : "0.465", "y" : "0.559" }, { "pixmapfile" : "italy/north/mantova.png", "toolTipText" : "Mantova", "x" : "0.566", "y" : "0.573" }, { "pixmapfile" : "italy/north/bolzano.png", "toolTipText" : "Bolzano", "x" : "0.643", "y" : "0.171" }, { "pixmapfile" : "italy/north/trento.png", "toolTipText" : "Trento", "x" : "0.613", "y" : "0.325" }, { "pixmapfile" : "italy/north/verona.png", "toolTipText" : "Verona", "x" : "0.596", "y" : "0.502" }, { "pixmapfile" : "italy/north/vicenza.png", "toolTipText" : "Vicenza", "x" : "0.651", "y" : "0.448" }, { "pixmapfile" : "italy/north/padova.png", "toolTipText" : "Padova", "x" : "0.691", "y" : "0.51" }, { "pixmapfile" : "italy/north/rovigo.png", "toolTipText" : "Rovigo", "x" : "0.7", "y" : "0.622" }, { "pixmapfile" : "italy/north/venezia.png", "toolTipText" : "Venezia", "x" : "0.782", "y" : "0.497" }, { "pixmapfile" : "italy/north/treviso.png", "toolTipText" : "Treviso", "x" : "0.749", "y" : "0.396" }, { "pixmapfile" : "italy/north/belluno.png", "toolTipText" : "Belluno", "x" : "0.745", "y" : "0.276" }, { "pixmapfile" : "italy/north/pordenone.png", "toolTipText" : "Pordenone", "x" : "0.805", "y" : "0.315" }, { "pixmapfile" : "italy/north/udine.png", "toolTipText" : "Udine", "x" : "0.859", "y" : "0.311" }, { "pixmapfile" : "italy/north/gorizia.png", "toolTipText" : "Gorizia", "x" : "0.905", "y" : "0.392" }, { "pixmapfile" : "italy/north/trieste.png", "toolTipText" : "Trieste", "x" : "0.941", "y" : "0.434" } ] } diff --git a/src/activities/geo-country/resource/board/board11_2.qml b/src/activities/geo-country/resource/board/board11_2.qml index 33f741904..2af220282 100644 --- a/src/activities/geo-country/resource/board/board11_2.qml +++ b/src/activities/geo-country/resource/board/board11_2.qml @@ -1,188 +1,188 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Districts of Central Italy") - property variant levels: [ + property var levels: [ { "pixmapfile" : "italy/central/background.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "italy/central/massa-carrara.png", "toolTipText" : "Massa-Carrara", "x" : "0.199", "y" : "0.159" }, { "pixmapfile" : "italy/central/lucca.png", "toolTipText" : "Lucca", "x" : "0.259", "y" : "0.213" }, { "pixmapfile" : "italy/central/pistoia.png", "toolTipText" : "Pistoia", "x" : "0.313", "y" : "0.225" }, { "pixmapfile" : "italy/central/prato.png", "toolTipText" : "Prato", "x" : "0.343", "y" : "0.239" }, { "pixmapfile" : "italy/central/firenze.png", "toolTipText" : "Firenze", "x" : "0.358", "y" : "0.262" }, { "pixmapfile" : "italy/central/pisa.png", "toolTipText" : "Pisa", "x" : "0.283", "y" : "0.355" }, { "pixmapfile" : "italy/central/livorno.png", "toolTipText" : "Livorno", "x" : "0.235", "y" : "0.48" }, { "pixmapfile" : "italy/central/arezzo.png", "toolTipText" : "Arezzo", "x" : "0.447", "y" : "0.334" }, { "pixmapfile" : "italy/central/siena.png", "toolTipText" : "Siena", "x" : "0.389", "y" : "0.43" }, { "pixmapfile" : "italy/central/grosseto.png", "toolTipText" : "Grosseto", "x" : "0.36", "y" : "0.539" }, { "pixmapfile" : "italy/central/terni.png", "toolTipText" : "Terni", "x" : "0.512", "y" : "0.561" }, { "pixmapfile" : "italy/central/perugia.png", "toolTipText" : "Perugia", "x" : "0.537", "y" : "0.446" }, { "pixmapfile" : "italy/central/pesaro-urbino.png", "toolTipText" : "Pesaro-Urbino", "x" : "0.55", "y" : "0.296" }, { "pixmapfile" : "italy/central/ancona.png", "toolTipText" : "Ancona", "x" : "0.617", "y" : "0.35" }, { "pixmapfile" : "italy/central/macerata.png", "toolTipText" : "Macerata", "x" : "0.63", "y" : "0.426" }, { "pixmapfile" : "italy/central/fermo.png", "toolTipText" : "Fermo", "x" : "0.663", "y" : "0.447" }, { "pixmapfile" : "italy/central/ascoli_piceno.png", "toolTipText" : "Ascoli_Piceno", "x" : "0.665", "y" : "0.499" }, { "pixmapfile" : "italy/central/viterbo.png", "toolTipText" : "Viterbo", "x" : "0.459", "y" : "0.6" }, { "pixmapfile" : "italy/central/rieti.png", "toolTipText" : "Rieti", "x" : "0.583", "y" : "0.621" }, { "pixmapfile" : "italy/central/roma.png", "toolTipText" : "Roma", "x" : "0.528", "y" : "0.756" }, { "pixmapfile" : "italy/central/frosinone.png", "toolTipText" : "Frosinone", "x" : "0.658", "y" : "0.82" }, { "pixmapfile" : "italy/central/latina.png", "toolTipText" : "Latina", "x" : "0.62", "y" : "0.858" }, { "pixmapfile" : "italy/central/teramo.png", "toolTipText" : "Teramo", "x" : "0.689", "y" : "0.556" }, { "pixmapfile" : "italy/central/pescara.png", "toolTipText" : "Pescara", "x" : "0.723", "y" : "0.643" }, { "pixmapfile" : "italy/central/chieti.png", "toolTipText" : "Chieti", "x" : "0.777", "y" : "0.696" }, { "pixmapfile" : "italy/central/l_aquila.png", "toolTipText" : "L_Aquila", "x" : "0.676", "y" : "0.685" } ] } diff --git a/src/activities/geo-country/resource/board/board11_3.qml b/src/activities/geo-country/resource/board/board11_3.qml index be6c503db..dfa9d8bea 100644 --- a/src/activities/geo-country/resource/board/board11_3.qml +++ b/src/activities/geo-country/resource/board/board11_3.qml @@ -1,254 +1,254 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Districts of Southern Italy") - property variant levels: [ + property var levels: [ { "pixmapfile" : "italy/south/background.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "italy/south/sassari.png", "toolTipText" : "Sassari", "x" : "0.12", "y" : "0.328" }, { "pixmapfile" : "italy/south/olbia-tempio.png", "toolTipText" : "Olbia-Tempio", "x" : "0.171", "y" : "0.299" }, { "pixmapfile" : "italy/south/nuoro.png", "toolTipText" : "Nuoro", "x" : "0.164", "y" : "0.393" }, { "pixmapfile" : "italy/south/oristano.png", "toolTipText" : "Oristano", "x" : "0.125", "y" : "0.433" }, { "pixmapfile" : "italy/south/ogliastra.png", "toolTipText" : "Ogliastra", "x" : "0.19", "y" : "0.453" }, { "pixmapfile" : "italy/south/cagliari.png", "toolTipText" : "Cagliari", "x" : "0.156", "y" : "0.53" }, { "pixmapfile" : "italy/south/medio_campidano.png", "toolTipText" : "Medio_Campidano", "x" : "0.124", "y" : "0.502" }, { "pixmapfile" : "italy/south/carbonia-iglesias.png", "toolTipText" : "Carbonia-Iglesias", "x" : "0.105", "y" : "0.557" }, { "pixmapfile" : "italy/south/trapani.png", "toolTipText" : "Trapani", "x" : "0.452", "y" : "0.763" }, { "pixmapfile" : "italy/south/palermo.png", "toolTipText" : "Palermo", "x" : "0.542", "y" : "0.761" }, { "pixmapfile" : "italy/south/agrigento.png", "toolTipText" : "Agrigento", "x" : "0.488", "y" : "0.859" }, { "pixmapfile" : "italy/south/caltanissetta.png", "toolTipText" : "Caltanissetta", "x" : "0.581", "y" : "0.837" }, { "pixmapfile" : "italy/south/enna.png", "toolTipText" : "Enna", "x" : "0.616", "y" : "0.808" }, { "pixmapfile" : "italy/south/catania.png", "toolTipText" : "Catania", "x" : "0.646", "y" : "0.819" }, { "pixmapfile" : "italy/south/siracusa.png", "toolTipText" : "Siracusa", "x" : "0.666", "y" : "0.887" }, { "pixmapfile" : "italy/south/ragusa.png", "toolTipText" : "Ragusa", "x" : "0.635", "y" : "0.907" }, { "pixmapfile" : "italy/south/messina.png", "toolTipText" : "Messina", "x" : "0.656", "y" : "0.709" }, { "pixmapfile" : "italy/south/reggio_calabria.png", "toolTipText" : "Reggio_Calabria", "x" : "0.76", "y" : "0.706" }, { "pixmapfile" : "italy/south/vibo_valentia.png", "toolTipText" : "Vibo_Valentia", "x" : "0.761", "y" : "0.646" }, { "pixmapfile" : "italy/south/catanzaro.png", "toolTipText" : "Catanzaro", "x" : "0.796", "y" : "0.617" }, { "pixmapfile" : "italy/south/crotone.png", "toolTipText" : "Crotone", "x" : "0.83", "y" : "0.563" }, { "pixmapfile" : "italy/south/cosenza.png", "toolTipText" : "Cosenza", "x" : "0.785", "y" : "0.499" }, { "pixmapfile" : "italy/south/potenza.png", "toolTipText" : "Potenza", "x" : "0.74", "y" : "0.357" }, { "pixmapfile" : "italy/south/matera.png", "toolTipText" : "Matera", "x" : "0.79", "y" : "0.366" }, { "pixmapfile" : "italy/south/foggia.png", "toolTipText" : "Foggia", "x" : "0.714", "y" : "0.202" }, { "pixmapfile" : "italy/south/barlettaandriatrani.png", "toolTipText" : "Barletta-Andria-Trani", "x" : "0.77", "y" : "0.254" }, { "pixmapfile" : "italy/south/bari.png", "toolTipText" : "Bari", "x" : "0.815", "y" : "0.29" }, { "pixmapfile" : "italy/south/taranto.png", "toolTipText" : "Taranto", "x" : "0.859", "y" : "0.354" }, { "pixmapfile" : "italy/south/brindisi.png", "toolTipText" : "Brindisi", "x" : "0.898", "y" : "0.338" }, { "pixmapfile" : "italy/south/lecce.png", "toolTipText" : "Lecce", "x" : "0.935", "y" : "0.413" }, { "pixmapfile" : "italy/south/isernia.png", "toolTipText" : "Isernia", "x" : "0.6", "y" : "0.182" }, { "pixmapfile" : "italy/south/campobasso.png", "toolTipText" : "Campobasso", "x" : "0.644", "y" : "0.169" }, { "pixmapfile" : "italy/south/caserta.png", "toolTipText" : "Caserta", "x" : "0.593", "y" : "0.249" }, { "pixmapfile" : "italy/south/benevento.png", "toolTipText" : "Benevento", "x" : "0.641", "y" : "0.248" }, { "pixmapfile" : "italy/south/avellino.png", "toolTipText" : "Avellino", "x" : "0.67", "y" : "0.285" }, { "pixmapfile" : "italy/south/napoli.png", "toolTipText" : "Napoli", "x" : "0.6", "y" : "0.32" }, { "pixmapfile" : "italy/south/salerno.png", "toolTipText" : "Salerno", "x" : "0.678", "y" : "0.373" } ] } diff --git a/src/activities/geo-country/resource/board/board12_0.qml b/src/activities/geo-country/resource/board/board12_0.qml index adbcaca3b..f09983e06 100644 --- a/src/activities/geo-country/resource/board/board12_0.qml +++ b/src/activities/geo-country/resource/board/board12_0.qml @@ -1,225 +1,225 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("States of India") - property variant levels: [ + property var levels: [ { "pixmapfile" : "india/background.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "india/jammu_and_kashmir.png", "toolTipText" : "Jammu and Kashmir", "x" : "0.313", "y" : "0.111" }, { "pixmapfile" : "india/himachal_pradesh.png", "toolTipText" : "Himachal Pradesh", "x" : "0.337", "y" : "0.205" }, { "pixmapfile" : "india/punjab.png", "toolTipText" : "Punjab", "x" : "0.278", "y" : "0.228" }, { "pixmapfile" : "india/harayana.png", "toolTipText" : "Harayana", "x" : "0.296", "y" : "0.294" }, { "pixmapfile" : "india/uttarakhand.png", "toolTipText" : "Uttarakhand", "x" : "0.403", "y" : "0.267" }, { "pixmapfile" : "india/rajasthan.png", "toolTipText" : "Rajasthan", "x" : "0.216", "y" : "0.377" }, { "pixmapfile" : "india/uttar_pradesh.png", "toolTipText" : "Uttar Pradesh", "x" : "0.459", "y" : "0.36" }, { "pixmapfile" : "india/bihar.png", "toolTipText" : "Bihar", "x" : "0.623", "y" : "0.4" }, { "pixmapfile" : "india/gujarat.png", "toolTipText" : "Gujarat", "x" : "0.124", "y" : "0.507" }, { "pixmapfile" : "india/madhya_pradesh.png", "toolTipText" : "Madhya Pradesh", "x" : "0.375", "y" : "0.461" }, { "pixmapfile" : "india/jharkhand.png", "toolTipText" : "Jharkhand", "x" : "0.621", "y" : "0.471" }, { "pixmapfile" : "india/maharashtra.png", "toolTipText" : "Maharashtra", "x" : "0.314", "y" : "0.624" }, { "pixmapfile" : "india/chhattisgarh.png", "toolTipText" : "Chhattisgarh", "x" : "0.511", "y" : "0.559" }, { "pixmapfile" : "india/orrisa.png", "toolTipText" : "Orrisa", "x" : "0.591", "y" : "0.584" }, { "pixmapfile" : "india/goa.png", "toolTipText" : "Goa", "x" : "0.208", "y" : "0.733" }, { "pixmapfile" : "india/karnataka.png", "toolTipText" : "Karnataka", "x" : "0.295", "y" : "0.748" }, { "pixmapfile" : "india/telangana.png", "toolTipText" : "Telangana", "x" : "0.405", "y" : "0.66" }, { "pixmapfile" : "india/andhra_pradesh.png", "toolTipText" : "Andhra Pradesh", "x" : "0.454", "y" : "0.71" }, { "pixmapfile" : "india/kerala.png", "toolTipText" : "Kerala", "x" : "0.286", "y" : "0.885" }, { "pixmapfile" : "india/tamil_nadu.png", "toolTipText" : "Tamil Nadu", "x" : "0.371", "y" : "0.875" }, { "pixmapfile" : "india/west_bengal.png", "toolTipText" : "West Bengal", "x" : "0.689", "y" : "0.445" }, { "pixmapfile" : "india/sikkim.png", "toolTipText" : "Sikkim", "x" : "0.702", "y" : "0.344" }, { "pixmapfile" : "india/assam.png", "toolTipText" : "Assam", "x" : "0.842", "y" : "0.37" }, { "pixmapfile" : "india/arunachal_pradesh.png", "toolTipText" : "Arunachal Pradesh", "x" : "0.891", "y" : "0.305" }, { "pixmapfile" : "india/nagaland.png", "toolTipText" : "Nagaland", "x" : "0.891", "y" : "0.37" }, { "pixmapfile" : "india/manipur.png", "toolTipText" : "Manipur", "x" : "0.884", "y" : "0.416" }, { "pixmapfile" : "india/mizoram.png", "toolTipText" : "Mizoram", "x" : "0.854", "y" : "0.473" }, { "pixmapfile" : "india/tripura.png", "toolTipText" : "Tripura", "x" : "0.819", "y" : "0.457" }, { "pixmapfile" : "india/meghalaya.png", "toolTipText" : "Meghalaya", "x" : "0.796", "y" : "0.395" }, { "pixmapfile" : "india/lakshadweep_islands.png", "toolTipText" : "Lakshadweep Islands", "x" : "0.153", "y" : "0.888" }, { "pixmapfile" : "india/andaman_and_nicobar_islands.png", "toolTipText" : "Andaman and Nicobar Islands", "x" : "0.909", "y" : "0.876" }, { "pixmapfile" : "india/delhi.png", "toolTipText" : "Delhi", "x" : "0.336", "y" : "0.31" } ] } diff --git a/src/activities/geo-country/resource/board/board13_0.qml b/src/activities/geo-country/resource/board/board13_0.qml index 400ba4a28..4b279da75 100644 --- a/src/activities/geo-country/resource/board/board13_0.qml +++ b/src/activities/geo-country/resource/board/board13_0.qml @@ -1,74 +1,74 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Districts of Australia") - property variant levels: [ + property var levels: [ { "pixmapfile" : "australia/background.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "australia/western_australia.png", "toolTipText" : "Western Australia", "x" : "0.217", "y" : "0.402" }, { "pixmapfile" : "australia/northern_territory.png", "toolTipText" : "Northern Territory", "x" : "0.496", "y" : "0.246" }, { "pixmapfile" : "australia/south_australia.png", "toolTipText" : "South Australia", "x" : "0.533", "y" : "0.622" }, { "pixmapfile" : "australia/queensland.png", "toolTipText" : "Queensland", "x" : "0.779", "y" : "0.275" }, { "pixmapfile" : "australia/new_south_wales.png", "toolTipText" : "New South Wales", "x" : "0.817", "y" : "0.637" }, { "pixmapfile" : "australia/victoria.png", "toolTipText" : "Victoria", "x" : "0.772", "y" : "0.753" }, { "pixmapfile" : "australia/tasmania.png", "toolTipText" : "Tasmania", "x" : "0.798", "y" : "0.933" } ] } diff --git a/src/activities/geo-country/resource/board/board14_0.qml b/src/activities/geo-country/resource/board/board14_0.qml index 9bfb7ead4..82e317b25 100644 --- a/src/activities/geo-country/resource/board/board14_0.qml +++ b/src/activities/geo-country/resource/board/board14_0.qml @@ -1,218 +1,218 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Districts of China") - property variant levels: [ + property var levels: [ { "pixmapfile" : "china/background.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "china/xinjiang.png", "toolTipText" : "Xinjiang", "x" : "0.201", "y" : "0.275" }, { "pixmapfile" : "china/gansu.png", "toolTipText" : "Gansu", "x" : "0.459", "y" : "0.445" }, { "pixmapfile" : "china/inner_mongolia.png", "toolTipText" : "Inner Mangolia", "x" : "0.631", "y" : "0.237" }, { "pixmapfile" : "china/ningxia.png", "toolTipText" : "Ningxia", "x" : "0.552", "y" : "0.464" }, { "pixmapfile" : "china/heilongjiang.png", "toolTipText" : "Heilongjiang", "x" : "0.886", "y" : "0.132" }, { "pixmapfile" : "china/jilin.png", "toolTipText" : "Jilin", "x" : "0.883", "y" : "0.274" }, { "pixmapfile" : "china/liaoning.png", "toolTipText" : "Liaoning", "x" : "0.828", "y" : "0.34" }, { "pixmapfile" : "china/tianjin.png", "toolTipText" : "Tianjin", "x" : "0.746", "y" : "0.402" }, { "pixmapfile" : "china/beijing.png", "toolTipText" : "Beijing", "x" : "0.729", "y" : "0.381" }, { "pixmapfile" : "china/shandong.png", "toolTipText" : "Shandong", "x" : "0.776", "y" : "0.485" }, { "pixmapfile" : "china/shanxi.png", "toolTipText" : "Shanxi", "x" : "0.662", "y" : "0.456" }, { "pixmapfile" : "china/shaanxi.png", "toolTipText" : "Shaanxi", "x" : "0.591", "y" : "0.511" }, { "pixmapfile" : "china/qinghai.png", "toolTipText" : "Qinghai", "x" : "0.372", "y" : "0.492" }, { "pixmapfile" : "china/xizang.png", "toolTipText" : "Xizang", "x" : "0.223", "y" : "0.558" }, { "pixmapfile" : "china/sichuan.png", "toolTipText" : "Sichuan", "x" : "0.489", "y" : "0.652" }, { "pixmapfile" : "china/chongqing.png", "toolTipText" : "Chongqing", "x" : "0.576", "y" : "0.659" }, { "pixmapfile" : "china/henan.png", "toolTipText" : "Henan", "x" : "0.685", "y" : "0.556" }, { "pixmapfile" : "china/jiangsu.png", "toolTipText" : "Jiangsu", "x" : "0.792", "y" : "0.573" }, { "pixmapfile" : "china/anhui.png", "toolTipText" : "Anhui", "x" : "0.757", "y" : "0.603" }, { "pixmapfile" : "china/hubei.png", "toolTipText" : "Hubei", "x" : "0.665", "y" : "0.632" }, { "pixmapfile" : "china/shanghai.png", "toolTipText" : "Shanghai", "x" : "0.838", "y" : "0.618" }, { "pixmapfile" : "china/zhejiang.png", "toolTipText" : "Zhejiang", "x" : "0.815", "y" : "0.673" }, { "pixmapfile" : "china/fujian.png", "toolTipText" : "Fujian", "x" : "0.785", "y" : "0.769" }, { "pixmapfile" : "china/jiangxi.png", "toolTipText" : "Jiangxi", "x" : "0.74", "y" : "0.735" }, { "pixmapfile" : "china/hunan.png", "toolTipText" : "Hunan", "x" : "0.651", "y" : "0.737" }, { "pixmapfile" : "china/guizhou.png", "toolTipText" : "Guizhou", "x" : "0.552", "y" : "0.747" }, { "pixmapfile" : "china/yunnan.png", "toolTipText" : "Yunnan", "x" : "0.453", "y" : "0.786" }, { "pixmapfile" : "china/guangxi.png", "toolTipText" : "Guangxi", "x" : "0.586", "y" : "0.833" }, { "pixmapfile" : "china/guangdong.png", "toolTipText" : "Guangdong", "x" : "0.691", "y" : "0.861" }, { "pixmapfile" : "china/hainan.png", "toolTipText" : "Hainan", "x" : "0.617", "y" : "0.966" }, { "pixmapfile" : "china/hebei.png", "toolTipText" : "Hebei", "x" : "0.735", "y" : "0.405" } ] } diff --git a/src/activities/geo-country/resource/board/board15_0.qml b/src/activities/geo-country/resource/board/board15_0.qml index b54917410..a9d5e4d46 100644 --- a/src/activities/geo-country/resource/board/board15_0.qml +++ b/src/activities/geo-country/resource/board/board15_0.qml @@ -1,111 +1,111 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property int numberOfSubLevel: 3 property string instruction: qsTr("Northern Scotland") - property variant levels: [ + property var levels: [ { "pixmapfile" : "scotland/bg_north.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "scotland/n_aberdeenshire.png", "toolTipText" : "Aberdeenshire", "x" : "0.688", "y" : "0.804" }, { "pixmapfile" : "scotland/n_aberdeen.png", "toolTipText" : "Aberdeen", "x" : "0.756", "y" : "0.818" }, { "pixmapfile" : "scotland/n_moray.png", "toolTipText" : "Moray", "x" : "0.638", "y" : "0.768" }, { "pixmapfile" : "scotland/n_eileanan_siar.png", "toolTipText" : "Na h-Eileanan Siar", "x" : "0.162", "y" : "0.722" }, { "pixmapfile" : "scotland/n_orkney.png", "toolTipText" : "Orkney", "x" : "0.674", "y" : "0.448" }, { "pixmapfile" : "scotland/n_shetland.png", "toolTipText" : "Shetland", "x" : "0.842", "y" : "0.23" }, { "pixmapfile" : "scotland/n_hl_caithness.png", "toolTipText" : "Caithness", "x" : "0.612", "y" : "0.574" }, { "pixmapfile" : "scotland/n_hl_sutherland.png", "toolTipText" : "Sutherland", "x" : "0.49", "y" : "0.61" }, { "pixmapfile" : "scotland/n_hl_ross.png", "toolTipText" : "Ross", "x" : "0.456", "y" : "0.704" }, { "pixmapfile" : "scotland/n_hl_inverness_nairn.png", "toolTipText" : "Inverness and Nairn", "x" : "0.564", "y" : "0.78" }, { "pixmapfile" : "scotland/n_hl_lochalsh_badenoch_stra.png", "toolTipText" : "Lochalsh, Badenoch, Cromarty and Strathspey", "x" : "0.472", "y" : "0.802" }, { "pixmapfile" : "scotland/n_hl_lochaber.png", "toolTipText" : "Lochaber", "x" : "0.372", "y" : "0.888" }, { "pixmapfile" : "scotland/n_hl_skye.png", "toolTipText" : "Skye", "x" : "0.296", "y" : "0.776" } ] } diff --git a/src/activities/geo-country/resource/board/board15_1.qml b/src/activities/geo-country/resource/board/board15_1.qml index 9d83eb5a5..97c3c9e88 100644 --- a/src/activities/geo-country/resource/board/board15_1.qml +++ b/src/activities/geo-country/resource/board/board15_1.qml @@ -1,182 +1,182 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Southern Scotland") - property variant levels: [ + property var levels: [ { "pixmapfile" : "scotland/bg_south.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "scotland/s_borders.png", "toolTipText" : "Scottish Borders", "x" : "0.803", "y" : "0.564" }, { "pixmapfile" : "scotland/s_east_lothian.png", "toolTipText" : "East Lothian", "x" : "0.813", "y" : "0.413" }, { "pixmapfile" : "scotland/s_midlothian.png", "toolTipText" : "Midlothian", "x" : "0.749", "y" : "0.458" }, { "pixmapfile" : "scotland/s_west_lothian.png", "toolTipText" : "West Lothian", "x" : "0.666", "y" : "0.433" }, { "pixmapfile" : "scotland/s_edinburgh.png", "toolTipText" : "Edinburgh", "x" : "0.723", "y" : "0.424" }, { "pixmapfile" : "scotland/s_falkirk.png", "toolTipText" : "Falkirk", "x" : "0.638", "y" : "0.391" }, { "pixmapfile" : "scotland/s_south_lanarkshire.png", "toolTipText" : "South Lanarkshire", "x" : "0.626", "y" : "0.551" }, { "pixmapfile" : "scotland/s_north_lanarkshire.png", "toolTipText" : "North Lanarkshire", "x" : "0.607", "y" : "0.433" }, { "pixmapfile" : "scotland/s_dumfries_galloway.png", "toolTipText" : "Dumfries and Galloway", "x" : "0.597", "y" : "0.74" }, { "pixmapfile" : "scotland/s_south_ayrshire.png", "toolTipText" : "South Ayrshire", "x" : "0.476", "y" : "0.649" }, { "pixmapfile" : "scotland/s_east_ayrshire.png", "toolTipText" : "East Ayrshire", "x" : "0.55", "y" : "0.593" }, { "pixmapfile" : "scotland/s_glasgow.png", "toolTipText" : "Glasgow", "x" : "0.561", "y" : "0.444" }, { "pixmapfile" : "scotland/s_east_dunbartonshire.png", "toolTipText" : "East Dunbartonshire", "x" : "0.561", "y" : "0.407" }, { "pixmapfile" : "scotland/s_west_dunbartonshire.png", "toolTipText" : "West Dunbartonshire", "x" : "0.512", "y" : "0.398" }, { "pixmapfile" : "scotland/s_east_renfrewshire.png", "toolTipText" : "East Renfrewshire", "x" : "0.536", "y" : "0.484" }, { "pixmapfile" : "scotland/s_renfrewshire.png", "toolTipText" : "Renfrewshire", "x" : "0.505", "y" : "0.449" }, { "pixmapfile" : "scotland/s_inverclyde.png", "toolTipText" : "Inverclyde", "x" : "0.474", "y" : "0.429" }, { "pixmapfile" : "scotland/s_north_ayrshire.png", "toolTipText" : "North Ayrshire", "x" : "0.441", "y" : "0.516" }, { "pixmapfile" : "scotland/s_clackmannanshire.png", "toolTipText" : "Clackmannanshire", "x" : "0.644", "y" : "0.34" }, { "pixmapfile" : "scotland/s_fife.png", "toolTipText" : "Fife", "x" : "0.739", "y" : "0.307" }, { "pixmapfile" : "scotland/s_dundee.png", "toolTipText" : "Dundee", "x" : "0.772", "y" : "0.218" }, { "pixmapfile" : "scotland/s_angus.png", "toolTipText" : "Angus", "x" : "0.782", "y" : "0.127" }, { "pixmapfile" : "scotland/s_perth_kinross.png", "toolTipText" : "Perth and Kinross", "x" : "0.618", "y" : "0.193" }, { "pixmapfile" : "scotland/s_stirling.png", "toolTipText" : "Stirling", "x" : "0.545", "y" : "0.3" }, { "pixmapfile" : "scotland/s_argyll_bute.png", "toolTipText" : "Argyll and Bute", "x" : "0.301", "y" : "0.396" } ] } diff --git a/src/activities/geo-country/resource/board/board15_2.qml b/src/activities/geo-country/resource/board/board15_2.qml index 0e3aa0139..2cd4d920f 100644 --- a/src/activities/geo-country/resource/board/board15_2.qml +++ b/src/activities/geo-country/resource/board/board15_2.qml @@ -1,110 +1,110 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Northern Scotland") - property variant levels: [ + property var levels: [ { "pixmapfile" : "scotland/bg_north_blank.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "scotland/n_aberdeenshire.png", "toolTipText" : "Aberdeenshire", "x" : "0.688", "y" : "0.804" }, { "pixmapfile" : "scotland/n_aberdeen.png", "toolTipText" : "Aberdeen", "x" : "0.756", "y" : "0.818" }, { "pixmapfile" : "scotland/n_moray.png", "toolTipText" : "Moray", "x" : "0.638", "y" : "0.768" }, { "pixmapfile" : "scotland/n_eileanan_siar.png", "toolTipText" : "Na h-Eileanan Siar", "x" : "0.162", "y" : "0.722" }, { "pixmapfile" : "scotland/n_orkney.png", "toolTipText" : "Orkney", "x" : "0.674", "y" : "0.448" }, { "pixmapfile" : "scotland/n_shetland.png", "toolTipText" : "Shetland", "x" : "0.842", "y" : "0.23" }, { "pixmapfile" : "scotland/n_hl_caithness.png", "toolTipText" : "Caithness", "x" : "0.612", "y" : "0.574" }, { "pixmapfile" : "scotland/n_hl_sutherland.png", "toolTipText" : "Sutherland", "x" : "0.49", "y" : "0.61" }, { "pixmapfile" : "scotland/n_hl_ross.png", "toolTipText" : "Ross", "x" : "0.456", "y" : "0.704" }, { "pixmapfile" : "scotland/n_hl_inverness_nairn.png", "toolTipText" : "Inverness and Nairn", "x" : "0.564", "y" : "0.78" }, { "pixmapfile" : "scotland/n_hl_lochalsh_badenoch_stra.png", "toolTipText" : "Lochalsh, Badenoch, Cromarty and Strathspey", "x" : "0.472", "y" : "0.802" }, { "pixmapfile" : "scotland/n_hl_lochaber.png", "toolTipText" : "Lochaber", "x" : "0.372", "y" : "0.888" }, { "pixmapfile" : "scotland/n_hl_skye.png", "toolTipText" : "Skye", "x" : "0.296", "y" : "0.776" } ] } diff --git a/src/activities/geo-country/resource/board/board15_3.qml b/src/activities/geo-country/resource/board/board15_3.qml index 2c626405c..80ebf9f97 100644 --- a/src/activities/geo-country/resource/board/board15_3.qml +++ b/src/activities/geo-country/resource/board/board15_3.qml @@ -1,182 +1,182 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Southern Scotland") - property variant levels: [ + property var levels: [ { "pixmapfile" : "scotland/bg_south_blank.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "scotland/s_borders.png", "toolTipText" : "Scottish Borders", "x" : "0.803", "y" : "0.564" }, { "pixmapfile" : "scotland/s_east_lothian.png", "toolTipText" : "East Lothian", "x" : "0.813", "y" : "0.413" }, { "pixmapfile" : "scotland/s_midlothian.png", "toolTipText" : "Midlothian", "x" : "0.749", "y" : "0.458" }, { "pixmapfile" : "scotland/s_west_lothian.png", "toolTipText" : "West Lothian", "x" : "0.666", "y" : "0.433" }, { "pixmapfile" : "scotland/s_edinburgh.png", "toolTipText" : "Edinburgh", "x" : "0.723", "y" : "0.424" }, { "pixmapfile" : "scotland/s_falkirk.png", "toolTipText" : "Falkirk", "x" : "0.638", "y" : "0.391" }, { "pixmapfile" : "scotland/s_south_lanarkshire.png", "toolTipText" : "South Lanarkshire", "x" : "0.626", "y" : "0.551" }, { "pixmapfile" : "scotland/s_north_lanarkshire.png", "toolTipText" : "North Lanarkshire", "x" : "0.607", "y" : "0.433" }, { "pixmapfile" : "scotland/s_dumfries_galloway.png", "toolTipText" : "Dumfries and Galloway", "x" : "0.597", "y" : "0.74" }, { "pixmapfile" : "scotland/s_south_ayrshire.png", "toolTipText" : "South Ayrshire", "x" : "0.476", "y" : "0.649" }, { "pixmapfile" : "scotland/s_east_ayrshire.png", "toolTipText" : "East Ayrshire", "x" : "0.55", "y" : "0.593" }, { "pixmapfile" : "scotland/s_glasgow.png", "toolTipText" : "Glasgow", "x" : "0.561", "y" : "0.444" }, { "pixmapfile" : "scotland/s_east_dunbartonshire.png", "toolTipText" : "East Dunbartonshire", "x" : "0.561", "y" : "0.407" }, { "pixmapfile" : "scotland/s_west_dunbartonshire.png", "toolTipText" : "West Dunbartonshire", "x" : "0.512", "y" : "0.398" }, { "pixmapfile" : "scotland/s_east_renfrewshire.png", "toolTipText" : "East Renfrewshire", "x" : "0.536", "y" : "0.484" }, { "pixmapfile" : "scotland/s_renfrewshire.png", "toolTipText" : "Renfrewshire", "x" : "0.505", "y" : "0.449" }, { "pixmapfile" : "scotland/s_inverclyde.png", "toolTipText" : "Inverclyde", "x" : "0.474", "y" : "0.429" }, { "pixmapfile" : "scotland/s_north_ayrshire.png", "toolTipText" : "North Ayrshire", "x" : "0.441", "y" : "0.516" }, { "pixmapfile" : "scotland/s_clackmannanshire.png", "toolTipText" : "Clackmannanshire", "x" : "0.644", "y" : "0.34" }, { "pixmapfile" : "scotland/s_fife.png", "toolTipText" : "Fife", "x" : "0.739", "y" : "0.307" }, { "pixmapfile" : "scotland/s_dundee.png", "toolTipText" : "Dundee", "x" : "0.772", "y" : "0.218" }, { "pixmapfile" : "scotland/s_angus.png", "toolTipText" : "Angus", "x" : "0.782", "y" : "0.127" }, { "pixmapfile" : "scotland/s_perth_kinross.png", "toolTipText" : "Perth and Kinross", "x" : "0.618", "y" : "0.193" }, { "pixmapfile" : "scotland/s_stirling.png", "toolTipText" : "Stirling", "x" : "0.545", "y" : "0.3" }, { "pixmapfile" : "scotland/s_argyll_bute.png", "toolTipText" : "Argyll and Bute", "x" : "0.301", "y" : "0.396" } ] } diff --git a/src/activities/geo-country/resource/board/board16_0.qml b/src/activities/geo-country/resource/board/board16_0.qml index 31ffa174e..94f355f5b 100644 --- a/src/activities/geo-country/resource/board/board16_0.qml +++ b/src/activities/geo-country/resource/board/board16_0.qml @@ -1,86 +1,86 @@ /* GCompris * * Copyright (C) 2016 Johnny Jazeix * * Authors: * Johnny Jazeix * Horia PELLE * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Provinces of Romania") - property variant levels: [ + property var levels: [ { "pixmapfile" : "romania/background.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "romania/oltenia.png", "toolTipText" : "Oltenia", "x" : "0.346", "y" : "0.787" }, { "pixmapfile" : "romania/muntenia.png", "toolTipText" : "Muntenia", "x" : "0.629", "y" : "0.768" }, { "pixmapfile" : "romania/dobrogea.png", "toolTipText" : "Dobrogea", "x" : "0.873", "y" : "0.776" }, { "pixmapfile" : "romania/moldova.png", "toolTipText" : "Moldova", "x" : "0.693", "y" : "0.307" }, { "pixmapfile" : "romania/bucovina.png", "toolTipText" : "Bucovina", "x" : "0.567", "y" : "0.155" }, { "pixmapfile" : "romania/transilvania.png", "toolTipText" : "Transilvania", "x" : "0.443", "y" : "0.396" }, { "pixmapfile" : "romania/maramures.png", "toolTipText" : "Maramureș", "x" : "0.386", "y" : "0.111" }, { "pixmapfile" : "romania/crisana.png", "toolTipText" : "Crișana", "x" : "0.193", "y" : "0.290" }, { "pixmapfile" : "romania/banat.png", "toolTipText" : "Banat", "x" : "0.128", "y" : "0.617" } ] } diff --git a/src/activities/geo-country/resource/board/board1_0.qml b/src/activities/geo-country/resource/board/board1_0.qml index fb3f0e9d9..92894db50 100644 --- a/src/activities/geo-country/resource/board/board1_0.qml +++ b/src/activities/geo-country/resource/board/board1_0.qml @@ -1,123 +1,123 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Districts of France") - property variant levels: [ + property var levels: [ { "pixmapfile" : "france/france-regions.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "france/corse.png", "sound" : "voices-$CA/$LOCALE/france/corse.$CA", "x" : "0.836", "y" : "0.905", "toolTipText" : "Corse" }, { "pixmapfile" : "france/nouvelle-aquitaine.png", "sound" : "voices-$CA/$LOCALE/france/nouvelle-aquitaine.$CA", "x" : "0.37", "y" : "0.64", "toolTipText" : "Nouvelle-Aquitaine" }, { "pixmapfile" : "france/occitanie.png", "sound" : "voices-$CA/$LOCALE/france/occitanie.$CA", "x" : "0.47", "y" : "0.776", "toolTipText" : "Occitanie" }, { "pixmapfile" : "france/paca.png", "sound" : "voices-$CA/$LOCALE/france/paca.$CA", "x" : "0.672", "y" : "0.728", "toolTipText" : "Provence-Alpes-Côte d'Azur" }, { "pixmapfile" : "france/auvergne-rhone-alpes.png", "sound" : "voices-$CA/$LOCALE/france/auvergne-rhone-alpes.$CA", "x" : "0.597", "y" : "0.586", "toolTipText" : "Auvergne-Rhône-Alpes" }, { "pixmapfile" : "france/centre-val-de-loire.png", "sound" : "voices-$CA/$LOCALE/france/centre-val-de-loire.$CA", "x" : "0.439", "y" : "0.360", "toolTipText" : "Centre-Val de Loire" }, { "pixmapfile" : "france/pays-de-la-loire.png", "sound" : "voices-$CA/$LOCALE/france/pays-de-la-loire.$CA", "x" : "0.316", "y" : "0.378", "toolTipText" : "Pays de la Loire" }, { "pixmapfile" : "france/ile-de-france.png", "sound" : "voices-$CA/$LOCALE/france/ile-de-france.$CA", "x" : "0.486", "y" : "0.253", "toolTipText" : "Île-de-france" }, { "pixmapfile" : "france/bretagne.png", "sound" : "voices-$CA/$LOCALE/france/bretagne.$CA", "x" : "0.216", "y" : "0.291", "toolTipText" : "Bretagne" }, { "pixmapfile" : "france/normandie.png", "sound" : "voices-$CA/$LOCALE/france/normandie.$CA", "x" : "0.366", "y" : "0.199", "toolTipText" : "Normandie" }, { "pixmapfile" : "france/haut-de-france.png", "sound" : "voices-$CA/$LOCALE/france/haut-de-france.$CA", "x" : "0.503", "y" : "0.117", "toolTipText" : "Haut de France" }, { "pixmapfile" : "france/grand-est.png", "sound" : "voices-$CA/$LOCALE/france/grand-est.$CA", "x" : "0.649", "y" : "0.233", "toolTipText" : "Grand est" }, { "pixmapfile" : "france/bourgogne-franche-comte.png", "sound" : "voices-$CA/$LOCALE/france/bourgogne-franche-comte.$CA", "x" : "0.613", "y" : "0.398", "toolTipText" : "Bourgogne-Franche-Comté" } ] } diff --git a/src/activities/geo-country/resource/board/board2_0.qml b/src/activities/geo-country/resource/board/board2_0.qml index 4350161a1..1f66bc775 100644 --- a/src/activities/geo-country/resource/board/board2_0.qml +++ b/src/activities/geo-country/resource/board/board2_0.qml @@ -1,128 +1,128 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Districts of Germany") - property variant levels: [ + property var levels: [ { "pixmapfile" : "germany/back.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "germany/thueringen.png", "toolTipText" : "Thüringen", "x" : "0.584", "y" : "0.536" }, { "pixmapfile" : "germany/schleswig_holstein.png", "toolTipText" : "Schleswig-Holstein", "x" : "0.436", "y" : "0.14" }, { "pixmapfile" : "germany/sachsen.png", "toolTipText" : "Sachsen", "x" : "0.805", "y" : "0.536" }, { "pixmapfile" : "germany/sachsen-anhalt.png", "toolTipText" : "Sachsen-Anhalt", "x" : "0.645", "y" : "0.409" }, { "pixmapfile" : "germany/saarland.png", "toolTipText" : "Saarland", "x" : "0.13", "y" : "0.729" }, { "pixmapfile" : "germany/rheinland-pfalz.png", "toolTipText" : "Rheinland-Pfalz", "x" : "0.178", "y" : "0.656" }, { "pixmapfile" : "germany/nordrhein-westfalen.png", "toolTipText" : "Nordrhein-Westfalen", "x" : "0.221", "y" : "0.473" }, { "pixmapfile" : "germany/niedersachsen.png", "toolTipText" : "Niedersachsen", "x" : "0.371", "y" : "0.292" }, { "pixmapfile" : "germany/mecklenburg-vorpommern.png", "toolTipText" : "Mecklenburg-Vorpommern", "x" : "0.699", "y" : "0.176" }, { "pixmapfile" : "germany/hessen.png", "toolTipText" : "Hessen", "x" : "0.356", "y" : "0.587" }, { "pixmapfile" : "germany/hamburg.png", "toolTipText" : "Hamburg", "x" : "0.463", "y" : "0.235" }, { "pixmapfile" : "germany/bremen.png", "toolTipText" : "Bremen", "x" : "0.289", "y" : "0.252" }, { "pixmapfile" : "germany/brandenburg.png", "toolTipText" : "Brandenburg", "x" : "0.758", "y" : "0.344" }, { "pixmapfile" : "germany/berlin.png", "toolTipText" : "Berlin", "x" : "0.823", "y" : "0.339" }, { "pixmapfile" : "germany/bayern.png", "toolTipText" : "Bayern", "x" : "0.605", "y" : "0.786" }, { "pixmapfile" : "germany/baden-wuerttemberg.png", "toolTipText" : "Baden-Württemberg", "x" : "0.351", "y" : "0.817" } ] } diff --git a/src/activities/geo-country/resource/board/board3_0.qml b/src/activities/geo-country/resource/board/board3_0.qml index 5ce039990..4eec9d054 100644 --- a/src/activities/geo-country/resource/board/board3_0.qml +++ b/src/activities/geo-country/resource/board/board3_0.qml @@ -1,170 +1,170 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Districts of Argentina") - property variant levels: [ + property var levels: [ { "pixmapfile" : "argentina/argentina.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "argentina/tucuman.png", "toolTipText" : "Tucuman", "x" : "0.434", "y" : "0.178" }, { "pixmapfile" : "argentina/tierra_del_fuego.png", "toolTipText" : "Tierra del Fuego", "x" : "0.437", "y" : "0.881" }, { "pixmapfile" : "argentina/santiago_del_estero.png", "toolTipText" : "Santiago del Estero", "x" : "0.489", "y" : "0.192" }, { "pixmapfile" : "argentina/santa_fe.png", "toolTipText" : "Santa Fe", "x" : "0.56", "y" : "0.283" }, { "pixmapfile" : "argentina/santa_cruz.png", "toolTipText" : "Santa Cruz", "x" : "0.363", "y" : "0.752" }, { "pixmapfile" : "argentina/san_luis.png", "toolTipText" : "San Luis", "x" : "0.415", "y" : "0.355" }, { "pixmapfile" : "argentina/san_juan.png", "toolTipText" : "San Juan", "x" : "0.346", "y" : "0.269" }, { "pixmapfile" : "argentina/salta.png", "toolTipText" : "Salta", "x" : "0.432", "y" : "0.103" }, { "pixmapfile" : "argentina/rio_negro.png", "toolTipText" : "Rio Negro", "x" : "0.4", "y" : "0.507" }, { "pixmapfile" : "argentina/neuquen.png", "toolTipText" : "Neuquen", "x" : "0.332", "y" : "0.481" }, { "pixmapfile" : "argentina/misiones.png", "toolTipText" : "Misiones", "x" : "0.734", "y" : "0.178" }, { "pixmapfile" : "argentina/mendoza.png", "toolTipText" : "Mendoza", "x" : "0.36", "y" : "0.379" }, { "pixmapfile" : "argentina/la_rioja.png", "toolTipText" : "La Rioja", "x" : "0.377", "y" : "0.25" }, { "pixmapfile" : "argentina/la_pampa.png", "toolTipText" : "La Pampa", "x" : "0.432", "y" : "0.437" }, { "pixmapfile" : "argentina/jujuy.png", "toolTipText" : "Jujuy", "x" : "0.42", "y" : "0.075" }, { "pixmapfile" : "argentina/formosa.png", "toolTipText" : "Formosa", "x" : "0.588", "y" : "0.117" }, { "pixmapfile" : "argentina/entre_rios.png", "toolTipText" : "Entre Rios", "x" : "0.6", "y" : "0.308" }, { "pixmapfile" : "argentina/corrientes.png", "toolTipText" : "Corrientes", "x" : "0.648", "y" : "0.227" }, { "pixmapfile" : "argentina/cordoba.png", "toolTipText" : "Cordoba", "x" : "0.477", "y" : "0.311" }, { "pixmapfile" : "argentina/chubut.png", "toolTipText" : "Chubut", "x" : "0.389", "y" : "0.617" }, { "pixmapfile" : "argentina/chaco.png", "toolTipText" : "Chaco", "x" : "0.563", "y" : "0.152" }, { "pixmapfile" : "argentina/catamarca.png", "toolTipText" : "Catamarca", "x" : "0.389", "y" : "0.189" }, { "pixmapfile" : "argentina/buenos_aires.png", "toolTipText" : "Buenos Aires", "x" : "0.577", "y" : "0.439" } ] } diff --git a/src/activities/geo-country/resource/board/board4_0.qml b/src/activities/geo-country/resource/board/board4_0.qml index 250df2e9b..25ccc03ee 100644 --- a/src/activities/geo-country/resource/board/board4_0.qml +++ b/src/activities/geo-country/resource/board/board4_0.qml @@ -1,128 +1,128 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Districts of Poland") - property variant levels: [ + property var levels: [ { "pixmapfile" : "poland/poland.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "poland/dolnoslaskie.png", "toolTipText" : "Dolnoslaskie", "x" : "0.202", "y" : "0.664" }, { "pixmapfile" : "poland/zachodnio-pomorskie.png", "toolTipText" : "Zachodnio Pomorskie", "x" : "0.14", "y" : "0.203" }, { "pixmapfile" : "poland/wielkopolskie.png", "toolTipText" : "Wielkopolskie", "x" : "0.32", "y" : "0.422" }, { "pixmapfile" : "poland/warminsko-mazurskie.png", "toolTipText" : "Warminsko-Mazurskie", "x" : "0.66", "y" : "0.18" }, { "pixmapfile" : "poland/swietokrzyskie.png", "toolTipText" : "Swietokrzyskie", "x" : "0.656", "y" : "0.702" }, { "pixmapfile" : "poland/slaskie.png", "toolTipText" : "Slaskie", "x" : "0.47", "y" : "0.795" }, { "pixmapfile" : "poland/pomorskie.png", "toolTipText" : "Pomorskie", "x" : "0.396", "y" : "0.113" }, { "pixmapfile" : "poland/podlaskie.png", "toolTipText" : "Podlaskie", "x" : "0.842", "y" : "0.247" }, { "pixmapfile" : "poland/podkarpackie.png", "toolTipText" : "Podkarpackie", "x" : "0.818", "y" : "0.841" }, { "pixmapfile" : "poland/opolskie.png", "toolTipText" : "Opolskie", "x" : "0.35", "y" : "0.734" }, { "pixmapfile" : "poland/mazowieckie.png", "toolTipText" : "Mazowieckie", "x" : "0.692", "y" : "0.447" }, { "pixmapfile" : "poland/malopolskie.png", "toolTipText" : "Malopolskie", "x" : "0.604", "y" : "0.862" }, { "pixmapfile" : "poland/lodzkie.png", "toolTipText" : "Lódzkie", "x" : "0.512", "y" : "0.557" }, { "pixmapfile" : "poland/lubuskie.png", "toolTipText" : "Lubuskie", "x" : "0.124", "y" : "0.437" }, { "pixmapfile" : "poland/lubelskie.png", "toolTipText" : "Lubelskie", "x" : "0.868", "y" : "0.605" }, { "pixmapfile" : "poland/kujawsko-pomorskie.png", "toolTipText" : "Kujawsko-Pomorskie", "x" : "0.426", "y" : "0.308" } ] } diff --git a/src/activities/geo-country/resource/board/board5_0.qml b/src/activities/geo-country/resource/board/board5_0.qml index 516e5ee2a..6e01cb8e3 100644 --- a/src/activities/geo-country/resource/board/board5_0.qml +++ b/src/activities/geo-country/resource/board/board5_0.qml @@ -1,321 +1,321 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property int numberOfSubLevel: 2 property string instruction: qsTr("Districts of Turkey") - property variant levels: [ + property var levels: [ { "pixmapfile" : "turkey/turkey-west.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "turkey/zonguldak.png", "toolTipText" : "Zonguldak", "x" : "0.533", "y" : "0.15" }, { "pixmapfile" : "turkey/yozgat.png", "toolTipText" : "Yozgat", "x" : "0.806", "y" : "0.398" }, { "pixmapfile" : "turkey/yalova.png", "toolTipText" : "Yalova", "x" : "0.296", "y" : "0.239" }, { "pixmapfile" : "turkey/usak.png", "toolTipText" : "Usak", "x" : "0.3", "y" : "0.515" }, { "pixmapfile" : "turkey/tekirdag.png", "toolTipText" : "Tekirdag", "x" : "0.167", "y" : "0.155" }, { "pixmapfile" : "turkey/sinop.png", "toolTipText" : "Sinop", "x" : "0.794", "y" : "0.114" }, { "pixmapfile" : "turkey/samsun.png", "toolTipText" : "Samsun", "x" : "0.886", "y" : "0.162" }, { "pixmapfile" : "turkey/sakarya.png", "toolTipText" : "Sakarya", "x" : "0.414", "y" : "0.221" }, { "pixmapfile" : "turkey/osmaniye.png", "toolTipText" : "Osmaniye", "x" : "0.91", "y" : "0.692" }, { "pixmapfile" : "turkey/nigde.png", "toolTipText" : "Nigde", "x" : "0.765", "y" : "0.638" }, { "pixmapfile" : "turkey/nevsehir.png", "toolTipText" : "Nevsehir", "x" : "0.765", "y" : "0.5" }, { "pixmapfile" : "turkey/mugla.png", "toolTipText" : "Mugla", "x" : "0.206", "y" : "0.733" }, { "pixmapfile" : "turkey/mersin.png", "toolTipText" : "Mersin", "x" : "0.688", "y" : "0.794" }, { "pixmapfile" : "turkey/manisa.png", "toolTipText" : "Manisa", "x" : "0.196", "y" : "0.477" }, { "pixmapfile" : "turkey/kutahya.png", "toolTipText" : "Kütahya", "x" : "0.32", "y" : "0.413" }, { "pixmapfile" : "turkey/konya.png", "toolTipText" : "Konya", "x" : "0.602", "y" : "0.62" }, { "pixmapfile" : "turkey/kocaeli.png", "toolTipText" : "Kocaeli", "x" : "0.367", "y" : "0.198" }, { "pixmapfile" : "turkey/kirsehir.png", "toolTipText" : "Kirsehir", "x" : "0.718", "y" : "0.431" }, { "pixmapfile" : "turkey/kirklareli.png", "toolTipText" : "Kirklareli", "x" : "0.178", "y" : "0.07" }, { "pixmapfile" : "turkey/kirikkale.png", "toolTipText" : "Kirikkale", "x" : "0.686", "y" : "0.362" }, { "pixmapfile" : "turkey/kayseri.png", "toolTipText" : "Kayseri", "x" : "0.869", "y" : "0.543" }, { "pixmapfile" : "turkey/kastamonu.png", "toolTipText" : "Kastamonu", "x" : "0.69", "y" : "0.142" }, { "pixmapfile" : "turkey/karaman.png", "toolTipText" : "Karaman", "x" : "0.627", "y" : "0.748" }, { "pixmapfile" : "turkey/karabuk.png", "toolTipText" : "Karabük", "x" : "0.59", "y" : "0.188" }, { "pixmapfile" : "turkey/izmir.png", "toolTipText" : "Izmir", "x" : "0.129", "y" : "0.485" }, { "pixmapfile" : "turkey/istanbul.png", "toolTipText" : "Istanbul", "x" : "0.292", "y" : "0.157" }, { "pixmapfile" : "turkey/isparta.png", "toolTipText" : "Isparta", "x" : "0.42", "y" : "0.618" }, { "pixmapfile" : "turkey/hatay.png", "toolTipText" : "Hatay", "x" : "0.916", "y" : "0.835" }, { "pixmapfile" : "turkey/eskisehir.png", "toolTipText" : "Eskisehir", "x" : "0.457", "y" : "0.38" }, { "pixmapfile" : "turkey/edirne.png", "toolTipText" : "Edirne", "x" : "0.096", "y" : "0.104" }, { "pixmapfile" : "turkey/duzce.png", "toolTipText" : "Düzce", "x" : "0.476", "y" : "0.201" }, { "pixmapfile" : "turkey/denizli.png", "toolTipText" : "Denizli", "x" : "0.29", "y" : "0.633" }, { "pixmapfile" : "turkey/corum.png", "toolTipText" : "Çorum", "x" : "0.78", "y" : "0.265" }, { "pixmapfile" : "turkey/cankiri.png", "toolTipText" : "Çankiri", "x" : "0.665", "y" : "0.244" }, { "pixmapfile" : "turkey/canakkale.png", "toolTipText" : "Çanakkale", "x" : "0.084", "y" : "0.27" }, { "pixmapfile" : "turkey/bursa.png", "toolTipText" : "Bursa", "x" : "0.296", "y" : "0.306" }, { "pixmapfile" : "turkey/burdur.png", "toolTipText" : "Burdur", "x" : "0.355", "y" : "0.682" }, { "pixmapfile" : "turkey/bolu.png", "toolTipText" : "Bolu", "x" : "0.5", "y" : "0.242" }, { "pixmapfile" : "turkey/bilecik.png", "toolTipText" : "Bilecik", "x" : "0.382", "y" : "0.311" }, { "pixmapfile" : "turkey/bartin.png", "toolTipText" : "Bartin", "x" : "0.594", "y" : "0.114" }, { "pixmapfile" : "turkey/balikesir.png", "toolTipText" : "Balikesir", "x" : "0.18", "y" : "0.321" }, { "pixmapfile" : "turkey/aydin.png", "toolTipText" : "Aydin", "x" : "0.171", "y" : "0.61" }, { "pixmapfile" : "turkey/antalya.png", "toolTipText" : "Antalya", "x" : "0.424", "y" : "0.779" }, { "pixmapfile" : "turkey/ankara.png", "toolTipText" : "Ankara", "x" : "0.571", "y" : "0.382" }, { "pixmapfile" : "turkey/amasya.png", "toolTipText" : "Amasya", "x" : "0.863", "y" : "0.252" }, { "pixmapfile" : "turkey/aksaray.png", "toolTipText" : "Aksaray", "x" : "0.694", "y" : "0.551" }, { "pixmapfile" : "turkey/afyon.png", "toolTipText" : "Afyon", "x" : "0.412", "y" : "0.536" }, { "pixmapfile" : "turkey/adana.png", "toolTipText" : "Adana", "x" : "0.841", "y" : "0.687" } ] } diff --git a/src/activities/geo-country/resource/board/board5_1.qml b/src/activities/geo-country/resource/board/board5_1.qml index 1fc06e079..ed9acc437 100644 --- a/src/activities/geo-country/resource/board/board5_1.qml +++ b/src/activities/geo-country/resource/board/board5_1.qml @@ -1,242 +1,242 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Eastern Districts of Turkey") - property variant levels: [ + property var levels: [ { "pixmapfile" : "turkey/turkey-east.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "turkey/van.png", "toolTipText" : "Van", "x" : "0.85", "y" : "0.492" }, { "pixmapfile" : "turkey/tunceli.png", "toolTipText" : "Tunceli", "x" : "0.413", "y" : "0.433" }, { "pixmapfile" : "turkey/trabzon.png", "toolTipText" : "Trabzon", "x" : "0.435", "y" : "0.21" }, { "pixmapfile" : "turkey/tokat.png", "toolTipText" : "Tokat", "x" : "0.098", "y" : "0.287" }, { "pixmapfile" : "turkey/sivas.png", "toolTipText" : "Sivas", "x" : "0.163", "y" : "0.405" }, { "pixmapfile" : "turkey/sirnak.png", "toolTipText" : "Sirnak", "x" : "0.733", "y" : "0.662" }, { "pixmapfile" : "turkey/siirt.png", "toolTipText" : "Siirt", "x" : "0.7", "y" : "0.597" }, { "pixmapfile" : "turkey/sanliurfa.png", "toolTipText" : "Sanliurfa", "x" : "0.368", "y" : "0.69" }, { "pixmapfile" : "turkey/rize.png", "toolTipText" : "Rize", "x" : "0.543", "y" : "0.177" }, { "pixmapfile" : "turkey/osmaniye.png", "toolTipText" : "Osmaniye", "x" : "0.065", "y" : "0.695" }, { "pixmapfile" : "turkey/ordu.png", "toolTipText" : "Ordu", "x" : "0.188", "y" : "0.231" }, { "pixmapfile" : "turkey/mus.png", "toolTipText" : "Mus", "x" : "0.67", "y" : "0.444" }, { "pixmapfile" : "turkey/mardin.png", "toolTipText" : "Mardin", "x" : "0.565", "y" : "0.685" }, { "pixmapfile" : "turkey/malatya.png", "toolTipText" : "Malatya", "x" : "0.27", "y" : "0.528" }, { "pixmapfile" : "turkey/kilis.png", "toolTipText" : "Kilis", "x" : "0.158", "y" : "0.774" }, { "pixmapfile" : "turkey/kars.png", "toolTipText" : "Kars", "x" : "0.76", "y" : "0.223" }, { "pixmapfile" : "turkey/kahramanmaras.png", "toolTipText" : "Kahramanmaras", "x" : "0.14", "y" : "0.621" }, { "pixmapfile" : "turkey/igdir.png", "toolTipText" : "Igdir", "x" : "0.875", "y" : "0.297" }, { "pixmapfile" : "turkey/hatay.png", "toolTipText" : "Hatay", "x" : "0.073", "y" : "0.836" }, { "pixmapfile" : "turkey/hakkari.png", "toolTipText" : "Hakkari", "x" : "0.903", "y" : "0.633" }, { "pixmapfile" : "turkey/gumushane.png", "toolTipText" : "Gümüshane", "x" : "0.38", "y" : "0.277" }, { "pixmapfile" : "turkey/giresun.png", "toolTipText" : "Giresun", "x" : "0.298", "y" : "0.251" }, { "pixmapfile" : "turkey/gaziantep.png", "toolTipText" : "Gaziantep", "x" : "0.173", "y" : "0.744" }, { "pixmapfile" : "turkey/erzurum.png", "toolTipText" : "Erzurum", "x" : "0.605", "y" : "0.29" }, { "pixmapfile" : "turkey/erzincan.png", "toolTipText" : "Erzincan", "x" : "0.395", "y" : "0.382" }, { "pixmapfile" : "turkey/elazig.png", "toolTipText" : "Elazig", "x" : "0.39", "y" : "0.49" }, { "pixmapfile" : "turkey/diyarbakir.png", "toolTipText" : "Diyarbakir", "x" : "0.493", "y" : "0.577" }, { "pixmapfile" : "turkey/bitlis.png", "toolTipText" : "Bitlis", "x" : "0.715", "y" : "0.505" }, { "pixmapfile" : "turkey/bingol.png", "toolTipText" : "Bingöl", "x" : "0.525", "y" : "0.449" }, { "pixmapfile" : "turkey/bayburt.png", "toolTipText" : "Bayburt", "x" : "0.478", "y" : "0.279" }, { "pixmapfile" : "turkey/batman.png", "toolTipText" : "Batman", "x" : "0.618", "y" : "0.579" }, { "pixmapfile" : "turkey/artvin.png", "toolTipText" : "Artvin", "x" : "0.635", "y" : "0.162" }, { "pixmapfile" : "turkey/ardahan.png", "toolTipText" : "Ardahan", "x" : "0.74", "y" : "0.138" }, { "pixmapfile" : "turkey/agri.png", "toolTipText" : "Agri", "x" : "0.818", "y" : "0.369" }, { "pixmapfile" : "turkey/adiyaman.png", "toolTipText" : "Adiyaman", "x" : "0.288", "y" : "0.626" } ] } diff --git a/src/activities/geo-country/resource/board/board5_2.qml b/src/activities/geo-country/resource/board/board5_2.qml index f2a4972c3..1a013b8b7 100644 --- a/src/activities/geo-country/resource/board/board5_2.qml +++ b/src/activities/geo-country/resource/board/board5_2.qml @@ -1,518 +1,518 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Districts of Turkey") - property variant levels: [ + property var levels: [ { "pixmapfile" : "turkey/turkey.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "turkey/van.png", "toolTipText" : "Van", "x" : "0.85", "y" : "0.495" }, { "pixmapfile" : "turkey/tunceli.png", "toolTipText" : "Tunceli", "x" : "0.677", "y" : "0.449" }, { "pixmapfile" : "turkey/trabzon.png", "toolTipText" : "Trabzon", "x" : "0.686", "y" : "0.269" }, { "pixmapfile" : "turkey/tokat.png", "toolTipText" : "Tokat", "x" : "0.553", "y" : "0.331" }, { "pixmapfile" : "turkey/sivas.png", "toolTipText" : "Sivas", "x" : "0.579", "y" : "0.426" }, { "pixmapfile" : "turkey/sirnak.png", "toolTipText" : "Sirnak", "x" : "0.803", "y" : "0.631" }, { "pixmapfile" : "turkey/siirt.png", "toolTipText" : "Siirt", "x" : "0.791", "y" : "0.579" }, { "pixmapfile" : "turkey/sanliurfa.png", "toolTipText" : "Sanliurfa", "x" : "0.659", "y" : "0.654" }, { "pixmapfile" : "turkey/rize.png", "toolTipText" : "Rize", "x" : "0.728", "y" : "0.244" }, { "pixmapfile" : "turkey/ordu.png", "toolTipText" : "Ordu", "x" : "0.589", "y" : "0.287" }, { "pixmapfile" : "turkey/mus.png", "toolTipText" : "Mus", "x" : "0.778", "y" : "0.456" }, { "pixmapfile" : "turkey/mardin.png", "toolTipText" : "Mardin", "x" : "0.736", "y" : "0.649" }, { "pixmapfile" : "turkey/malatya.png", "toolTipText" : "Malatya", "x" : "0.621", "y" : "0.523" }, { "pixmapfile" : "turkey/kilis.png", "toolTipText" : "Kilis", "x" : "0.576", "y" : "0.721" }, { "pixmapfile" : "turkey/kars.png", "toolTipText" : "Kars", "x" : "0.814", "y" : "0.279" }, { "pixmapfile" : "turkey/kahramanmaras.png", "toolTipText" : "Kahramanmaras", "x" : "0.569", "y" : "0.597" }, { "pixmapfile" : "turkey/igdir.png", "toolTipText" : "Igdir", "x" : "0.86", "y" : "0.338" }, { "pixmapfile" : "turkey/hatay.png", "toolTipText" : "Hatay", "x" : "0.543", "y" : "0.769" }, { "pixmapfile" : "turkey/hakkari.png", "toolTipText" : "Hakkari", "x" : "0.869", "y" : "0.608" }, { "pixmapfile" : "turkey/gumushane.png", "toolTipText" : "gümüshane", "x" : "0.664", "y" : "0.323" }, { "pixmapfile" : "turkey/giresun.png", "toolTipText" : "Giresun", "x" : "0.632", "y" : "0.303" }, { "pixmapfile" : "turkey/gaziantep.png", "toolTipText" : "Gaziantep", "x" : "0.583", "y" : "0.697" }, { "pixmapfile" : "turkey/erzurum.png", "toolTipText" : "Erzurum", "x" : "0.752", "y" : "0.333" }, { "pixmapfile" : "turkey/erzincan.png", "toolTipText" : "Erzincan", "x" : "0.67", "y" : "0.408" }, { "pixmapfile" : "turkey/elazig.png", "toolTipText" : "Elazig", "x" : "0.667", "y" : "0.492" }, { "pixmapfile" : "turkey/diyarbakir.png", "toolTipText" : "Diyarbakir", "x" : "0.708", "y" : "0.564" }, { "pixmapfile" : "turkey/bitlis.png", "toolTipText" : "Bitlis", "x" : "0.796", "y" : "0.505" }, { "pixmapfile" : "turkey/bingol.png", "toolTipText" : "Bingöl", "x" : "0.722", "y" : "0.462" }, { "pixmapfile" : "turkey/bayburt.png", "toolTipText" : "Bayburt", "x" : "0.702", "y" : "0.326" }, { "pixmapfile" : "turkey/batman.png", "toolTipText" : "Batman", "x" : "0.757", "y" : "0.564" }, { "pixmapfile" : "turkey/artvin.png", "toolTipText" : "Artvin", "x" : "0.765", "y" : "0.231" }, { "pixmapfile" : "turkey/ardahan.png", "toolTipText" : "Ardahan", "x" : "0.805", "y" : "0.213" }, { "pixmapfile" : "turkey/agri.png", "toolTipText" : "Agri", "x" : "0.836", "y" : "0.397" }, { "pixmapfile" : "turkey/adiyaman.png", "toolTipText" : "Adiyaman", "x" : "0.628", "y" : "0.603" }, { "pixmapfile" : "turkey/zonguldak.png", "toolTipText" : "Zonguldak", "x" : "0.356", "y" : "0.221" }, { "pixmapfile" : "turkey/yozgat.png", "toolTipText" : "Yozgat", "x" : "0.489", "y" : "0.421" }, { "pixmapfile" : "turkey/yalova.png", "toolTipText" : "Yalova", "x" : "0.243", "y" : "0.292" }, { "pixmapfile" : "turkey/usak.png", "toolTipText" : "Usak", "x" : "0.244", "y" : "0.513" }, { "pixmapfile" : "turkey/tekirdag.png", "toolTipText" : "Tekirdag", "x" : "0.18", "y" : "0.226" }, { "pixmapfile" : "turkey/sinop.png", "toolTipText" : "Sinop", "x" : "0.483", "y" : "0.192" }, { "pixmapfile" : "turkey/samsun.png", "toolTipText" : "Samsun", "x" : "0.527", "y" : "0.231" }, { "pixmapfile" : "turkey/sakarya.png", "toolTipText" : "Sakarya", "x" : "0.299", "y" : "0.277" }, { "pixmapfile" : "turkey/osmaniye.png", "toolTipText" : "Osmaniye", "x" : "0.538", "y" : "0.656" }, { "pixmapfile" : "turkey/nigde.png", "toolTipText" : "Nigde", "x" : "0.469", "y" : "0.613" }, { "pixmapfile" : "turkey/nevsehir.png", "toolTipText" : "Nevsehir", "x" : "0.469", "y" : "0.503" }, { "pixmapfile" : "turkey/mugla.png", "toolTipText" : "Mugla", "x" : "0.198", "y" : "0.687" }, { "pixmapfile" : "turkey/mersin.png", "toolTipText" : "Mersin", "x" : "0.431", "y" : "0.738" }, { "pixmapfile" : "turkey/manisa.png", "toolTipText" : "Manisa", "x" : "0.193", "y" : "0.482" }, { "pixmapfile" : "turkey/kutahya.png", "toolTipText" : "Kütahya", "x" : "0.254", "y" : "0.431" }, { "pixmapfile" : "turkey/konya.png", "toolTipText" : "Konya", "x" : "0.39", "y" : "0.597" }, { "pixmapfile" : "turkey/kocaeli.png", "toolTipText" : "Kocaeli", "x" : "0.277", "y" : "0.259" }, { "pixmapfile" : "turkey/kirsehir.png", "toolTipText" : "Kirsehir", "x" : "0.446", "y" : "0.446" }, { "pixmapfile" : "turkey/kirklareli.png", "toolTipText" : "Kirklareli", "x" : "0.185", "y" : "0.156" }, { "pixmapfile" : "turkey/kirikkale.png", "toolTipText" : "Kirikkale", "x" : "0.43", "y" : "0.39" }, { "pixmapfile" : "turkey/kayseri.png", "toolTipText" : "Kayseri", "x" : "0.518", "y" : "0.536" }, { "pixmapfile" : "turkey/kastamonu.png", "toolTipText" : "Kastamonu", "x" : "0.432", "y" : "0.215" }, { "pixmapfile" : "turkey/karaman.png", "toolTipText" : "Karaman", "x" : "0.401", "y" : "0.7" }, { "pixmapfile" : "turkey/karabuk.png", "toolTipText" : "Karabuk", "x" : "0.384", "y" : "0.251" }, { "pixmapfile" : "turkey/izmir.png", "toolTipText" : "Izmir", "x" : "0.161", "y" : "0.49" }, { "pixmapfile" : "turkey/istanbul.png", "toolTipText" : "Istanbul", "x" : "0.24", "y" : "0.226" }, { "pixmapfile" : "turkey/isparta.png", "toolTipText" : "Isparta", "x" : "0.302", "y" : "0.595" }, { "pixmapfile" : "turkey/eskisehir.png", "toolTipText" : "Eskisehir", "x" : "0.32", "y" : "0.405" }, { "pixmapfile" : "turkey/edirne.png", "toolTipText" : "Edirne", "x" : "0.145", "y" : "0.185" }, { "pixmapfile" : "turkey/duzce.png", "toolTipText" : "Düzce", "x" : "0.329", "y" : "0.262" }, { "pixmapfile" : "turkey/denizli.png", "toolTipText" : "Denizli", "x" : "0.239", "y" : "0.608" }, { "pixmapfile" : "turkey/corum.png", "toolTipText" : "Çorum", "x" : "0.475", "y" : "0.313" }, { "pixmapfile" : "turkey/cankiri.png", "toolTipText" : "Çankiri", "x" : "0.42", "y" : "0.297" }, { "pixmapfile" : "turkey/canakkale.png", "toolTipText" : "Çanakkale", "x" : "0.139", "y" : "0.318" }, { "pixmapfile" : "turkey/bursa.png", "toolTipText" : "Bursa", "x" : "0.243", "y" : "0.346" }, { "pixmapfile" : "turkey/burdur.png", "toolTipText" : "Burdur", "x" : "0.271", "y" : "0.646" }, { "pixmapfile" : "turkey/bolu.png", "toolTipText" : "Bolu", "x" : "0.341", "y" : "0.295" }, { "pixmapfile" : "turkey/bilecik.png", "toolTipText" : "Bilecik", "x" : "0.283", "y" : "0.349" }, { "pixmapfile" : "turkey/bartin.png", "toolTipText" : "Bartin", "x" : "0.385", "y" : "0.192" }, { "pixmapfile" : "turkey/balikesir.png", "toolTipText" : "Balikesir", "x" : "0.186", "y" : "0.359" }, { "pixmapfile" : "turkey/aydin.png", "toolTipText" : "Aydin", "x" : "0.182", "y" : "0.59" }, { "pixmapfile" : "turkey/antalya.png", "toolTipText" : "Antalya", "x" : "0.304", "y" : "0.726" }, { "pixmapfile" : "turkey/ankara.png", "toolTipText" : "Ankara", "x" : "0.376", "y" : "0.408" }, { "pixmapfile" : "turkey/amasya.png", "toolTipText" : "Amasya", "x" : "0.516", "y" : "0.303" }, { "pixmapfile" : "turkey/aksaray.png", "toolTipText" : "Aksaray", "x" : "0.435", "y" : "0.544" }, { "pixmapfile" : "turkey/afyon.png", "toolTipText" : "Afyon", "x" : "0.298", "y" : "0.531" }, { "pixmapfile" : "turkey/adana.png", "toolTipText" : "Adana", "x" : "0.505", "y" : "0.651" } ] } diff --git a/src/activities/geo-country/resource/board/board6_0.qml b/src/activities/geo-country/resource/board/board6_0.qml index 11aa48d6c..0fc891573 100644 --- a/src/activities/geo-country/resource/board/board6_0.qml +++ b/src/activities/geo-country/resource/board/board6_0.qml @@ -1,146 +1,146 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Counties of Norway") - property variant levels: [ + property var levels: [ { "pixmapfile" : "norway/norway.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "norway/telemark.png", "toolTipText" : "Telemark", "x" : "0.208", "y" : "0.849" }, { "pixmapfile" : "norway/ostfold.png", "toolTipText" : "Østfold", "x" : "0.319", "y" : "0.871" }, { "pixmapfile" : "norway/nordland.png", "toolTipText" : "Nordland", "x" : "0.469", "y" : "0.352" }, { "pixmapfile" : "norway/finnmark.png", "toolTipText" : "Finnmark", "x" : "0.787", "y" : "0.152" }, { "pixmapfile" : "norway/vestfold.png", "toolTipText" : "Vestfold", "x" : "0.275", "y" : "0.862" }, { "pixmapfile" : "norway/sor-trondelag.png", "toolTipText" : "Sør-Trøndelag", "x" : "0.3", "y" : "0.601" }, { "pixmapfile" : "norway/oslo.png", "toolTipText" : "Oslo", "x" : "0.304", "y" : "0.838" }, { "pixmapfile" : "norway/more-og-romsdal.png", "toolTipText" : "Møre og Romsdal", "x" : "0.196", "y" : "0.632" }, { "pixmapfile" : "norway/buskerud.png", "toolTipText" : "Buskerud", "x" : "0.234", "y" : "0.799" }, { "pixmapfile" : "norway/vest-agder.png", "toolTipText" : "Vest-Agder", "x" : "0.15", "y" : "0.901" }, { "pixmapfile" : "norway/sogn-og-fjordane.png", "toolTipText" : "Sogn og Fjordane", "x" : "0.15", "y" : "0.712" }, { "pixmapfile" : "norway/oppland.png", "toolTipText" : "Oppland", "x" : "0.251", "y" : "0.734" }, { "pixmapfile" : "norway/hordaland.png", "toolTipText" : "Hordaland", "x" : "0.13", "y" : "0.786" }, { "pixmapfile" : "norway/aust-agder.png", "toolTipText" : "Aust-Agder", "x" : "0.186", "y" : "0.881" }, { "pixmapfile" : "norway/troms.png", "toolTipText" : "Troms", "x" : "0.594", "y" : "0.201" }, { "pixmapfile" : "norway/rogaland.png", "toolTipText" : "Rogaland", "x" : "0.114", "y" : "0.868" }, { "pixmapfile" : "norway/nord-trondelag.png", "toolTipText" : "Nord-Trøndelag", "x" : "0.372", "y" : "0.549" }, { "pixmapfile" : "norway/hedmark.png", "toolTipText" : "Hedmark", "x" : "0.329", "y" : "0.737" }, { "pixmapfile" : "norway/akershus.png", "toolTipText" : "Akershus", "x" : "0.319", "y" : "0.817" } ] } diff --git a/src/activities/geo-country/resource/board/board7_0.qml b/src/activities/geo-country/resource/board/board7_0.qml index 71b0d099c..418ae4bfd 100644 --- a/src/activities/geo-country/resource/board/board7_0.qml +++ b/src/activities/geo-country/resource/board/board7_0.qml @@ -1,194 +1,194 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Counties of Brazil") - property variant levels: [ + property var levels: [ { "pixmapfile" : "brazil/background.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "brazil/Amazonas.png", "toolTipText" : "Amazonas", "x" : "0.269", "y" : "0.266" }, { "pixmapfile" : "brazil/Para.png", "toolTipText" : "Pará", "x" : "0.538", "y" : "0.259" }, { "pixmapfile" : "brazil/Mato_Grosso.png", "toolTipText" : "Mato Grosso", "x" : "0.467", "y" : "0.466" }, { "pixmapfile" : "brazil/Minas_Gerais.png", "toolTipText" : "Minas Gerais", "x" : "0.692", "y" : "0.597" }, { "pixmapfile" : "brazil/Bahia.png", "toolTipText" : "Bahia", "x" : "0.764", "y" : "0.481" }, { "pixmapfile" : "brazil/Mato_Grosso_do_Sul.png", "toolTipText" : "Mato Grosso do Sul", "x" : "0.497", "y" : "0.642" }, { "pixmapfile" : "brazil/Goias.png", "toolTipText" : "Goiás", "x" : "0.601", "y" : "0.539" }, { "pixmapfile" : "brazil/Maranhao.png", "toolTipText" : "Maranhão", "x" : "0.698", "y" : "0.305" }, { "pixmapfile" : "brazil/Rio_Grande_do_Sul.png", "toolTipText" : "Rio Grande do Sul", "x" : "0.519", "y" : "0.865" }, { "pixmapfile" : "brazil/Tocantins.png", "toolTipText" : "Tocantins", "x" : "0.63", "y" : "0.387" }, { "pixmapfile" : "brazil/Piaui.png", "toolTipText" : "Piauí", "x" : "0.74", "y" : "0.331" }, { "pixmapfile" : "brazil/Sao_Paulo.png", "toolTipText" : "São Paulo", "x" : "0.627", "y" : "0.685" }, { "pixmapfile" : "brazil/Rondonia.png", "toolTipText" : "Rondônia", "x" : "0.322", "y" : "0.422" }, { "pixmapfile" : "brazil/Roraima.png", "toolTipText" : "Roraima", "x" : "0.345", "y" : "0.133" }, { "pixmapfile" : "brazil/Parana.png", "toolTipText" : "Paraná", "x" : "0.565", "y" : "0.733" }, { "pixmapfile" : "brazil/Acre.png", "toolTipText" : "Acre", "x" : "0.159", "y" : "0.386" }, { "pixmapfile" : "brazil/Ceara.png", "toolTipText" : "Ceará", "x" : "0.82", "y" : "0.296" }, { "pixmapfile" : "brazil/Amapa.png", "toolTipText" : "Amapá", "x" : "0.546", "y" : "0.14" }, { "pixmapfile" : "brazil/Pernambuco.png", "toolTipText" : "Pernambuco", "x" : "0.853", "y" : "0.368" }, { "pixmapfile" : "brazil/Santa_Catarina.png", "toolTipText" : "Santa Catarina", "x" : "0.57", "y" : "0.8" }, { "pixmapfile" : "brazil/Paraiba.png", "toolTipText" : "Paraíba", "x" : "0.878", "y" : "0.34" }, { "pixmapfile" : "brazil/Rio_Grande_do_Norte.png", "toolTipText" : "Rio Grande do Norte", "x" : "0.883", "y" : "0.308" }, { "pixmapfile" : "brazil/Espirito_Santo.png", "toolTipText" : "Espírito Santo", "x" : "0.794", "y" : "0.619" }, { "pixmapfile" : "brazil/Rio_de_Janeiro.png", "toolTipText" : "Rio de Janeiro", "x" : "0.752", "y" : "0.673" }, { "pixmapfile" : "brazil/Alagoas.png", "toolTipText" : "Alagoas", "x" : "0.879", "y" : "0.395" }, { "pixmapfile" : "brazil/Sergipe.png", "toolTipText" : "Sergipe", "x" : "0.866", "y" : "0.418" }, { "pixmapfile" : "brazil/Distrito_Federal.png", "toolTipText" : "Distrito Federal", "x" : "0.641", "y" : "0.533" } ] } diff --git a/src/activities/geo-country/resource/board/board8_0.qml b/src/activities/geo-country/resource/board/board8_0.qml index d2ecf7dfc..a4d934c63 100644 --- a/src/activities/geo-country/resource/board/board8_0.qml +++ b/src/activities/geo-country/resource/board/board8_0.qml @@ -1,110 +1,110 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Districts of Canada") - property variant levels: [ + property var levels: [ { "pixmapfile" : "canada/background.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "canada/yukon.png", "toolTipText" : "Yukon", "x" : "0.074", "y" : "0.372" }, { "pixmapfile" : "canada/british_columbia.png", "toolTipText" : "British Columbia", "x" : "0.083", "y" : "0.597" }, { "pixmapfile" : "canada/northwest_territories.png", "toolTipText" : "Northwest Territories", "x" : "0.243", "y" : "0.365" }, { "pixmapfile" : "canada/nunavut.png", "toolTipText" : "Nunavut", "x" : "0.469", "y" : "0.306" }, { "pixmapfile" : "canada/alberta.png", "toolTipText" : "Alberta", "x" : "0.204", "y" : "0.661" }, { "pixmapfile" : "canada/saskatchewan.png", "toolTipText" : "Saskatchewan", "x" : "0.291", "y" : "0.688" }, { "pixmapfile" : "canada/manitoba.png", "toolTipText" : "Manitoba", "x" : "0.417", "y" : "0.698" }, { "pixmapfile" : "canada/ontario.png", "toolTipText" : "Ontario", "x" : "0.582", "y" : "0.805" }, { "pixmapfile" : "canada/quebec.png", "toolTipText" : "Quebec", "x" : "0.742", "y" : "0.673" }, { "pixmapfile" : "canada/newfoundland_labrador.png", "toolTipText" : "Newfoundland and Labrador", "x" : "0.87", "y" : "0.603" }, { "pixmapfile" : "canada/new_brunswick.png", "toolTipText" : "New Brunswick", "x" : "0.834", "y" : "0.779" }, { "pixmapfile" : "canada/nova_scotia.png", "toolTipText" : "Nova Scotia", "x" : "0.894", "y" : "0.782" }, { "pixmapfile" : "canada/prince_edward_island.png", "toolTipText" : "Prince Edward Island", "x" : "0.878", "y" : "0.757" } ] } diff --git a/src/activities/geo-country/resource/board/board9_0.qml b/src/activities/geo-country/resource/board/board9_0.qml index 24c82d2e7..ca4d6ff88 100644 --- a/src/activities/geo-country/resource/board/board9_0.qml +++ b/src/activities/geo-country/resource/board/board9_0.qml @@ -1,224 +1,224 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Districts of Mexico") - property variant levels: [ + property var levels: [ { "pixmapfile" : "mexico/background.png", "type" : "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile" : "mexico/zacatecas.png", "toolTipText" : "Zacatecas", "x" : "0.451", "y" : "0.554" }, { "pixmapfile" : "mexico/yucatan.png", "toolTipText" : "Yucatan", "x" : "0.923", "y" : "0.662" }, { "pixmapfile" : "mexico/veracruz.png", "toolTipText" : "Veracruz", "x" : "0.68", "y" : "0.73" }, { "pixmapfile" : "mexico/tlaxcala.png", "toolTipText" : "Tlaxcala", "x" : "0.604", "y" : "0.752" }, { "pixmapfile" : "mexico/tamaulipas.png", "toolTipText" : "Tamaulipas", "x" : "0.585", "y" : "0.459" }, { "pixmapfile" : "mexico/tabasco.png", "toolTipText" : "Tabasco", "x" : "0.807", "y" : "0.817" }, { "pixmapfile" : "mexico/sonora.png", "toolTipText" : "Sonora", "x" : "0.167", "y" : "0.194" }, { "pixmapfile" : "mexico/sinaloa.png", "toolTipText" : "Sinaloa", "x" : "0.288", "y" : "0.461" }, { "pixmapfile" : "mexico/san_luis_potosi.png", "toolTipText" : "San Luis Potosi", "x" : "0.528", "y" : "0.57" }, { "pixmapfile" : "mexico/quintana_roo.png", "toolTipText" : "Quintana Roo", "x" : "0.955", "y" : "0.712" }, { "pixmapfile" : "mexico/queretaro.png", "toolTipText" : "Queretaro", "x" : "0.547", "y" : "0.677" }, { "pixmapfile" : "mexico/puebla.png", "toolTipText" : "Puebla", "x" : "0.615", "y" : "0.756" }, { "pixmapfile" : "mexico/oaxaca.png", "toolTipText" : "Oaxaca", "x" : "0.677", "y" : "0.871" }, { "pixmapfile" : "mexico/nuevo_leon.png", "toolTipText" : "Nuevo Leon", "x" : "0.545", "y" : "0.431" }, { "pixmapfile" : "mexico/nayarit.png", "toolTipText" : "Nayarit", "x" : "0.369", "y" : "0.617" }, { "pixmapfile" : "mexico/morelos.png", "toolTipText" : "Morelos", "x" : "0.573", "y" : "0.792" }, { "pixmapfile" : "mexico/michoacan.png", "toolTipText" : "Michoacan", "x" : "0.472", "y" : "0.768" }, { "pixmapfile" : "mexico/jalisco.png", "toolTipText" : "Jalisco", "x" : "0.413", "y" : "0.674" }, { "pixmapfile" : "mexico/hidalgo.png", "toolTipText" : "Hidalgo", "x" : "0.58", "y" : "0.693" }, { "pixmapfile" : "mexico/guerrero.png", "toolTipText" : "Guerrero", "x" : "0.538", "y" : "0.854" }, { "pixmapfile" : "mexico/guanajuato.png", "toolTipText" : "Guanajuato", "x" : "0.507", "y" : "0.675" }, { "pixmapfile" : "mexico/estado_de_mexico.png", "toolTipText" : "Estado de Mexico", "x" : "0.558", "y" : "0.758" }, { "pixmapfile" : "mexico/durango.png", "toolTipText" : "Durango", "x" : "0.377", "y" : "0.471" }, { "pixmapfile" : "mexico/distrito_federal.png", "toolTipText" : "Distrito Federal", "x" : "0.572", "y" : "0.763" }, { "pixmapfile" : "mexico/coahuila.png", "toolTipText" : "Coahuila", "x" : "0.477", "y" : "0.34" }, { "pixmapfile" : "mexico/chiapas.png", "toolTipText" : "Chiapas", "x" : "0.822", "y" : "0.91" }, { "pixmapfile" : "mexico/chihuahua.png", "toolTipText" : "Chihuahua", "x" : "0.338", "y" : "0.247" }, { "pixmapfile" : "mexico/campeche.png", "toolTipText" : "Campeche", "x" : "0.862", "y" : "0.749" }, { "pixmapfile" : "mexico/baja_california_norte.png", "toolTipText" : "Baja California Norte", "x" : "0.06", "y" : "0.133" }, { "pixmapfile" : "mexico/baja_california_sur.png", "toolTipText" : "Baja California Sur", "x" : "0.129", "y" : "0.403" }, { "pixmapfile" : "mexico/colima.png", "toolTipText" : "Colima", "x" : "0.394", "y" : "0.771" }, { "pixmapfile" : "mexico/aguascalientes.png", "toolTipText" : "Aguascalientes", "x" : "0.455", "y" : "0.614" } ] } diff --git a/src/activities/geography/resource/board/board10_0.qml b/src/activities/geography/resource/board/board10_0.qml index ae1611548..fd567157f 100644 --- a/src/activities/geography/resource/board/board10_0.qml +++ b/src/activities/geography/resource/board/board10_0.qml @@ -1,186 +1,186 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Oceania") - property variant levels: [ + property var levels: [ { "pixmapfile": "oceania/bg_oceania.png", "type": "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile": "oceania/pitcairn_islands.png", "soundFile": "voices-$CA/$LOCALE/geography/pitcairn_islands.$CA", "toolTipText": qsTr("Pitcairn Islands"), "x": "0.967", "y": "0.722" }, { "pixmapfile": "oceania/french_polynesia.png", "soundFile": "voices-$CA/$LOCALE/geography/french_polynesia.$CA", "toolTipText": qsTr("French Polynesia"), "x": "0.875", "y": "0.622" }, { "pixmapfile": "oceania/papua_new_guinea.png", "soundFile": "voices-$CA/$LOCALE/geography/papua_new_guinea.$CA", "toolTipText": qsTr("Papua New Guinea"), "x": "0.314", "y": "0.476" }, { "pixmapfile": "oceania/east_timor.png", "soundFile": "voices-$CA/$LOCALE/geography/east_timor.$CA", "toolTipText": qsTr("East Timor"), "x": "0.131", "y": "0.516" }, { "pixmapfile": "oceania/indonesia.png", "soundFile": "voices-$CA/$LOCALE/geography/indonesia.$CA", "toolTipText": qsTr("Indonesia"), "x": "0.128", "y": "0.456" }, { "pixmapfile": "oceania/palau.png", "soundFile": "voices-$CA/$LOCALE/geography/palau.$CA", "toolTipText": qsTr("Palau"), "x": "0.179", "y": "0.35" }, { "pixmapfile": "oceania/northern_mariana_islands.png", "soundFile": "voices-$CA/$LOCALE/geography/northern_mariana_islands.$CA", "toolTipText": qsTr("Northern Mariana Islands"), "x": "0.288", "y": "0.222" }, { "pixmapfile": "oceania/micronesia.png", "soundFile": "voices-$CA/$LOCALE/geography/micronesia.$CA", "toolTipText": qsTr("Micronesia"), "x": "0.334", "y": "0.324" }, { "pixmapfile": "oceania/vanuatu.png", "soundFile": "voices-$CA/$LOCALE/geography/vanuatu.$CA", "toolTipText": qsTr("Vanuatu"), "x": "0.487", "y": "0.582" }, { "pixmapfile": "oceania/tuvalu.png", "soundFile": "voices-$CA/$LOCALE/geography/tuvalu.$CA", "toolTipText": qsTr("Tuvalu"), "x": "0.572", "y": "0.484" }, { "pixmapfile": "oceania/tonga.png", "soundFile": "voices-$CA/$LOCALE/geography/tonga.$CA", "toolTipText": qsTr("Tonga"), "x": "0.626", "y": "0.608" }, { "pixmapfile": "oceania/new_caledonia.png", "soundFile": "voices-$CA/$LOCALE/geography/new_caledonia.$CA", "toolTipText": qsTr("New Caledonia"), "x": "0.451", "y": "0.628" }, { "pixmapfile": "oceania/marshall_islands.png", "soundFile": "voices-$CA/$LOCALE/geography/marshall_islands.$CA", "toolTipText": qsTr("Marshall Islands"), "x": "0.49", "y": "0.344" }, { "pixmapfile": "oceania/kiribati.png", "soundFile": "voices-$CA/$LOCALE/geography/kiribati.$CA", "toolTipText": qsTr("Kiribati"), "x": "0.676", "y": "0.448" }, { "pixmapfile": "oceania/fiji.png", "soundFile": "voices-$CA/$LOCALE/geography/fiji.$CA", "toolTipText": qsTr("Fiji"), "x": "0.569", "y": "0.586" }, { "pixmapfile": "oceania/solomon_islands.png", "soundFile": "voices-$CA/$LOCALE/geography/solomon_islands.$CA", "toolTipText": qsTr("Solomon Islands"), "x": "0.438", "y": "0.506" }, { "pixmapfile": "oceania/new_zealand.png", "soundFile": "voices-$CA/$LOCALE/geography/new_zealand.$CA", "toolTipText": qsTr("New Zealand"), "x": "0.572", "y": "0.726" }, { "pixmapfile": "oceania/cook_islands.png", "soundFile": "voices-$CA/$LOCALE/geography/cook_islands.$CA", "toolTipText": qsTr("Cook Islands"), "x": "0.745", "y": "0.582" }, { "pixmapfile": "oceania/american_samoa.png", "soundFile": "voices-$CA/$LOCALE/geography/american_samoa.$CA", "toolTipText": qsTr("American Samoa"), "x": "0.662", "y": "0.544" }, { "pixmapfile": "oceania/australia.png", "soundFile": "voices-$CA/$LOCALE/geography/australia.$CA", "toolTipText": qsTr("Australia"), "x": "0.273", "y": "0.748" }, { "pixmapfile": "oceania/us_minor.png", "soundFile": "voices-$CA/$LOCALE/geography/us_minor.$CA", "toolTipText": qsTr("United States Minor Outlying Islands"), "x": "0.617", "y": "0.258" }, { "pixmapfile": "oceania/hawaii.png", "soundFile": "voices-$CA/$LOCALE/geography/hawaii.$CA", "toolTipText": qsTr("Hawaii"), "x": "0.722", "y": "0.164" } ] } diff --git a/src/activities/geography/resource/board/board1_0.qml b/src/activities/geography/resource/board/board1_0.qml index 7e513e612..9f2585d71 100644 --- a/src/activities/geography/resource/board/board1_0.qml +++ b/src/activities/geography/resource/board/board1_0.qml @@ -1,74 +1,74 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Continents") - property variant levels: [ + property var levels: [ { "pixmapfile": "continents/back.png", "type": "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile": "continents/oceania.png", "soundFile": "voices-$CA/$LOCALE/geography/oceania.$CA", "toolTipText": qsTr("Oceania"), "x": "0.892", "y": "0.822" }, { "pixmapfile": "continents/europa.png", "soundFile": "voices-$CA/$LOCALE/geography/europe.$CA", "toolTipText": qsTr("Europe"), "x": "0.507", "y": "0.257" }, { "pixmapfile": "continents/asia.png", "soundFile": "voices-$CA/$LOCALE/geography/asia.$CA", "toolTipText": qsTr("Asia"), "x": "0.747", "y": "0.386" }, { "pixmapfile": "continents/antarctica.png", "soundFile": "voices-$CA/$LOCALE/geography/antarctica.$CA", "toolTipText": qsTr("Antarctica"), "x": "0.42", "y": "0.979" }, { "pixmapfile": "continents/america.png", "soundFile": "voices-$CA/$LOCALE/geography/america.$CA", "toolTipText": qsTr("America"), "x": "0.22", "y": "0.479" }, { "pixmapfile": "continents/africa.png", "soundFile": "voices-$CA/$LOCALE/geography/africa.$CA", "toolTipText": qsTr("Africa"), "x": "0.512", "y": "0.636" } ] } diff --git a/src/activities/geography/resource/board/board2_0.qml b/src/activities/geography/resource/board/board2_0.qml index 741c7339b..d86e9d1f3 100644 --- a/src/activities/geography/resource/board/board2_0.qml +++ b/src/activities/geography/resource/board/board2_0.qml @@ -1,74 +1,74 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("North America") - property variant levels: [ + property var levels: [ { "pixmapfile": "northamerica/north_america.png", "type": "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile": "northamerica/alaska.png", "soundFile": "voices-$CA/$LOCALE/geography/alaska.$CA", "toolTipText": qsTr("Alaska"), "x": "0.126", "y": "0.177" }, { "pixmapfile": "northamerica/usa.png", "soundFile": "voices-$CA/$LOCALE/geography/usa.$CA", "toolTipText": qsTr("United States of America"), "x": "0.358", "y": "0.704" }, { "pixmapfile": "northamerica/mexico.png", "soundFile": "voices-$CA/$LOCALE/geography/mexico.$CA", "toolTipText": qsTr("Mexico"), "x": "0.264", "y": "0.835" }, { "pixmapfile": "northamerica/iceland.png", "soundFile": "voices-$CA/$LOCALE/geography/iceland.$CA", "toolTipText": qsTr("Iceland"), "x": "0.643", "y": "0.092" }, { "pixmapfile": "northamerica/greenland.png", "soundFile": "voices-$CA/$LOCALE/geography/greenland.$CA", "toolTipText": qsTr("Greenland"), "x": "0.524", "y": "0.152" }, { "pixmapfile": "northamerica/canada.png", "soundFile": "voices-$CA/$LOCALE/geography/canada.$CA", "toolTipText": qsTr("Canada"), "x": "0.394", "y": "0.35" } ] } diff --git a/src/activities/geography/resource/board/board3_0.qml b/src/activities/geography/resource/board/board3_0.qml index f0def9e66..ce62cd24e 100644 --- a/src/activities/geography/resource/board/board3_0.qml +++ b/src/activities/geography/resource/board/board3_0.qml @@ -1,131 +1,131 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property int numberOfSubLevel: 1 property string instruction: qsTr("Central America") - property variant levels: [ + property var levels: [ { "pixmapfile": "centralamerica/bg_central_america.png", "type": "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile": "centralamerica/puerto_rico.png", "soundFile": "voices-$CA/$LOCALE/geography/puerto_rico.$CA", "toolTipText": qsTr("Puerto Rico"), "x": "0.828", "y": "0.498" }, { "pixmapfile": "centralamerica/panama.png", "soundFile": "voices-$CA/$LOCALE/geography/panama.$CA", "toolTipText": qsTr("Panama"), "x": "0.453", "y": "0.929" }, { "pixmapfile": "centralamerica/nicaragua.png", "soundFile": "voices-$CA/$LOCALE/geography/nicaragua.$CA", "toolTipText": qsTr("Nicaragua"), "x": "0.33", "y": "0.736" }, { "pixmapfile": "centralamerica/mexico.png", "soundFile": "voices-$CA/$LOCALE/geography/mexico.$CA", "toolTipText": qsTr("Mexico"), "x": "0.161", "y": "0.329" }, { "pixmapfile": "centralamerica/jamaica.png", "soundFile": "voices-$CA/$LOCALE/geography/jamaica.$CA", "toolTipText": qsTr("Jamaica"), "x": "0.552", "y": "0.502" }, { "pixmapfile": "centralamerica/honduras.png", "soundFile": "voices-$CA/$LOCALE/geography/honduras.$CA", "toolTipText": qsTr("Honduras"), "x": "0.31", "y": "0.665" }, { "pixmapfile": "centralamerica/haiti.png", "soundFile": "voices-$CA/$LOCALE/geography/haiti.$CA", "toolTipText": qsTr("Haiti"), "x": "0.662", "y": "0.461" }, { "pixmapfile": "centralamerica/guatemala.png", "soundFile": "voices-$CA/$LOCALE/geography/guatemala.$CA", "toolTipText": qsTr("Guatemala"), "x": "0.211", "y": "0.604" }, { "pixmapfile": "centralamerica/el_salvador.png", "soundFile": "voices-$CA/$LOCALE/geography/salvador.$CA", "toolTipText": qsTr("El Salvador"), "x": "0.242", "y": "0.695" }, { "pixmapfile": "centralamerica/dominican_republic.png", "soundFile": "voices-$CA/$LOCALE/geography/dominican_republic.$CA", "toolTipText": qsTr("Dominican Republic"), "x": "0.733", "y": "0.474" }, { "pixmapfile": "centralamerica/cuba.png", "soundFile": "voices-$CA/$LOCALE/geography/cuba.$CA", "toolTipText": qsTr("Cuba"), "x": "0.507", "y": "0.353" }, { "pixmapfile": "centralamerica/costa_rica.png", "soundFile": "voices-$CA/$LOCALE/geography/costa_rica.$CA", "toolTipText": qsTr("Costa Rica"), "x": "0.353", "y": "0.872" }, { "pixmapfile": "centralamerica/belize.png", "soundFile": "voices-$CA/$LOCALE/geography/belize.$CA", "toolTipText": qsTr("Belize"), "x": "0.26", "y": "0.543" }, { "pixmapfile": "centralamerica/bahamas.png", "soundFile": "voices-$CA/$LOCALE/geography/bahamas.$CA", "toolTipText": qsTr("Bahamas"), "x": "0.629", "y": "0.245" } ] } diff --git a/src/activities/geography/resource/board/board3_1.qml b/src/activities/geography/resource/board/board3_1.qml index 1275c0b14..224d7cd89 100644 --- a/src/activities/geography/resource/board/board3_1.qml +++ b/src/activities/geography/resource/board/board3_1.qml @@ -1,130 +1,130 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Central America") - property variant levels: [ + property var levels: [ { "pixmapfile": "centralamerica/bg_central_america_blank.png", "type": "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile": "centralamerica/puerto_rico.png", "soundFile": "voices-$CA/$LOCALE/geography/puerto_rico.$CA", "toolTipText": qsTr("Puerto Rico"), "x": "0.828", "y": "0.498" }, { "pixmapfile": "centralamerica/panama.png", "soundFile": "voices-$CA/$LOCALE/geography/panama.$CA", "toolTipText": qsTr("Panama"), "x": "0.453", "y": "0.929" }, { "pixmapfile": "centralamerica/nicaragua.png", "soundFile": "voices-$CA/$LOCALE/geography/nicaragua.$CA", "toolTipText": qsTr("Nicaragua"), "x": "0.33", "y": "0.736" }, { "pixmapfile": "centralamerica/mexico.png", "soundFile": "voices-$CA/$LOCALE/geography/mexico.$CA", "toolTipText": qsTr("Mexico"), "x": "0.161", "y": "0.329" }, { "pixmapfile": "centralamerica/jamaica.png", "soundFile": "voices-$CA/$LOCALE/geography/jamaica.$CA", "toolTipText": qsTr("Jamaica"), "x": "0.552", "y": "0.502" }, { "pixmapfile": "centralamerica/honduras.png", "soundFile": "voices-$CA/$LOCALE/geography/honduras.$CA", "toolTipText": qsTr("Honduras"), "x": "0.31", "y": "0.665" }, { "pixmapfile": "centralamerica/haiti.png", "soundFile": "voices-$CA/$LOCALE/geography/haiti.$CA", "toolTipText": qsTr("Haiti"), "x": "0.662", "y": "0.461" }, { "pixmapfile": "centralamerica/guatemala.png", "soundFile": "voices-$CA/$LOCALE/geography/guatemala.$CA", "toolTipText": qsTr("Guatemala"), "x": "0.211", "y": "0.604" }, { "pixmapfile": "centralamerica/el_salvador.png", "soundFile": "voices-$CA/$LOCALE/geography/salvador.$CA", "toolTipText": qsTr("El Salvador"), "x": "0.242", "y": "0.695" }, { "pixmapfile": "centralamerica/dominican_republic.png", "soundFile": "voices-$CA/$LOCALE/geography/dominican_republic.$CA", "toolTipText": qsTr("Dominican Republic"), "x": "0.733", "y": "0.474" }, { "pixmapfile": "centralamerica/cuba.png", "soundFile": "voices-$CA/$LOCALE/geography/cuba.$CA", "toolTipText": qsTr("Cuba"), "x": "0.507", "y": "0.353" }, { "pixmapfile": "centralamerica/costa_rica.png", "soundFile": "voices-$CA/$LOCALE/geography/costa_rica.$CA", "toolTipText": qsTr("Costa Rica"), "x": "0.353", "y": "0.872" }, { "pixmapfile": "centralamerica/belize.png", "soundFile": "voices-$CA/$LOCALE/geography/belize.$CA", "toolTipText": qsTr("Belize"), "x": "0.26", "y": "0.543" }, { "pixmapfile": "centralamerica/bahamas.png", "soundFile": "voices-$CA/$LOCALE/geography/bahamas.$CA", "toolTipText": qsTr("Bahamas"), "x": "0.629", "y": "0.245" } ] } diff --git a/src/activities/geography/resource/board/board4_0.qml b/src/activities/geography/resource/board/board4_0.qml index b793d69b5..bafc0dba5 100644 --- a/src/activities/geography/resource/board/board4_0.qml +++ b/src/activities/geography/resource/board/board4_0.qml @@ -1,130 +1,130 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("South America") - property variant levels: [ + property var levels: [ { "pixmapfile": "southamerica/south_america.png", "type": "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile": "southamerica/venezuela.png", "soundFile": "voices-$CA/$LOCALE/geography/venezuela.$CA", "toolTipText": qsTr("Venezuela"), "x": "0.411", "y": "0.127" }, { "pixmapfile": "southamerica/uruguay.png", "soundFile": "voices-$CA/$LOCALE/geography/uruguay.$CA", "toolTipText": qsTr("Uruguay"), "x": "0.545", "y": "0.64" }, { "pixmapfile": "southamerica/suriname.png", "soundFile": "voices-$CA/$LOCALE/geography/suriname.$CA", "toolTipText": qsTr("Suriname"), "x": "0.52", "y": "0.148" }, { "pixmapfile": "southamerica/peru.png", "soundFile": "voices-$CA/$LOCALE/geography/peru.$CA", "toolTipText": qsTr("Peru"), "x": "0.338", "y": "0.342" }, { "pixmapfile": "southamerica/paraguay.png", "soundFile": "voices-$CA/$LOCALE/geography/paraguay.$CA", "toolTipText": qsTr("Paraguay"), "x": "0.511", "y": "0.519" }, { "pixmapfile": "southamerica/panama.png", "soundFile": "voices-$CA/$LOCALE/geography/panama.$CA", "toolTipText": qsTr("Panama"), "x": "0.279", "y": "0.104" }, { "pixmapfile": "southamerica/guyana.png", "soundFile": "voices-$CA/$LOCALE/geography/guyana.$CA", "toolTipText": qsTr("Guyana"), "x": "0.49", "y": "0.138" }, { "pixmapfile": "southamerica/french_guiana.png", "soundFile": "voices-$CA/$LOCALE/geography/french_guiana.$CA", "toolTipText": qsTr("French Guiana"), "x": "0.548", "y": "0.148" }, { "pixmapfile": "southamerica/ecuador.png", "soundFile": "voices-$CA/$LOCALE/geography/ecuador.$CA", "toolTipText": qsTr("Ecuador"), "x": "0.301", "y": "0.246" }, { "pixmapfile": "southamerica/colombia.png", "soundFile": "voices-$CA/$LOCALE/geography/colombia.$CA", "toolTipText": qsTr("Colombia"), "x": "0.351", "y": "0.156" }, { "pixmapfile": "southamerica/chile.png", "soundFile": "voices-$CA/$LOCALE/geography/chile.$CA", "toolTipText": qsTr("Chile"), "x": "0.437", "y": "0.71" }, { "pixmapfile": "southamerica/brazil.png", "soundFile": "voices-$CA/$LOCALE/geography/brazil.$CA", "toolTipText": qsTr("Brazil"), "x": "0.546", "y": "0.39" }, { "pixmapfile": "southamerica/bolivia.png", "soundFile": "voices-$CA/$LOCALE/geography/bolivia.$CA", "toolTipText": qsTr("Bolivia"), "x": "0.458", "y": "0.431" }, { "pixmapfile": "southamerica/argentina.png", "soundFile": "voices-$CA/$LOCALE/geography/argentina.$CA", "toolTipText": qsTr("Argentina"), "x": "0.486", "y": "0.731" } ] } diff --git a/src/activities/geography/resource/board/board5_0.qml b/src/activities/geography/resource/board/board5_0.qml index fc3cdfdba..c64614f06 100644 --- a/src/activities/geography/resource/board/board5_0.qml +++ b/src/activities/geography/resource/board/board5_0.qml @@ -1,151 +1,151 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Western Europe") - property variant levels: [ + property var levels: [ { "pixmapfile": "europe/europe.png", "type": "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile": "europe/united_kingdom.png", "soundFile": "voices-$CA/$LOCALE/geography/united_kingdom.$CA", "toolTipText": qsTr("United Kingdom"), "x": "0.215", "y": "0.439" }, { "pixmapfile": "europe/switz.png", "soundFile": "voices-$CA/$LOCALE/geography/switz.$CA", "toolTipText": qsTr("Switzerland"), "x": "0.409", "y": "0.644" }, { "pixmapfile": "europe/sweden.png", "soundFile": "voices-$CA/$LOCALE/geography/sweden.$CA", "toolTipText": qsTr("Sweden"), "x": "0.523", "y": "0.247" }, { "pixmapfile": "europe/spain.png", "soundFile": "voices-$CA/$LOCALE/geography/spain.$CA", "toolTipText": qsTr("Spain"), "x": "0.23", "y": "0.835" }, { "pixmapfile": "europe/portugal.png", "soundFile": "voices-$CA/$LOCALE/geography/portugal.$CA", "toolTipText": qsTr("Portugal"), "x": "0.134", "y": "0.844" }, { "pixmapfile": "europe/norway.png", "soundFile": "voices-$CA/$LOCALE/geography/norway.$CA", "toolTipText": qsTr("Norway"), "x": "0.516", "y": "0.188" }, { "pixmapfile": "europe/netherland.png", "soundFile": "voices-$CA/$LOCALE/geography/netherland.$CA", "toolTipText": qsTr("The Netherlands"), "x": "0.353", "y": "0.502" }, { "pixmapfile": "europe/luxembourg.png", "soundFile": "voices-$CA/$LOCALE/geography/luxembourg.$CA", "type": "SHAPE_BACKGROUND", "x": "0.369", "y": "0.568" }, { "pixmapfile": "europe/italy.png", "soundFile": "voices-$CA/$LOCALE/geography/italy.$CA", "toolTipText": qsTr("Italy"), "x": "0.485", "y": "0.78" }, { "pixmapfile": "europe/ireland.png", "soundFile": "voices-$CA/$LOCALE/geography/ireland.$CA", "toolTipText": qsTr("Ireland"), "x": "0.14", "y": "0.48" }, { "pixmapfile": "europe/iceland.png", "soundFile": "voices-$CA/$LOCALE/geography/iceland.$CA", "toolTipText": qsTr("Iceland"), "x": "0.078", "y": "0.133" }, { "pixmapfile": "europe/germany.png", "soundFile": "voices-$CA/$LOCALE/geography/germany.$CA", "toolTipText": qsTr("Germany"), "x": "0.439", "y": "0.53" }, { "pixmapfile": "europe/france.png", "soundFile": "voices-$CA/$LOCALE/geography/france.$CA", "toolTipText": qsTr("France"), "x": "0.312", "y": "0.662" }, { "pixmapfile": "europe/finland.png", "soundFile": "voices-$CA/$LOCALE/geography/finland.$CA", "toolTipText": qsTr("Finland"), "x": "0.642", "y": "0.17" }, { "pixmapfile": "europe/denmark.png", "soundFile": "voices-$CA/$LOCALE/geography/denmark.$CA", "toolTipText": qsTr("Denmark"), "x": "0.43", "y": "0.398" }, { "pixmapfile": "europe/belgium.png", "soundFile": "voices-$CA/$LOCALE/geography/belgium.$CA", "toolTipText": qsTr("Belgium"), "x": "0.343", "y": "0.546" }, { "pixmapfile": "europe/austria.png", "soundFile": "voices-$CA/$LOCALE/geography/austria.$CA", "toolTipText": qsTr("Austria"), "x": "0.49", "y": "0.621" } ] } diff --git a/src/activities/geography/resource/board/board6_0.qml b/src/activities/geography/resource/board/board6_0.qml index 78d5fc0d1..d83506cd5 100644 --- a/src/activities/geography/resource/board/board6_0.qml +++ b/src/activities/geography/resource/board/board6_0.qml @@ -1,196 +1,196 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Eastern Europe") - property variant levels: [ + property var levels: [ { "pixmapfile": "europe/europe.png", "type": "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile": "europe/cyprus.png", "soundFile": "voices-$CA/$LOCALE/geography/cyprus.$CA", "type": "SHAPE_BACKGROUND", "x": "0.859", "y": "0.965" }, { "pixmapfile": "europe/greece.png", "soundFile": "voices-$CA/$LOCALE/geography/greece.$CA", "toolTipText": qsTr("Greece"), "x": "0.692", "y": "0.878" }, { "pixmapfile": "europe/ukraine.png", "soundFile": "voices-$CA/$LOCALE/geography/ukraine.$CA", "toolTipText": qsTr("Ukraine"), "x": "0.781", "y": "0.603" }, { "pixmapfile": "europe/turkey.png", "soundFile": "voices-$CA/$LOCALE/geography/turkey.$CA", "toolTipText": qsTr("Turkey"), "x": "0.851", "y": "0.867" }, { "pixmapfile": "europe/slovenia.png", "soundFile": "voices-$CA/$LOCALE/geography/slovenia.$CA", "type": "SHAPE_BACKGROUND", "toolTipText": qsTr("Slovenia"), "x": "0.516", "y": "0.662" }, { "pixmapfile": "europe/slovakia.png", "soundFile": "voices-$CA/$LOCALE/geography/slovakia.$CA", "toolTipText": qsTr("Slovak Republic"), "x": "0.593", "y": "0.596" }, { "pixmapfile": "europe/montenegro.png", "soundFile": "voices-$CA/$LOCALE/geography/montenegro.$CA", "toolTipText": qsTr("Montenegro"), "type": "SHAPE_BACKGROUND", "x": "0.601", "y": "0.755" }, { "pixmapfile": "europe/serbia.png", "soundFile": "voices-$CA/$LOCALE/geography/serbia.$CA", "toolTipText": qsTr("Serbia"), "x": "0.623", "y": "0.723" }, { "pixmapfile": "europe/russia.png", "soundFile": "voices-$CA/$LOCALE/geography/russia.$CA", "toolTipText": qsTr("Russia"), "x": "0.788", "y": "0.373" }, { "pixmapfile": "europe/romania.png", "soundFile": "voices-$CA/$LOCALE/geography/romania.$CA", "toolTipText": qsTr("Romania"), "x": "0.688", "y": "0.669" }, { "pixmapfile": "europe/poland.png", "soundFile": "voices-$CA/$LOCALE/geography/poland.$CA", "toolTipText": qsTr("Poland"), "x": "0.574", "y": "0.507" }, { "pixmapfile": "europe/moldova.png", "soundFile": "voices-$CA/$LOCALE/geography/moldova.$CA", "toolTipText": qsTr("Moldova"), "x": "0.74", "y": "0.641" }, { "pixmapfile": "europe/macedonia.png", "soundFile": "voices-$CA/$LOCALE/geography/macedonia.$CA", "toolTipText": qsTr("Macedonia"), "type": "SHAPE_BACKGROUND", "x": "0.642", "y": "0.787" }, { "pixmapfile": "europe/lithuania.png", "soundFile": "voices-$CA/$LOCALE/geography/lithuania.$CA", "toolTipText": qsTr("Lithuania"), "x": "0.642", "y": "0.425" }, { "pixmapfile": "europe/latvia.png", "soundFile": "voices-$CA/$LOCALE/geography/latvia.$CA", "toolTipText": qsTr("Latvia"), "x": "0.651", "y": "0.381" }, { "pixmapfile": "europe/hungary.png", "soundFile": "voices-$CA/$LOCALE/geography/hungary.$CA", "toolTipText": qsTr("Hungary"), "x": "0.591", "y": "0.635" }, { "pixmapfile": "europe/estonia.png", "soundFile": "voices-$CA/$LOCALE/geography/estonia.$CA", "toolTipText": qsTr("Estonia"), "x": "0.647", "y": "0.334" }, { "pixmapfile": "europe/czechia.png", "soundFile": "voices-$CA/$LOCALE/geography/czechia.$CA", "toolTipText": qsTr("Czechia"), "x": "0.525", "y": "0.561" }, { "pixmapfile": "europe/croatia.png", "soundFile": "voices-$CA/$LOCALE/geography/croatia.$CA", "toolTipText": qsTr("Croatia"), "x": "0.546", "y": "0.705" }, { "pixmapfile": "europe/bulgaria.png", "soundFile": "voices-$CA/$LOCALE/geography/bulgaria.$CA", "toolTipText": qsTr("Bulgaria"), "x": "0.701", "y": "0.757" }, { "pixmapfile": "europe/bosnia_herzegovina.png", "soundFile": "voices-$CA/$LOCALE/geography/bosnia_herzegovina.$CA", "toolTipText": qsTr("Bosnia Herzegovina"), "x": "0.568", "y": "0.728" }, { "pixmapfile": "europe/belarus.png", "soundFile": "voices-$CA/$LOCALE/geography/belarus.$CA", "toolTipText": qsTr("Belarus"), "x": "0.714", "y": "0.463" }, { "pixmapfile": "europe/albania.png", "soundFile": "voices-$CA/$LOCALE/geography/albania.$CA", "toolTipText": qsTr("Albania"), "x": "0.616", "y": "0.805" } ] } diff --git a/src/activities/geography/resource/board/board7_0.qml b/src/activities/geography/resource/board/board7_0.qml index 739165678..65b0f7fe4 100644 --- a/src/activities/geography/resource/board/board7_0.qml +++ b/src/activities/geography/resource/board/board7_0.qml @@ -1,263 +1,263 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Northern Africa") - property variant levels: [ + property var levels: [ { "pixmapfile": "africa/north_africa.png", "type": "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile": "africa/western_sahara.png", "soundFile": "voices-$CA/$LOCALE/geography/western_sahara.$CA", "toolTipText": qsTr("Western Sahara"), "x": "0.114", "y": "0.307" }, { "pixmapfile": "africa/uganda.png", "soundFile": "voices-$CA/$LOCALE/geography/uganda.$CA", "toolTipText": qsTr("Uganda"), "x": "0.737", "y": "0.878" }, { "pixmapfile": "africa/tunisia.png", "soundFile": "voices-$CA/$LOCALE/geography/tunisia.$CA", "toolTipText": qsTr("Tunisia"), "x": "0.425", "y": "0.139" }, { "pixmapfile": "africa/togo.png", "soundFile": "voices-$CA/$LOCALE/geography/togo.$CA", "toolTipText": qsTr("Togo"), "x": "0.27", "y": "0.689" }, { "pixmapfile": "africa/sudan.png", "soundFile": "voices-$CA/$LOCALE/geography/sudan.$CA", "toolTipText": qsTr("Sudan"), "x": "0.694", "y": "0.599" }, { "pixmapfile": "africa/somalia.png", "soundFile": "voices-$CA/$LOCALE/geography/somalia.$CA", "toolTipText": qsTr("Somalia"), "x": "0.926", "y": "0.792" }, { "pixmapfile": "africa/sierra_leone.png", "soundFile": "voices-$CA/$LOCALE/geography/sierra_leone.$CA", "toolTipText": qsTr("Sierra Leone"), "x": "0.093", "y": "0.672" }, { "pixmapfile": "africa/senegal.png", "soundFile": "voices-$CA/$LOCALE/geography/senegal.$CA", "toolTipText": qsTr("Senegal"), "x": "0.055", "y": "0.536" }, { "pixmapfile": "africa/rwanda.png", "soundFile": "voices-$CA/$LOCALE/geography/rwanda.$CA", "toolTipText": qsTr("Rwanda"), "x": "0.706", "y": "0.959" }, { "pixmapfile": "africa/niger.png", "soundFile": "voices-$CA/$LOCALE/geography/niger.$CA", "toolTipText": qsTr("Niger"), "x": "0.384", "y": "0.491" }, { "pixmapfile": "africa/nigeria.png", "soundFile": "voices-$CA/$LOCALE/geography/nigeria.$CA", "toolTipText": qsTr("Nigeria"), "x": "0.388", "y": "0.68" }, { "pixmapfile": "africa/moroco.png", "soundFile": "voices-$CA/$LOCALE/geography/moroco.$CA", "toolTipText": qsTr("Morocco"), "x": "0.205", "y": "0.159" }, { "pixmapfile": "africa/mauritania.png", "soundFile": "voices-$CA/$LOCALE/geography/mauritania.$CA", "toolTipText": qsTr("Mauritania"), "x": "0.133", "y": "0.395" }, { "pixmapfile": "africa/mali.png", "soundFile": "voices-$CA/$LOCALE/geography/mali.$CA", "toolTipText": qsTr("Mali"), "x": "0.215", "y": "0.479" }, { "pixmapfile": "africa/libya.png", "soundFile": "voices-$CA/$LOCALE/geography/libya.$CA", "toolTipText": qsTr("Libya"), "x": "0.517", "y": "0.313" }, { "pixmapfile": "africa/liberia.png", "soundFile": "voices-$CA/$LOCALE/geography/liberia.$CA", "toolTipText": qsTr("Liberia"), "x": "0.12", "y": "0.727" }, { "pixmapfile": "africa/ivory_coast.png", "soundFile": "voices-$CA/$LOCALE/geography/ivory_coast.$CA", "toolTipText": qsTr("Ivory Coast"), "x": "0.177", "y": "0.706" }, { "pixmapfile": "africa/guinea.png", "soundFile": "voices-$CA/$LOCALE/geography/guinea.$CA", "toolTipText": qsTr("Guinea"), "x": "0.099", "y": "0.639" }, { "pixmapfile": "africa/guinea_bissau.png", "soundFile": "voices-$CA/$LOCALE/geography/guinea_bissau.$CA", "toolTipText": qsTr("Guinea Bissau"), "x": "0.05", "y": "0.599" }, { "pixmapfile": "africa/ghana.png", "soundFile": "voices-$CA/$LOCALE/geography/ghana.$CA", "toolTipText": qsTr("Ghana"), "x": "0.24", "y": "0.704" }, { "pixmapfile": "africa/gambia.png", "soundFile": "voices-$CA/$LOCALE/geography/gambia.$CA", "toolTipText": qsTr("Gambia"), "x": "0.048", "y": "0.564" }, { "pixmapfile": "africa/gabon.png", "soundFile": "voices-$CA/$LOCALE/geography/gabon.$CA", "toolTipText": qsTr("Gabon"), "x": "0.455", "y": "0.933" }, { "pixmapfile": "africa/eritrea.png", "soundFile": "voices-$CA/$LOCALE/geography/eritrea.$CA", "toolTipText": qsTr("Eritrea"), "x": "0.833", "y": "0.571" }, { "pixmapfile": "africa/ethiopia.png", "soundFile": "voices-$CA/$LOCALE/geography/ethiopia.$CA", "toolTipText": qsTr("Ethiopia"), "x": "0.843", "y": "0.706" }, { "pixmapfile": "africa/equatorial_guinea.png", "soundFile": "voices-$CA/$LOCALE/geography/equatorial_guinea.$CA", "toolTipText": qsTr("Equatorial Guinea"), "x": "0.433", "y": "0.878" }, { "pixmapfile": "africa/egypt.png", "soundFile": "voices-$CA/$LOCALE/geography/egypt.$CA", "toolTipText": qsTr("Egypt"), "x": "0.697", "y": "0.294" }, { "pixmapfile": "africa/djibouti.png", "soundFile": "voices-$CA/$LOCALE/geography/djibouti.$CA", "toolTipText": qsTr("Djibouti"), "x": "0.874", "y": "0.637" }, { "pixmapfile": "africa/chad.png", "soundFile": "voices-$CA/$LOCALE/geography/chad.$CA", "toolTipText": qsTr("Chad"), "x": "0.537", "y": "0.545" }, { "pixmapfile": "africa/central_african_republic.png", "soundFile": "voices-$CA/$LOCALE/geography/central_african_republic.$CA", "toolTipText": qsTr("Central African Republic"), "x": "0.564", "y": "0.736" }, { "pixmapfile": "africa/cameroon.png", "soundFile": "voices-$CA/$LOCALE/geography/cameroon.$CA", "toolTipText": qsTr("Cameroon"), "x": "0.448", "y": "0.751" }, { "pixmapfile": "africa/burkina_faso.png", "soundFile": "voices-$CA/$LOCALE/geography/burkina_faso.$CA", "toolTipText": qsTr("Burkina Faso"), "x": "0.239", "y": "0.607" }, { "pixmapfile": "africa/benin.png", "soundFile": "voices-$CA/$LOCALE/geography/benin.$CA", "toolTipText": qsTr("Benin"), "x": "0.294", "y": "0.674" }, { "pixmapfile": "africa/algeria.png", "soundFile": "voices-$CA/$LOCALE/geography/algeria.$CA", "toolTipText": qsTr("Algeria"), "x": "0.31", "y": "0.264" } ] } diff --git a/src/activities/geography/resource/board/board8_0.qml b/src/activities/geography/resource/board/board8_0.qml index 505cad50e..c87671d84 100644 --- a/src/activities/geography/resource/board/board8_0.qml +++ b/src/activities/geography/resource/board/board8_0.qml @@ -1,172 +1,172 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Southern Africa") - property variant levels: [ + property var levels: [ { "pixmapfile": "africa/all_south_africa.png", "type": "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile": "africa/zimbabwe.png", "soundFile": "voices-$CA/$LOCALE/geography/zimbabwe.$CA", "toolTipText": qsTr("Zimbabwe"), "x": "0.515", "y": "0.554" }, { "pixmapfile": "africa/zambia.png", "soundFile": "voices-$CA/$LOCALE/geography/zambia.$CA", "toolTipText": qsTr("Zambia"), "x": "0.5", "y": "0.426" }, { "pixmapfile": "africa/uganda.png", "soundFile": "voices-$CA/$LOCALE/geography/uganda.$CA", "toolTipText": qsTr("Uganda"), "x": "0.599", "y": "0.105" }, { "pixmapfile": "africa/tanzania.png", "soundFile": "voices-$CA/$LOCALE/geography/tanzania.$CA", "toolTipText": qsTr("Tanzania"), "x": "0.658", "y": "0.279" }, { "pixmapfile": "africa/swaziland.png", "soundFile": "voices-$CA/$LOCALE/geography/swaziland.$CA", "toolTipText": qsTr("Swaziland"), "x": "0.559", "y": "0.717" }, { "pixmapfile": "africa/south_africa.png", "soundFile": "voices-$CA/$LOCALE/geography/south_africa.$CA", "toolTipText": qsTr("South Africa"), "x": "0.436", "y": "0.757" }, { "pixmapfile": "africa/rwanda.png", "soundFile": "voices-$CA/$LOCALE/geography/rwanda.$CA", "toolTipText": qsTr("Rwanda"), "x": "0.555", "y": "0.188" }, { "pixmapfile": "africa/republic_of_congo.png", "soundFile": "voices-$CA/$LOCALE/geography/republic_of_congo.$CA", "toolTipText": qsTr("Republic of Congo"), "x": "0.228", "y": "0.143" }, { "pixmapfile": "africa/namibia.png", "soundFile": "voices-$CA/$LOCALE/geography/namibia.$CA", "toolTipText": qsTr("Namibia"), "x": "0.298", "y": "0.632" }, { "pixmapfile": "africa/mozambique.png", "soundFile": "voices-$CA/$LOCALE/geography/mozambique.$CA", "toolTipText": qsTr("Mozambique"), "x": "0.66", "y": "0.551" }, { "pixmapfile": "africa/malawi.png", "soundFile": "voices-$CA/$LOCALE/geography/malawi.$CA", "toolTipText": qsTr("Malawi"), "x": "0.636", "y": "0.435" }, { "pixmapfile": "africa/madagascar.png", "soundFile": "voices-$CA/$LOCALE/geography/madagascar.$CA", "toolTipText": qsTr("Madagascar"), "x": "0.886", "y": "0.56" }, { "pixmapfile": "africa/lesotho.png", "soundFile": "voices-$CA/$LOCALE/geography/lesotho.$CA", "toolTipText": qsTr("Lesotho"), "x": "0.509", "y": "0.779" }, { "pixmapfile": "africa/kenya.png", "soundFile": "voices-$CA/$LOCALE/geography/kenya.$CA", "toolTipText": qsTr("Kenya"), "x": "0.721", "y": "0.127" }, { "pixmapfile": "africa/gabon.png", "soundFile": "voices-$CA/$LOCALE/geography/gabon.$CA", "toolTipText": qsTr("Gabon"), "x": "0.162", "y": "0.161" }, { "pixmapfile": "africa/equatorial_guinea.png", "soundFile": "voices-$CA/$LOCALE/geography/equatorial_guinea.$CA", "toolTipText": qsTr("Equatorial Guinea"), "x": "0.134", "y": "0.103" }, { "pixmapfile": "africa/democratic_republic_of_congo.png", "soundFile": "voices-$CA/$LOCALE/geography/democratic_republic_of_congo.$CA", "toolTipText": qsTr("Democratic Republic of Congo"), "x": "0.377", "y": "0.223" }, { "pixmapfile": "africa/burundi.png", "soundFile": "voices-$CA/$LOCALE/geography/burundi.$CA", "toolTipText": qsTr("Burundi"), "x": "0.553", "y": "0.225" }, { "pixmapfile": "africa/botswana.png", "soundFile": "voices-$CA/$LOCALE/geography/botswana.$CA", "toolTipText": qsTr("Botswana"), "x": "0.43", "y": "0.627" }, { "pixmapfile": "africa/angola.png", "soundFile": "voices-$CA/$LOCALE/geography/angola.$CA", "toolTipText": qsTr("Angola"), "x": "0.296", "y": "0.388" } ] } diff --git a/src/activities/geography/resource/board/board9_0.qml b/src/activities/geography/resource/board/board9_0.qml index 00040dc0a..cb88de1a0 100644 --- a/src/activities/geography/resource/board/board9_0.qml +++ b/src/activities/geography/resource/board/board9_0.qml @@ -1,411 +1,411 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Asia") - property variant levels: [ + property var levels: [ { "pixmapfile": "asia/background.png", "type": "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile": "asia/russia.png", "soundFile": "voices-$CA/$LOCALE/geography/russia.$CA", "toolTipText": qsTr("Russia"), "x": "0.497", "y": "0.215" }, { "pixmapfile": "asia/mongolia.png", "soundFile": "voices-$CA/$LOCALE/geography/mongolia.$CA", "toolTipText": qsTr("Mongolia"), "x": "0.562", "y": "0.341" }, { "pixmapfile": "asia/japan.png", "soundFile": "voices-$CA/$LOCALE/geography/japan.$CA", "toolTipText": qsTr("Japan"), "x": "0.855", "y": "0.437" }, { "pixmapfile": "asia/north_korea.png", "soundFile": "voices-$CA/$LOCALE/geography/north_korea.$CA", "toolTipText": qsTr("North Korea"), "x": "0.768", "y": "0.415" }, { "pixmapfile": "asia/south_korea.png", "soundFile": "voices-$CA/$LOCALE/geography/south_korea.$CA", "toolTipText": qsTr("South Korea"), "x": "0.79", "y": "0.459" }, { "pixmapfile": "asia/kazakhstan.png", "soundFile": "voices-$CA/$LOCALE/geography/kazakhstan.$CA", "toolTipText": qsTr("Kazakhstan"), "x": "0.293", "y": "0.328" }, { "pixmapfile": "asia/uzbekistan.png", "soundFile": "voices-$CA/$LOCALE/geography/uzbekistan.$CA", "toolTipText": qsTr("Uzbekistan"), "x": "0.289", "y": "0.403" }, { "pixmapfile": "asia/taiwan.png", "soundFile": "voices-$CA/$LOCALE/geography/taiwan.$CA", "toolTipText": qsTr("Taiwan"), "x": "0.772", "y": "0.603" }, { "pixmapfile": "asia/vietnam.png", "soundFile": "voices-$CA/$LOCALE/geography/vietnam.$CA", "toolTipText": qsTr("Vietnam"), "x": "0.661", "y": "0.691" }, { "pixmapfile": "asia/cambodia.png", "soundFile": "voices-$CA/$LOCALE/geography/cambodia.$CA", "toolTipText": qsTr("Cambodia"), "x": "0.658", "y": "0.732" }, { "pixmapfile": "asia/laos.png", "soundFile": "voices-$CA/$LOCALE/geography/laos.$CA", "toolTipText": qsTr("Laos"), "x": "0.644", "y": "0.664" }, { "pixmapfile": "asia/thailand.png", "soundFile": "voices-$CA/$LOCALE/geography/thailand.$CA", "toolTipText": qsTr("Thailand"), "x": "0.627", "y": "0.723" }, { "pixmapfile": "asia/sri_lanka.png", "soundFile": "voices-$CA/$LOCALE/geography/sri_lanka.$CA", "toolTipText": qsTr("Sri Lanka"), "x": "0.465", "y": "0.785" }, { "pixmapfile": "asia/china.png", "soundFile": "voices-$CA/$LOCALE/geography/china.$CA", "toolTipText": qsTr("China"), "x": "0.577", "y": "0.466" }, { "pixmapfile": "asia/india.png", "soundFile": "voices-$CA/$LOCALE/geography/india.$CA", "toolTipText": qsTr("India"), "x": "0.465", "y": "0.624" }, { "pixmapfile": "asia/bangladesh.png", "soundFile": "voices-$CA/$LOCALE/geography/bangladesh.$CA", "toolTipText": qsTr("Bangladesh"), "x": "0.532", "y": "0.602" }, { "pixmapfile": "asia/bhutan.png", "soundFile": "voices-$CA/$LOCALE/geography/bhutan.$CA", "toolTipText": qsTr("Bhutan"), "x": "0.523", "y": "0.561" }, { "pixmapfile": "asia/nepal.png", "soundFile": "voices-$CA/$LOCALE/geography/nepal.$CA", "toolTipText": qsTr("Nepal"), "x": "0.472", "y": "0.55" }, { "pixmapfile": "asia/pakistan.png", "soundFile": "voices-$CA/$LOCALE/geography/pakistan.$CA", "toolTipText": qsTr("Pakistan"), "x": "0.344", "y": "0.527" }, { "pixmapfile": "asia/myanmar.png", "soundFile": "voices-$CA/$LOCALE/geography/myanmar.$CA", "toolTipText": qsTr("Myanmar"), "x": "0.579", "y": "0.65" }, { "pixmapfile": "asia/philippines.png", "soundFile": "voices-$CA/$LOCALE/geography/philippines.$CA", "toolTipText": qsTr("Philippines"), "x": "0.8", "y": "0.736" }, { "pixmapfile": "asia/indonesia.png", "soundFile": "voices-$CA/$LOCALE/geography/indonesia.$CA", "toolTipText": qsTr("Indonesia"), "x": "0.727", "y": "0.9" }, { "pixmapfile": "asia/malaysia.png", "soundFile": "voices-$CA/$LOCALE/geography/malaysia.$CA", "toolTipText": qsTr("Malaysia"), "x": "0.699", "y": "0.831" }, { "pixmapfile": "asia/afghanistan.png", "soundFile": "voices-$CA/$LOCALE/geography/afghanistan.$CA", "toolTipText": qsTr("Afghanistan"), "x": "0.328", "y": "0.487" }, { "pixmapfile": "asia/tajikistan.png", "soundFile": "voices-$CA/$LOCALE/geography/tajikistan.$CA", "toolTipText": qsTr("Tajikistan"), "x": "0.35", "y": "0.429" }, { "pixmapfile": "asia/kyrgyzstan.png", "soundFile": "voices-$CA/$LOCALE/geography/kyrgyzstan.$CA", "toolTipText": qsTr("Kyrgyzstan"), "x": "0.371", "y": "0.404" }, { "pixmapfile": "asia/turkmenistan.png", "soundFile": "voices-$CA/$LOCALE/geography/turkmenistan.$CA", "toolTipText": qsTr("Turkmenistan"), "x": "0.26", "y": "0.428" }, { "pixmapfile": "asia/iran.png", "soundFile": "voices-$CA/$LOCALE/geography/iran.$CA", "toolTipText": qsTr("Iran"), "x": "0.224", "y": "0.505" }, { "pixmapfile": "asia/azerbaijan.png", "soundFile": "voices-$CA/$LOCALE/geography/azerbaijan.$CA", "toolTipText": qsTr("Azerbaijan"), "x": "0.163", "y": "0.414" }, { "pixmapfile": "asia/georgia.png", "soundFile": "voices-$CA/$LOCALE/geography/georgia.$CA", //: Translators: Strip Asia| and translate only Georgia "toolTipText": qsTr("Asia|Georgia"), "x": "0.133", "y": "0.389" }, { "pixmapfile": "asia/turkey.png", "soundFile": "voices-$CA/$LOCALE/geography/turkey.$CA", "toolTipText": qsTr("Turkey"), "x": "0.077", "y": "0.428" }, { "pixmapfile": "asia/syria.png", "soundFile": "voices-$CA/$LOCALE/geography/syria.$CA", "toolTipText": qsTr("Syria"), "x": "0.108", "y": "0.478" }, { "pixmapfile": "asia/iraq.png", "soundFile": "voices-$CA/$LOCALE/geography/iraq.$CA", "toolTipText": qsTr("Iraq"), "x": "0.15", "y": "0.492" }, { "pixmapfile": "asia/jordan.png", "soundFile": "voices-$CA/$LOCALE/geography/jordan.$CA", "toolTipText": qsTr("Jordan"), "x": "0.1", "y": "0.517" }, { "pixmapfile": "asia/saudi_arabia.png", "soundFile": "voices-$CA/$LOCALE/geography/saudi_arabia.$CA", "toolTipText": qsTr("Saudi Arabia"), "x": "0.167", "y": "0.592" }, { "pixmapfile": "asia/yemen.png", "soundFile": "voices-$CA/$LOCALE/geography/yemen.$CA", "toolTipText": qsTr("Yemen"), "x": "0.192", "y": "0.692" }, { "pixmapfile": "asia/united_arab_emirates.png", "soundFile": "voices-$CA/$LOCALE/geography/united_arab_emirates.$CA", "toolTipText": qsTr("United Arab Emirates"), "x": "0.236", "y": "0.598" }, { "pixmapfile": "asia/oman.png", "soundFile": "voices-$CA/$LOCALE/geography/oman.$CA", "toolTipText": qsTr("Oman"), "x": "0.255", "y": "0.628" }, { "pixmapfile": "asia/armenia.png", "soundFile": "voices-$CA/$LOCALE/geography/armenia.$CA", "type": "SHAPE_BACKGROUND", "x": "0.15", "y": "0.415" }, { "pixmapfile": "asia/kuwait.png", "soundFile": "voices-$CA/$LOCALE/geography/kuwait.$CA", "type": "SHAPE_BACKGROUND", "x": "0.18", "y": "0.538" }, { "pixmapfile": "asia/cyprus.png", "soundFile": "voices-$CA/$LOCALE/geography/cyprus.$CA", "type": "SHAPE_BACKGROUND", "x": "0.065", "y": "0.472" }, { "pixmapfile": "asia/lebanon.png", "soundFile": "voices-$CA/$LOCALE/geography/lebanon.$CA", "type": "SHAPE_BACKGROUND", "x": "0.086", "y": "0.487" }, { "pixmapfile": "asia/bahrain.png", "soundFile": "voices-$CA/$LOCALE/geography/bahrain.$CA", "type": "SHAPE_BACKGROUND", "x": "0.208", "y": "0.575" }, { "pixmapfile": "asia/qatar.png", "soundFile": "voices-$CA/$LOCALE/geography/qatar.$CA", "type": "SHAPE_BACKGROUND", "x": "0.214", "y": "0.586" }, { "pixmapfile": "asia/brunei.png", "soundFile": "voices-$CA/$LOCALE/geography/brunei.$CA", "type": "SHAPE_BACKGROUND", "x": "0.744", "y": "0.821" }, { "pixmapfile": "asia/israel.png", "soundFile": "voices-$CA/$LOCALE/geography/israel.$CA", "type": "SHAPE_BACKGROUND", "x": "0.08", "y": "0.517" }, { "pixmapfile": "asia/palestine.png", "soundFile": "voices-$CA/$LOCALE/geography/palestine.$CA", "type": "SHAPE_BACKGROUND", "x": "0.081", "y": "0.516" }, { "pixmapfile": "asia/red_sea.png", "soundFile": "voices-$CA/$LOCALE/geography/red_sea.$CA", "type": "SHAPE_BACKGROUND", "x": "0.128", "y": "0.662" }, { "pixmapfile": "asia/africa2.png", "soundFile": "voices-$CA/$LOCALE/geography/africa2.$CA", "type": "SHAPE_BACKGROUND", "x": "0.176", "y": "0.808" }, { "pixmapfile": "asia/africa.png", "soundFile": "voices-$CA/$LOCALE/geography/africa.$CA", "type": "SHAPE_BACKGROUND", "x": "0.054", "y": "0.769" }, { "pixmapfile": "asia/persian_gulf.png", "soundFile": "voices-$CA/$LOCALE/geography/persian_gulf.$CA", "type": "SHAPE_BACKGROUND", "x": "0.223", "y": "0.563" }, { "pixmapfile": "asia/mediteranean_sea.png", "soundFile": "voices-$CA/$LOCALE/geography/mediteranean_sea.$CA", "type": "SHAPE_BACKGROUND", "x": "0.042", "y": "0.485" }, { "pixmapfile": "asia/black_sea.png", "soundFile": "voices-$CA/$LOCALE/geography/black_sea.$CA", "type": "SHAPE_BACKGROUND", "x": "0.059", "y": "0.344" }, { "pixmapfile": "asia/caspian_sea.png", "soundFile": "voices-$CA/$LOCALE/geography/caspian_sea.$CA", "type": "SHAPE_BACKGROUND", "x": "0.189", "y": "0.398" } ] } diff --git a/src/activities/gletters/FallingDomino.qml b/src/activities/gletters/FallingDomino.qml index fc0603e9e..c2bdacbdd 100644 --- a/src/activities/gletters/FallingDomino.qml +++ b/src/activities/gletters/FallingDomino.qml @@ -1,121 +1,121 @@ /* GCompris - FallingDomino.qml * * Copyright (C) 2014 Holger Kaelberer * * Authors: * Bruno Coudoin (GTK+ version) * Holger Kaelberer (Qt Quick port) * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import QtGraphicalEffects 1.0 import GCompris 1.0 import "../../core" import "gletters.js" as Activity Item { id: word width: domino.width height: domino.height /// index into text.split("") where next typed match should occur property int unmatchedIndex: 0; property string text - property variant dominoValues + property var dominoValues property bool wonState: false signal won onWon: { wonState = true particle.burst(30) fadeout.restart(); } Component.onCompleted: { // make sure our word is completely visible if (x + width > parent.width) x = parent.width - width; } PropertyAnimation { id: fadeout target: word; property: "opacity" to: 0 duration: 1000 onStopped: Activity.deleteWord(word); } function checkMatch(c) { // We are in the ending animation if (wonState) return var chars = text.split(""); if (chars[unmatchedIndex] == c) { unmatchedIndex++; return true; } else { unmatchedIndex = 0; return false; } } function startMoving(dur) { down.duration = dur; down.restart(); } function isCompleted() { return (unmatchedIndex === text.length); } Domino { id: domino width: 120 * ApplicationInfo.ratio height: width / 2 visible: dominoValues.length != 0 value1: dominoValues[0] value2: dominoValues[1] isClickable: false ParticleSystemStarLoader { id: particle clip: false } } NumberAnimation { id: down target: word property: "y" to: parent.height duration: 10000 onStopped: { Activity.audioCrashPlay(); Activity.appendRandomWord(word.text) Activity.deleteWord(word); } } } diff --git a/src/activities/hangman/Hangman.qml b/src/activities/hangman/Hangman.qml index 208d46878..f3a5c7923 100644 --- a/src/activities/hangman/Hangman.qml +++ b/src/activities/hangman/Hangman.qml @@ -1,454 +1,454 @@ /* GCompris - hangman.qml * * Copyright (C) 2015 Rajdeep Kaur * * Authors: * Bruno Coudoin (GTK+ version) * Rajdeep kaur (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import GCompris 1.0 import QtGraphicalEffects 1.0 import "../../core" import "hangman.js" as Activity import "qrc:/gcompris/src/core/core.js" as Core ActivityBase { id: activity // Overload this in your activity to change it // Put you default-.json files in it property string dataSetUrl: "qrc:/gcompris/src/activities/hangman/resource/" onStart: focus = true onStop: { } // When going on configuration, it steals the focus and re set it to the activity. // We need to set it back to the textinput item in order to have key events. onFocusChanged: { if(focus) { Activity.focusTextInput() } } pageComponent: Image { id: background source: activity.dataSetUrl+"background.svg" fillMode: Image.PreserveAspectCrop anchors.fill: parent sourceSize.width: Math.max(parent.width, parent.height) // system locale by default property string locale: "system" property bool englishFallback: false signal start signal stop Component.onCompleted: { dialogActivityConfig.getInitialConfiguration() activity.start.connect(start) activity.stop.connect(stop) } // Add here the QML items you need to access in javascript QtObject { id: items property Item main: activity.main property alias background: background property Item ourActivity: activity property alias bar: bar property alias bonus: bonus property alias keyboard: keyboard property alias hidden: hidden property alias guessedText: guessedText property alias textinput: textinput property alias wordImage: wordImage property alias score: score property alias parser: parser property alias locale: background.locale property alias ok: ok property int remainingLife - property variant goodWord + property var goodWord property int goodWordIndex property bool easyMode: false property alias englishFallbackDialog: englishFallbackDialog function playWord() { var locale = ApplicationInfo.getVoicesLocale(items.locale) if(activity.audioVoices.append( ApplicationInfo.getAudioFilePathForLocale(goodWord.voice, locale))) bonus.interval = 2500 else bonus.interval = 500 } onRemainingLifeChanged: { if(remainingLife == 3) { playWord(); } } } onStart: { focus = true Activity.start(items) Activity.focusTextInput() } onStop: { Activity.stop(); } GCText { id: hidden fontSize: largeSize color: "#4d4d4d" font.letterSpacing: 0.5 width: parent.width * 0.9 wrapMode: Text.WordWrap horizontalAlignment: Text.AlignHCenter anchors { horizontalCenter: parent.horizontalCenter bottom: bar.top bottomMargin: 5 * ApplicationInfo.ratio } z: 11 } GCText { id: guessedText fontSize: smallSize color: "#FFFFFF" wrapMode: Text.WordWrap horizontalAlignment: Text.AlignHCenter width: parent.width - 2*clock.width anchors { horizontalCenter: parent.horizontalCenter } z: 12 } Rectangle { width: guessedText.width height: guessedText.height radius: 10 border.width: 1 gradient: Gradient { GradientStop { position: 0.0; color: "#000" } GradientStop { position: 0.9; color: "#666" } GradientStop { position: 1.0; color: "#AAA" } } anchors { horizontalCenter: parent.horizontalCenter } z: 11 } TextInput { // Helper element to capture composed key events like french ô which // are not available via Keys.onPressed() on linux. Must be // disabled on mobile! id: textinput enabled: !ApplicationInfo.isMobile visible: false focus: true onTextChanged: { if (text != "") { Activity.processKeyPress(text); text = ""; } } onAccepted: if(items.remainingLife === 0) Activity.nextSubLevel() } Item { id: imageframe width: Math.min(300 * ApplicationInfo.ratio, background.width * 0.8, hidden.y) - guessedText.height height: width anchors.horizontalCenter: parent.horizontalCenter anchors.top: guessedText.bottom y: 5 * ApplicationInfo.ratio z: 10 opacity: items.easyMode ? 1 : 0 Image { id: wordImage smooth: true visible: false anchors.fill: parent property string nextSource function changeSource(nextSource_) { nextSource = nextSource_ animImage.start() } SequentialAnimation { id: animImage PropertyAnimation { target: wordImage property: "opacity" to: 0 duration: 100 } PropertyAction { target: wordImage property: "source" value: wordImage.nextSource } PropertyAnimation { target: wordImage property: "opacity" to: 1 duration: 100 } } } Image { id: threshmask smooth: true visible: false width: 1.3*parent.width height: 1.2*parent.height source: dataSetUrl + "fog.png" } ThresholdMask { id: thresh anchors.fill: wordImage source: wordImage maskSource: threshmask spread: 0.4 // remainingLife between 0 and 6 => threshold between 0 and 0.9 threshold: 0.15 * items.remainingLife } } DialogActivityConfig { id: dialogActivityConfig currentActivity: activity content: Component { Item { property alias localeBox: localeBox height: column.height property alias availableLangs: langs.languages LanguageList { id: langs } Column { id: column spacing: 10 width: parent.width Flow { spacing: 5 width: dialogActivityConfig.width GCComboBox { id: localeBox model: langs.languages background: dialogActivityConfig label: qsTr("Select your locale") } GCDialogCheckBox { id: easyModeBox width: parent.width text: qsTr("Display image to find as hint") checked: items.easyMode onCheckedChanged: { items.easyMode = checked } } } } } } onClose: home() onLoadData: { if(dataToSave && dataToSave["locale"]) { background.locale = dataToSave["locale"]; } if(dataToSave && dataToSave["easyMode"]) { items.easyMode = (dataToSave["easyMode"] === "true"); } } onSaveData: { var oldLocale = background.locale; var newLocale = dialogActivityConfig.configItem.availableLangs[dialogActivityConfig.loader.item.localeBox.currentIndex].locale; // Remove .UTF-8 if(newLocale.indexOf('.') != -1) { newLocale = newLocale.substring(0, newLocale.indexOf('.')) } dataToSave = {"locale": newLocale, "easyMode": "" + items.easyMode } background.locale = newLocale; // Restart the activity with new information if(oldLocale !== newLocale) { background.stop(); background.start(); } } function setDefaultValues() { var localeUtf8 = background.locale; if(background.locale != "system") { localeUtf8 += ".UTF-8"; } for(var i = 0 ; i < dialogActivityConfig.configItem.availableLangs.length ; i ++) { if(dialogActivityConfig.configItem.availableLangs[i].locale === localeUtf8) { dialogActivityConfig.loader.item.localeBox.currentIndex = i; break; } } } } DialogHelp { id: dialogHelp onClose: home() } Bar { id: bar anchors.bottom: keyboard.top content: BarEnumContent { value: help | home | level | config } onHelpClicked: { displayDialog(dialogHelp) } onPreviousLevelClicked: Activity.previousLevel() onNextLevelClicked: Activity.nextLevel() onHomeClicked: activity.home() onConfigClicked: { dialogActivityConfig.active = true dialogActivityConfig.setDefaultValues() displayDialog(dialogActivityConfig) } } Score { id: score anchors.top: undefined anchors.topMargin: 10 * ApplicationInfo.ratio anchors.right: parent.right anchors.rightMargin: 10 * ApplicationInfo.ratio anchors.bottom: keyboard.top } BarButton { id: ok source: "qrc:/gcompris/src/core/resource/bar_ok.svg"; sourceSize.width: 75 * ApplicationInfo.ratio visible: false anchors { bottom: score.top horizontalCenter: score.horizontalCenter bottomMargin: 10 * ApplicationInfo.ratio } onClicked: Activity.nextSubLevel() } JsonParser { id: parser onError: console.error("Hangman: Error parsing json: " + msg); } Image { id: clock anchors { left: parent.left top: parent.top margins: 10 } sourceSize.width: 66 * bar.barZoom property int remainingLife: items.remainingLife onRemainingLifeChanged: if(remainingLife >= 0) clockAnim.restart() SequentialAnimation { id: clockAnim alwaysRunToEnd: true ParallelAnimation { NumberAnimation { target: clock; properties: "opacity"; to: 0; duration: 800; easing.type: Easing.OutCubic } NumberAnimation { target: clock; properties: "rotation"; from: 0; to: 180; duration: 800; easing.type: Easing.OutCubic } } PropertyAction { target: clock; property: 'source'; value: "qrc:/gcompris/src/activities/reversecount/resource/" + "flower" + items.remainingLife + ".svg" } ParallelAnimation { NumberAnimation { target: clock; properties: "opacity"; to: 1; duration: 800; easing.type: Easing.OutCubic } NumberAnimation { target: clock; properties: "rotation"; from: 180; to: 0; duration: 800; easing.type: Easing.OutCubic } } } } VirtualKeyboard { id: keyboard anchors.bottom: parent.bottom anchors.horizontalCenter: parent.horizontalCenter width: parent.width onKeypress: Activity.processKeyPress(text); onError: console.log("VirtualKeyboard error: " + msg); } Bonus { id: bonus interval: 2000 onLoose: ok.visible = true onWin: Activity.nextSubLevel() } Loader { id: englishFallbackDialog sourceComponent: GCDialog { parent: activity.main message: qsTr("We are sorry, we don't have yet a translation for your language.") + " " + qsTr("GCompris is developed by the KDE community, you can translate GCompris by joining a translation team on %2").arg("http://l10n.kde.org/") + "

" + qsTr("We switched to English for this activity but you can select another language in the configuration dialog.") onClose: background.englishFallback = false } anchors.fill: parent focus: true active: background.englishFallback onStatusChanged: if (status == Loader.Ready) item.start() } } } diff --git a/src/activities/imagename/resource/board/board1_0.qml b/src/activities/imagename/resource/board/board1_0.qml index 36f842973..011bb4d26 100644 --- a/src/activities/imagename/resource/board/board1_0.qml +++ b/src/activities/imagename/resource/board/board1_0.qml @@ -1,113 +1,113 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Drag and Drop each item onto its name") - property variant levels: [ + property var levels: [ { "pixmapfile": "images/postpoint.svg", "x": "0.2", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/sailingboat.svg", "x": "0.5", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/lamp.svg", "x": "0.8", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/postcard.svg", "x": "0.2", "y": "0.7", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/fishingboat.svg", "x": "0.5", "y": "0.7", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/light.svg", "x": "0.8", "y": "0.7", "height": 0.25, "width": 0.25 }, { "text": qsTr("mail box"), "x": "0.2", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("sailing boat"), "x": "0.5", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("lamp"), "x": "0.8", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("postcard"), "x": "0.2", "y": "0.85", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("fishing boat"), "x": "0.5", "y": "0.85", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("bulb"), "x": "0.8", "y": "0.85", "width": "0.4", "type": "DisplayText" } ] } diff --git a/src/activities/imagename/resource/board/board2_0.qml b/src/activities/imagename/resource/board/board2_0.qml index 5496476d8..164734302 100644 --- a/src/activities/imagename/resource/board/board2_0.qml +++ b/src/activities/imagename/resource/board/board2_0.qml @@ -1,112 +1,112 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels: [ + property var levels: [ { "pixmapfile": "images/bottle.svg", "x": "0.2", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/glass.svg", "x": "0.5", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/egg.svg", "x": "0.8", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/eggpot.svg", "x": "0.2", "y": "0.7", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/flower.svg", "x": "0.5", "y": "0.7", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/flowerpot.svg", "x": "0.8", "y": "0.7", "height": 0.25, "width": 0.25 }, { "text": qsTr("bottle"), "x": "0.2", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("glass"), "x": "0.5", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("egg"), "x": "0.8", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("eggcup"), "x": "0.2", "y": "0.85", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("flower"), "x": "0.5", "y": "0.85", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("vase"), "x": "0.8", "y": "0.85", "width": "0.4", "type": "DisplayText" } ] } diff --git a/src/activities/imagename/resource/board/board3_0.qml b/src/activities/imagename/resource/board/board3_0.qml index 36875aacb..dce9992bb 100644 --- a/src/activities/imagename/resource/board/board3_0.qml +++ b/src/activities/imagename/resource/board/board3_0.qml @@ -1,112 +1,112 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels: [ + property var levels: [ { "pixmapfile": "images/fusee.svg", "x": "0.2", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/star.svg", "x": "0.5", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/sofa.svg", "x": "0.8", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/house.svg", "x": "0.2", "y": "0.7", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/lighthouse.svg", "x": "0.5", "y": "0.7", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/sailingboat.svg", "x": "0.8", "y": "0.7", "height": 0.25, "width": 0.25 }, { "text": qsTr("rocket"), "x": "0.2", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("star"), "x": "0.5", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("sofa"), "x": "0.8", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("house"), "x": "0.2", "y": "0.85", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("light house"), "x": "0.5", "y": "0.85", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("sailing boat"), "x": "0.8", "y": "0.85", "width": "0.4", "type": "DisplayText" } ] } diff --git a/src/activities/imagename/resource/board/board4_0.qml b/src/activities/imagename/resource/board/board4_0.qml index 6f86a2f0b..ddcc5e782 100644 --- a/src/activities/imagename/resource/board/board4_0.qml +++ b/src/activities/imagename/resource/board/board4_0.qml @@ -1,112 +1,112 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels: [ + property var levels: [ { "pixmapfile": "images/apple.svg", "x": "0.2", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/tree.svg", "x": "0.5", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/bicycle.svg", "x": "0.8", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/car.svg", "x": "0.2", "y": "0.7", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/carrot.svg", "x": "0.5", "y": "0.7", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/rape.svg", "x": "0.8", "y": "0.7", "height": 0.25, "width": 0.25 }, { "text": qsTr("apple"), "x": "0.2", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("tree"), "x": "0.5", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("bicycle"), "x": "0.8", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("car"), "x": "0.2", "y": "0.85", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("carrot"), "x": "0.5", "y": "0.85", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("grater"), "x": "0.8", "y": "0.85", "width": "0.4", "type": "DisplayText" } ] } diff --git a/src/activities/imagename/resource/board/board5_0.qml b/src/activities/imagename/resource/board/board5_0.qml index a2c6ef3e4..63c9eca95 100644 --- a/src/activities/imagename/resource/board/board5_0.qml +++ b/src/activities/imagename/resource/board/board5_0.qml @@ -1,112 +1,112 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels: [ + property var levels: [ { "pixmapfile": "images/pencil.svg", "x": "0.2", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/postcard.svg", "x": "0.5", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/tree.svg", "x": "0.8", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/star.svg", "x": "0.2", "y": "0.7", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/truck.svg", "x": "0.5", "y": "0.7", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/minivan.svg", "x": "0.8", "y": "0.7", "height": 0.25, "width": 0.25 }, { "text": qsTr("pencil"), "x": "0.2", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("postcard"), "x": "0.5", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("tree"), "x": "0.8", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("star"), "x": "0.2", "y": "0.85", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("truck"), "x": "0.5", "y": "0.85", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("van"), "x": "0.8", "y": "0.85", "width": "0.4", "type": "DisplayText" } ] } diff --git a/src/activities/imagename/resource/board/board6_0.qml b/src/activities/imagename/resource/board/board6_0.qml index 644b789d6..a17e9c6b0 100644 --- a/src/activities/imagename/resource/board/board6_0.qml +++ b/src/activities/imagename/resource/board/board6_0.qml @@ -1,112 +1,112 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels: [ + property var levels: [ { "pixmapfile": "images/castle.svg", "x": "0.2", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/crown.svg", "x": "0.5", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/sailingboat.svg", "x": "0.8", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/windflag5.svg", "x": "0.2", "y": "0.7", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/raquette.svg", "x": "0.5", "y": "0.7", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/football.svg", "x": "0.8", "y": "0.7", "height": 0.25, "width": 0.25 }, { "text": qsTr("castle"), "x": "0.2", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("crown"), "x": "0.5", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("sailing boat"), "x": "0.8", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("flag"), "x": "0.2", "y": "0.85", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("racket"), "x": "0.5", "y": "0.85", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("ball"), "x": "0.8", "y": "0.85", "width": "0.4", "type": "DisplayText" } ] } diff --git a/src/activities/imagename/resource/board/board7_0.qml b/src/activities/imagename/resource/board/board7_0.qml index 4b7414531..093c2e9c0 100644 --- a/src/activities/imagename/resource/board/board7_0.qml +++ b/src/activities/imagename/resource/board/board7_0.qml @@ -1,112 +1,112 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels: [ + property var levels: [ { "pixmapfile": "images/tree.svg", "x": "0.2", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/postpoint.svg", "x": "0.5", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/sailingboat.svg", "x": "0.8", "y": "0.25", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/light.svg", "x": "0.2", "y": "0.7", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/bottle.svg", "x": "0.5", "y": "0.7", "height": 0.25, "width": 0.25 }, { "pixmapfile": "images/flower.svg", "x": "0.8", "y": "0.7", "height": 0.25, "width": 0.25 }, { "text": qsTr("tree"), "x": "0.2", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("mail box"), "x": "0.5", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("sailing boat"), "x": "0.8", "y": "0.4", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("bulb"), "x": "0.2", "y": "0.85", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("bottle"), "x": "0.5", "y": "0.85", "width": "0.4", "type": "DisplayText" }, { "text": qsTr("flower"), "x": "0.8", "y": "0.85", "width": "0.4", "type": "DisplayText" } ] } diff --git a/src/activities/lang/Lang.qml b/src/activities/lang/Lang.qml index 45b44ada9..34e5b94aa 100644 --- a/src/activities/lang/Lang.qml +++ b/src/activities/lang/Lang.qml @@ -1,254 +1,254 @@ /* GCompris - lang.qml * * Copyright (C) Siddhesh suthar (Qt Quick port) * * Authors: * Pascal Georges (pascal.georges1@free.fr) (GTK+ version) * Holger Kaelberer (Qt Quick port of imageid) * Siddhesh suthar (Qt Quick port) * Bruno Coudoin (Integration Lang dataset) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import GCompris 1.0 import QtGraphicalEffects 1.0 import "../../core" import "lang.js" as Activity import "spell_it.js" as SpellActivity import "qrc:/gcompris/src/core/core.js" as Core ActivityBase { id: activity onStart: focus = true onStop: {} pageComponent: Image { id: background source: "qrc:/gcompris/src/activities/lang/resource/imageid-bg.svg" fillMode: Image.PreserveAspectCrop sourceSize.width: Math.max(parent.width, parent.height) property bool englishFallback: false signal start signal stop signal voiceError signal voiceDone Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } // Add here the QML items you need to access in javascript QtObject { id: items property Item main: activity.main property GCAudio audioVoices: activity.audioVoices property alias background: background property alias bar: bar property alias imageReview: imageReview property alias parser: parser property alias menuModel: menuScreen.menuModel property var wordList property alias menuScreen: menuScreen property alias englishFallbackDialog: englishFallbackDialog property string locale: 'system' property alias dialogActivityConfig: dialogActivityConfig - property variant categoriesTranslations: activity.categoriesTranslations + property var categoriesTranslations: activity.categoriesTranslations } onStart: { Activity.init(items) dialogActivityConfig.getInitialConfiguration() activity.audioVoices.error.connect(voiceError) activity.audioVoices.done.connect(voiceDone) Activity.start() } onStop: { dialogActivityConfig.saveDatainConfiguration() Activity.stop() } JsonParser { id: parser onError: console.error("lang: Error parsing json: " + msg); } MenuScreen { id: menuScreen } ImageReview { id: imageReview } DialogHelp { id: dialogHelp onClose: home() } Bar { id: bar anchors.bottom: keyboardArea.top content: menuScreen.started ? withConfig : withoutConfig property BarEnumContent withConfig: BarEnumContent { value: help | home | config } property BarEnumContent withoutConfig: BarEnumContent { value: help | home } onHelpClicked: { displayDialog(dialogHelp) } onHomeClicked: { if(!items.menuScreen.started && !items.imageReview.started) // We're in a mini game, start imageReview items.imageReview.start() else if(items.imageReview.started) // Leave imageReview Activity.launchMenuScreen() else home() } onConfigClicked: { dialogActivityConfig.active = true dialogActivityConfig.setDefaultValues() displayDialog(dialogActivityConfig) } } // This is a stop to hold the virtual keyboard from a mini game Row { id: keyboardArea anchors.bottom: parent.bottom width: parent.width } Loader { id: englishFallbackDialog sourceComponent: GCDialog { parent: activity.main message: qsTr("We are sorry, we don't have yet a translation for your language.") + " " + qsTr("GCompris is developed by the KDE community, you can translate GCompris by joining a translation team on %2").arg("http://l10n.kde.org/") + "

" + qsTr("We switched to English for this activity but you can select another language in the configuration dialog.") onClose: background.englishFallback = false } anchors.fill: parent focus: true active: background.englishFallback onStatusChanged: if (status == Loader.Ready) item.start() } DialogActivityConfig { id: dialogActivityConfig currentActivity: activity content: Component { Item { property alias localeBox: localeBox height: column.height property alias availableLangs: langs.languages LanguageList { id: langs } Column { id: column spacing: 10 width: parent.width Flow { spacing: 5 width: dialogActivityConfig.width GCComboBox { id: localeBox model: langs.languages background: dialogActivityConfig width: dialogActivityConfig.width label: qsTr("Select your locale") } } } } } onLoadData: { if(!dataToSave) return if(dataToSave['locale']) { items.locale = dataToSave["locale"]; } } onSaveData: { // Save the lessons status on the current locale var oldLocale = items.locale dataToSave[ApplicationInfo.getVoicesLocale(items.locale)] = Activity.lessonsToSavedProperties(dataToSave) if(!dialogActivityConfig.loader.item) return var newLocale = dialogActivityConfig.configItem.availableLangs[ dialogActivityConfig.loader.item.localeBox.currentIndex].locale; // Remove .UTF-8 if(newLocale.indexOf('.') != -1) { newLocale = newLocale.substring(0, newLocale.indexOf('.')) } dataToSave['locale'] = newLocale items.locale = newLocale; // Restart the activity with new information if(oldLocale !== newLocale) { Activity.stop() Activity.start(); } } function setDefaultValues() { var localeUtf8 = items.locale; if(items.locale != "system") { localeUtf8 += ".UTF-8"; } for(var i = 0 ; i < dialogActivityConfig.configItem.availableLangs.length ; i ++) { if(dialogActivityConfig.configItem.availableLangs[i].locale === localeUtf8) { dialogActivityConfig.loader.item.localeBox.currentIndex = i; break; } } } onClose: home() } } - property variant categoriesTranslations: {"otherChapter": qsTr("other"), + property var categoriesTranslations: {"otherChapter": qsTr("other"), "otherLesson": qsTr("other"), "action": qsTr("action"), "adjective": qsTr("adjective"), "color": qsTr("color"), "number": qsTr("number"), "people": qsTr("people"), "bodyparts": qsTr("bodyparts"), "clothes": qsTr("clothes"), "emotion": qsTr("emotion"), "job": qsTr("job"), "sport": qsTr("sport"), "nature": qsTr("nature"), "animal": qsTr("animal"), "fruit": qsTr("fruit"), "plant": qsTr("plant"), "vegetables": qsTr("vegetables"), "object": qsTr("object"), "construction": qsTr("construction"), "furniture": qsTr("furniture"), "houseware": qsTr("houseware"), "tool": qsTr("tool"), "food": qsTr("food")} } diff --git a/src/activities/lang/Quiz.qml b/src/activities/lang/Quiz.qml index 4e646f97f..afb35306b 100644 --- a/src/activities/lang/Quiz.qml +++ b/src/activities/lang/Quiz.qml @@ -1,290 +1,290 @@ /* GCompris - Quiz.qml * * Copyright (C) Siddhesh suthar (Qt Quick port) * * Authors: * Pascal Georges (pascal.georges1@free.fr) (GTK+ version) * Holger Kaelberer (Qt Quick port of imageid) * Siddhesh suthar (Qt Quick port) * Bruno Coudoin (Integration Lang dataset) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import GCompris 1.0 import QtGraphicalEffects 1.0 import "../../core" import "lang.js" as Activity import "quiz.js" as QuizActivity Item { id: quiz opacity: 0 property alias background: background property alias bonus: bonus property alias score: score property alias wordImage: wordImage property alias imageFrame: imageFrame property alias wordListModel: wordListModel property alias wordListView: wordListView property alias parser: parser - property variant goodWord + property var goodWord property bool horizontalLayout: background.width > background.height function init(loadedItems_, wordList_, mode_) { opacity = 1 loadedItems_.forceActiveFocus() return QuizActivity.init(loadedItems_, wordList_, mode_) } onGoodWordChanged: Activity.playWord(goodWord.voice) Behavior on opacity { PropertyAnimation { duration: 200 } } Image { id: background source: "qrc:/gcompris/src/activities/lang/resource/imageid-bg.svg" fillMode: Image.PreserveAspectCrop sourceSize.width: Math.max(parent.width, parent.height) height: parent.height anchors.fill: parent property bool keyNavigation: false Keys.onEscapePressed: { imageReview.start() } Keys.onRightPressed: { keyNavigation = true wordListView.incrementCurrentIndex() } Keys.onLeftPressed: { keyNavigation = true wordListView.decrementCurrentIndex() } Keys.onDownPressed: { keyNavigation = true wordListView.incrementCurrentIndex() } Keys.onUpPressed: { keyNavigation = true wordListView.decrementCurrentIndex() } Keys.onSpacePressed: { keyNavigation = true wordListView.currentItem.children[1].pressed() } Keys.onEnterPressed: { keyNavigation = true wordListView.currentItem.children[1].pressed() } Keys.onReturnPressed: { keyNavigation = true wordListView.currentItem.children[1].pressed() } Keys.onReleased: { if (event.key === Qt.Key_Back) { event.accepted = true imageReview.start() } } JsonParser { id: parser onError: console.error("Lang: Error parsing json: " + msg); } ListModel { id: wordListModel } Grid { id: gridId columns: quiz.horizontalLayout ? 2 : 1 spacing: 10 * ApplicationInfo.ratio anchors.fill: parent anchors.margins: 10 * ApplicationInfo.ratio Item { width: quiz.horizontalLayout ? background.width * 0.40 : background.width - gridId.anchors.margins * 2 height: quiz.horizontalLayout ? background.height - bar.height : (background.height - bar.height) * 0.4 Image { id: imageFrame anchors { horizontalCenter: parent.horizontalCenter verticalCenter: parent.verticalCenter } source: "qrc:/gcompris/src/activities/lang/resource/imageid_frame.svg" sourceSize.width: quiz.horizontalLayout ? parent.width * 0.7 : quiz.width - repeatItem.width - score.width - 50 * ApplicationInfo.ratio z: 11 visible: QuizActivity.mode !== 3 Image { id: wordImage // Images are not svg width: Math.min(parent.width, parent.height) * 0.9 height: width anchors.centerIn: parent property string nextSource function changeSource(nextSource_) { nextSource = nextSource_ animImage.start() } SequentialAnimation { id: animImage PropertyAnimation { target: wordImage property: "opacity" to: 0 duration: 100 } PropertyAction { target: wordImage property: "source" value: wordImage.nextSource } PropertyAnimation { target: wordImage property: "opacity" to: 1 duration: 100 } } MouseArea { anchors.fill: parent onClicked: Activity.playWord(goodWord.voice) } } } } ListView { id: wordListView width: quiz.horizontalLayout ? background.width * 0.55 : background.width - gridId.anchors.margins * 2 height: quiz.horizontalLayout ? background.height - bar.height : (background.height - bar.height) * 0.60 spacing: 10 * ApplicationInfo.ratio orientation: Qt.Vertical verticalLayoutDirection: ListView.TopToBottom interactive: false model: wordListModel highlight: Rectangle { width: wordListView.width height: wordListView.buttonHeight color: "lightsteelblue" radius: 5 visible: background.keyNavigation y: wordListView.currentItem.y Behavior on y { SpringAnimation { spring: 3 damping: 0.2 } } } highlightFollowsCurrentItem: false focus: true keyNavigationWraps: true property int buttonHeight: height / wordListModel.count * 0.9 delegate: Item { id: wordListViewDelegate width: wordListView.width height: wordListView.buttonHeight anchors.right: parent.right anchors.left: parent.left Image { id: wordImageQuiz width: height height: wordListView.buttonHeight source: image z: 7 fillMode: Image.PreserveAspectFit anchors.leftMargin: 5 * ApplicationInfo.ratio visible: (QuizActivity.mode == 1) ? true : false // hide images after first mini game } AnswerButton { id: wordRectangle width: parent.width * 0.6 height: wordListView.buttonHeight textLabel: translatedTxt anchors.left: wordImageQuiz.left anchors.right: parent.right isCorrectAnswer: translatedTxt === quiz.goodWord.translatedTxt onIncorrectlyPressed: { // push the error to have it asked again QuizActivity.remainingWords.unshift(quiz.goodWord); QuizActivity.nextSubLevelQuiz(); } onCorrectlyPressed: { QuizActivity.nextSubLevelQuiz(); } } } } } BarButton { id: repeatItem source: "qrc:/gcompris/src/core/resource/bar_repeat.svg"; sourceSize.width: 80 * ApplicationInfo.ratio z: 12 anchors { top: parent.top left: parent.left margins: 10 * ApplicationInfo.ratio } onClicked: Activity.playWord(goodWord.voice) Behavior on opacity { PropertyAnimation { duration: 200 } } } Score { id: score parent: quiz anchors.bottom: undefined anchors.bottomMargin: 10 * ApplicationInfo.ratio anchors.right: parent.right anchors.rightMargin: 10 * ApplicationInfo.ratio anchors.top: parent.top } Bonus { id: bonus onWin: imageReview.nextMiniGame() } } } diff --git a/src/activities/lang/SpellIt.qml b/src/activities/lang/SpellIt.qml index 76066fc51..fe94fe8d2 100644 --- a/src/activities/lang/SpellIt.qml +++ b/src/activities/lang/SpellIt.qml @@ -1,302 +1,302 @@ /* GCompris - SpellIt.qml * * Copyright (C) Siddhesh suthar (Qt Quick port) * * Authors: * Pascal Georges (pascal.georges1@free.fr) (GTK+ version) * Holger Kaelberer (Qt Quick port of imageid) * Siddhesh suthar (Qt Quick port) * Bruno Coudoin (Integration Lang dataset) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import GCompris 1.0 import QtGraphicalEffects 1.0 import "../../core" import "lang.js" as Activity import "spell_it.js" as SpellActivity Item { id: spellIt opacity: 0 property alias background: background property alias wordImage: wordImage property alias imageFrame: imageFrame property alias hintTextbg: hintTextbg property alias hintText: hintText property alias parser: parser property alias answerbg: answerbg property alias answer: answer property alias ok: ok property alias okMouseArea: okMouseArea property alias bonus: bonus property alias keyboard: keyboard property alias score: score - property variant goodWord + property var goodWord property int goodWordIndex property int maximumLengthAnswer function init(loadedItems_, wordList_, mode_) { opacity = 1 return SpellActivity.init(loadedItems_, wordList_, mode_); } onGoodWordChanged: Activity.playWord(goodWord.voice) Behavior on opacity { PropertyAnimation { duration: 200 } } Keys.onEscapePressed: { imageReview.start() } Image { id: background source: "qrc:/gcompris/src/activities/lang/resource/imageid-bg.svg" fillMode: Image.PreserveAspectCrop sourceSize.width: Math.max(parent.width, parent.height) height: parent.height property bool horizontalLayout: background.width > background.height JsonParser { id: parser onError: console.error("Lang: Error parsing json: " + msg); } Rectangle { id: hintTextbg x: hintText.x -4 y: hintText.y -4 width: imageFrame.width height: hintText.height +4 color: "#5090ff" border.color: "#000000" border.width: 2 radius: 16 anchors.top: parent.top anchors.bottom: imageFrame.top anchors.left: imageFrame.left anchors.bottomMargin: 5 GCText { id: hintText text: "" fontSize: largeSize font.weight: Font.DemiBold width: parent.width horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter color: "white" wrapMode: Text.WordWrap property string nextHint function changeHint(nextHint_) { nextHint = nextHint_ animHint.start() } SequentialAnimation { id: animHint PropertyAnimation { target: hintText property: "opacity" to: 0 duration: 100 } PropertyAction { target: hintText property: "text" value: ""+ hintText.nextHint } PropertyAnimation { target: hintText property: "opacity" to: 1 duration: 100 } } } } Image { id: imageFrame source: "qrc:/gcompris/src/activities/lang/resource/imageid_frame.svg" sourceSize.width: background.horizontalLayout ? parent.width * 0.9 : parent.height * 1.2 width: background.width * 0.55 height: (background.height - hintTextbg.height - answerbg.height - keyboard.height - bar.height) * 0.8 anchors { horizontalCenter: background.horizontalCenter top: background.top topMargin: (background.height) * 0.15 } z: 11 Image { id: wordImage // Images are not svg width: Math.min(parent.width, parent.height) * 0.9 height: width anchors.centerIn: parent property string nextSource function changeSource(nextSource_) { nextSource = nextSource_ animImage.start() } SequentialAnimation { id: animImage PropertyAnimation { target: wordImage property: "opacity" to: 0 duration: 100 } PropertyAction { target: wordImage property: "source" value: wordImage.nextSource } PropertyAnimation { target: wordImage property: "opacity" to: 1 duration: 100 } } MouseArea { anchors.fill: parent onClicked: { Activity.playWord(goodWord.voice) } } } } Rectangle { id: answerbg x: answer.x -4 y: answer.y -4 width: imageFrame.width height: answer.height +4 color: "#5090ff" border.color: "#000000" border.width: 2 radius: 16 anchors { top: imageFrame.bottom left: imageFrame.left topMargin: 20* ApplicationInfo.ratio } TextInput { id: answer width: hintTextbg.width height: hintTextbg.height color: "white" cursorVisible: true focus: false activeFocusOnPress: !ApplicationInfo.isMobile visible: true horizontalAlignment: TextInput.AlignHCenter verticalAlignment: TextInput.AlignVCenter font.pointSize: hintText.pointSize font.weight: Font.DemiBold font.family: GCSingletonFontLoader.fontLoader.name font.capitalization: ApplicationSettings.fontCapitalization font.letterSpacing: ApplicationSettings.fontLetterSpacing maximumLength: maximumLengthAnswer onAccepted: { okMouseArea.clicked(okMouseArea) } } } Image { id: ok source:"qrc:/gcompris/src/core/resource/bar_ok.svg" sourceSize.width: 70 * ApplicationInfo.ratio fillMode: Image.PreserveAspectFit anchors { top: imageFrame.bottom topMargin: 10* ApplicationInfo.ratio left: imageFrame.right leftMargin: 10* ApplicationInfo.ratio right: parent.right } MouseArea { id: okMouseArea anchors.fill: parent hoverEnabled: true onEntered: ok.scale = 1.1 onClicked: { SpellActivity.checkAnswer(answer.text) } onExited: ok.scale = 1 } } Bonus { id: bonus onWin: imageReview.nextMiniGame() } } BarButton { id: repeatItem source: "qrc:/gcompris/src/core/resource/bar_repeat.svg"; sourceSize.width: 80 * ApplicationInfo.ratio z: 12 anchors { top: parent.top left: parent.left margins: 10 * ApplicationInfo.ratio } onClicked: Activity.playWord(goodWord.voice) Behavior on opacity { PropertyAnimation { duration: 200 } } } Score { id: score anchors.bottom: undefined anchors.bottomMargin: 10 * ApplicationInfo.ratio anchors.right: parent.right anchors.rightMargin: 10 * ApplicationInfo.ratio anchors.top: parent.top } VirtualKeyboard { id: keyboard parent: keyboardArea anchors.bottom: undefined anchors.horizontalCenter: undefined width: parent.width visible: ApplicationSettings.isVirtualKeyboard onKeypress: SpellActivity.processKeyPress(text) onError: console.log("VirtualKeyboard error: " + msg); } } diff --git a/src/activities/memory/CardItem.qml b/src/activities/memory/CardItem.qml index be122f148..cade0ddc4 100644 --- a/src/activities/memory/CardItem.qml +++ b/src/activities/memory/CardItem.qml @@ -1,150 +1,150 @@ /* gcompris - CardItem.qml * * Copyright (C) 2014 JB BUTET * * Authors: * Bruno Coudoin (GTK+ version) * JB BUTET (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import GCompris 1.0 import "../../core" import "memory.js" as Activity Flipable { id: card - property variant pairData + property var pairData property bool isBack: true property bool isShown: false property bool isFound: false property bool tuxTurn property GCAudio audioVoices property GCAudio audioEffects onIsFoundChanged: { opacity = 0 timer.start() } Timer { id: timer interval: 100 running: false repeat: false onTriggered: particles.burst(50) } ParticleSystemStarLoader { id: particles clip: false } Timer { id: animationTimer interval: items.tuxTurn ? 1500 : 750 running: false repeat: false onTriggered: selectionReady() } back: Image { source: card.pairData.emptyCard sourceSize.width: parent.width fillMode: Image.PreserveAspectFit anchors.centerIn: parent anchors.fill: parent Image { source: card.pairData.image sourceSize.width: parent.width anchors.fill: parent anchors.centerIn: parent anchors.margins: 6 * ApplicationInfo.ratio fillMode: Image.PreserveAspectFit } GCText { anchors.centerIn: parent fontSize: largeSize horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter color: "black" font.bold: true style: Text.Outline styleColor: "white" text: card.pairData.text } } // Warning front and back property are reversed. Could not find // a way to display back at start time without this trick front: Image { fillMode: Image.PreserveAspectFit source: card.pairData.back sourceSize.width: parent.width anchors.centerIn: parent anchors.fill: parent } transform: Rotation { id: rotation origin.x: card.width / 2 origin.y: card.height / 2 axis.x: 0; axis.y: 1; axis.z: 0 angle: 0 } transitions: Transition { NumberAnimation { target: rotation; property: "angle"; duration: 750 } } MouseArea { anchors.fill: parent enabled: card.isBack && !card.isFound && !card.tuxTurn && items.selectionCount < 2 onClicked: selected() } function selected() { card.isBack = false card.isShown = true items.selectionCount++ animationTimer.start() audioEffects.play(Activity.url + "card_flip.wav") } function selectionReady() { var pairs = Activity.addPlayQueue(card) var win = Activity.reverseCardsIfNeeded() if(tuxTurn && win || tuxTurn && !pairs) Activity.tuxPlay() if (card.pairData.sound) { audioVoices.play(card.pairData.sound) } } Behavior on opacity { NumberAnimation { duration: 1000 } } states : [ State { name: "front" PropertyChanges { target: rotation; angle: 180 } when: !card.isBack } ] } diff --git a/src/activities/memory/MemoryCommon.qml b/src/activities/memory/MemoryCommon.qml index 364f57736..858b3d1d7 100644 --- a/src/activities/memory/MemoryCommon.qml +++ b/src/activities/memory/MemoryCommon.qml @@ -1,195 +1,195 @@ /* GCompris - MemoryCommon.qml * * Copyright (C) 2014 JB BUTET * * Authors: * Bruno Coudoin (GTK+ version) * JB BUTET (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import GCompris 1.0 import "." import "../../core" import "memory.js" as Activity ActivityBase { id: activity focus: true property string backgroundImg property var dataset property bool withTux: false property string additionnalPath onStart: focus = true onStop: {} pageComponent: Image { id: background source: activity.backgroundImg sourceSize.width: Math.max(parent.width, parent.height) fillMode: Image.PreserveAspectCrop focus: true signal start signal stop property alias items: items Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } QtObject { id: items property alias bar: bar property alias bonus: bonus property GCAudio audioEffects: activity.audioEffects property bool withTux: activity.withTux property bool tuxTurn: false property var playQueue property int selectionCount property int tuxScore: tuxScore.text property int playerScore: playerScore.text - property variant dataset: activity.dataset + property var dataset: activity.dataset property alias containerModel: containerModel property alias cardRepeater: cardRepeater property alias grid: grid property int columns property int rows } onStart: Activity.start(items) onStop: Activity.stop() ListModel { id: containerModel } Grid { id: grid spacing: 5 * ApplicationInfo.ratio columns: items.columns rows: items.rows anchors { left: background.left right: background.rigth top: background.top margins: 10 * ApplicationInfo.ratio } Repeater { id: cardRepeater model: containerModel delegate: CardItem { pairData: pairData_ tuxTurn: background.items.tuxTurn width: (background.width - (grid.columns + 1) * grid.spacing) / grid.columns height: (background.height - (grid.rows + 1) * grid.spacing) / (grid.rows + 0.5) audioVoices: activity.audioVoices audioEffects: activity.audioEffects } } add: Transition { PathAnimation { path: Path { PathCurve { x: background.width / 3} PathCurve { y: background.height / 3} PathCurve {} } easing.type: Easing.InOutQuad duration: 2000 } } } DialogHelp { id: dialogHelp onClose: home() } Bar { id: bar content: BarEnumContent { value: help | home | level } onHelpClicked: { displayDialog(dialogHelp) } onPreviousLevelClicked: Activity.previousLevel() onNextLevelClicked: Activity.nextLevel() onHomeClicked: home() } Image { id: player source: 'qrc:/gcompris/src/activities/memory/resource/children.svg' anchors { bottom: bar.bottom right: parent.right rightMargin: 2 * ApplicationInfo.ratio } width: height * 0.83 height: bar.height * 1.2 GCText { id: playerScore anchors.centerIn: parent anchors.verticalCenterOffset: parent.height / 6 color: "black" font.bold: true fontSize: largeSize style: Text.Outline styleColor: "white" text: items.playerScore } } Image { id: tux visible: activity.withTux source: 'qrc:/gcompris/src/activities/memory/resource/tux-teacher.svg' anchors { bottom: bar.bottom right: player.left rightMargin: 2 * ApplicationInfo.ratio } width: height * 0.83 height: bar.height * 1.2 GCText { id: tuxScore anchors.centerIn: parent anchors.verticalCenterOffset: parent.height / 6 color: "black" font.bold: true fontSize: largeSize style: Text.Outline styleColor: "white" text: items.tuxScore } } Bonus { id: bonus interval: 2000 Component.onCompleted: win.connect(Activity.nextLevel) } } } diff --git a/src/activities/menu/ConfigurationItem.qml b/src/activities/menu/ConfigurationItem.qml index e6e73bf2c..80917cd26 100644 --- a/src/activities/menu/ConfigurationItem.qml +++ b/src/activities/menu/ConfigurationItem.qml @@ -1,737 +1,737 @@ /* GCompris - ConfigurationItem.qml * * Copyright (C) 2014-2016 Johnny Jazeix * * Authors: * Johnny Jazeix * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import QtQuick.Controls 1.5 import QtQuick.Controls.Styles 1.4 import GCompris 1.0 import "../../core" import "qrc:/gcompris/src/core/core.js" as Core Item { id: dialogConfig property var languages: allLangs.languages height: column.height LanguageList { id: allLangs } Column { id: column spacing: 10 width: parent.width move: Transition { NumberAnimation { properties: "x,y"; duration: 120 } } // Put configuration here Row { id: demoModeBox width: parent.width spacing: 10 property bool checked: !ApplicationSettings.isDemoMode Image { sourceSize.height: 50 * ApplicationInfo.ratio source: demoModeBox.checked ? "qrc:/gcompris/src/core/resource/apply.svg" : "qrc:/gcompris/src/core/resource/cancel.svg" MouseArea { anchors.fill: parent onClicked: { if(ApplicationSettings.isDemoMode) ApplicationSettings.isDemoMode = false } } } Button { width: parent.parent.width - 50 * ApplicationInfo.ratio - 10 * 2 height: parent.height enabled: ApplicationSettings.isDemoMode anchors.leftMargin: 10 anchors.verticalCenter: parent.verticalCenter text: demoModeBox.checked ? qsTr("You have the full version") : qsTr("Buy the full version").toUpperCase() style: ButtonStyle { background: Rectangle { implicitWidth: 100 implicitHeight: 25 border.width: control.activeFocus ? 4 : 2 border.color: "black" radius: 10 gradient: Gradient { GradientStop { position: 0 ; color: control.pressed ? "#87ff5c" : ApplicationSettings.isDemoMode ? "#ffe85c" : "#EEEEEE"} GradientStop { position: 1 ; color: control.pressed ? "#44ff00" : ApplicationSettings.isDemoMode ? "#f8d600" : "#AAAAAA"} } } label: GCText { text: control.text horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter wrapMode: Text.WordWrap } } onClicked: { if(ApplicationSettings.activationMode == 1) { if(ApplicationSettings.isDemoMode) ApplicationSettings.isDemoMode = false } else if(ApplicationSettings.activationMode == 2) { activationCodeEntry.visible = !activationCodeEntry.visible } } } } Column { id: activationCodeEntry width: parent.width spacing: 10 visible: false opacity: 0 Behavior on opacity { NumberAnimation { duration: 200 } } onVisibleChanged: { if(visible) { activationInput.forceActiveFocus() activationInput.cursorPosition = 0 opacity = 1 } else { activationInput.focus = false opacity = 0 } } GCText { id: activationInstruction fontSize: regularSize color: "black" style: Text.Outline styleColor: "white" horizontalAlignment: Text.AlignHCenter width: parent.width wrapMode: TextEdit.WordWrap text: qsTr("On http://gcompris.net " + "you will find the instructions to obtain an activation code.") Component.onCompleted: ApplicationInfo.isDownloadAllowed ? linkActivated.connect(Qt.openUrlExternally) : null } TextInput { id: activationInput width: parent.width focus: true font.weight: Font.DemiBold font.pointSize: ApplicationSettings.baseFontSize + 14 * ApplicationInfo.fontRatio color: 'black' horizontalAlignment: Text.AlignHCenter inputMask: '>HHHH-HHHH-HHHH;#' text: ApplicationSettings.codeKey onTextChanged: { var code = text.replace(/-/g,'') var codeValidity = ApplicationSettings.checkActivationCode(code); switch (codeValidity) { case 0: activationMsg.text = qsTr('Enter your activation code'); break; case 1: activationMsg.text = qsTr('Sorry, your code is too old for this version of GCompris'); break; case 2: activationMsg.text = qsTr('Your code is valid, thanks a lot for your support'); activationCodeEntry.visible = false ApplicationSettings.codeKey = code break; } } } GCText { id: activationMsg width: parent.width color: "black" fontSize: regularSize horizontalAlignment: TextInput.AlignHCenter wrapMode: TextEdit.WordWrap } } GCDialogCheckBox { id: displayLockedActivitiesBox text: qsTr("Show locked activities") visible: ApplicationSettings.isDemoMode checked: showLockedActivities onCheckedChanged: { showLockedActivities = checked; } } GCDialogCheckBox { id: enableAudioVoicesBox text: qsTr("Enable audio voices") checked: isAudioVoicesEnabled onCheckedChanged: { isAudioVoicesEnabled = checked; } } GCDialogCheckBox { id: enableAudioEffectsBox text: qsTr("Enable audio effects") checked: isAudioEffectsEnabled onCheckedChanged: { isAudioEffectsEnabled = checked; } } GCDialogCheckBox { id: enableFullscreenBox text: qsTr("Fullscreen") checked: isFullscreen onCheckedChanged: { isFullscreen = checked; } visible: !ApplicationInfo.isMobile } GCDialogCheckBox { id: enableVirtualKeyboardBox text: qsTr("Virtual Keyboard") checked: isVirtualKeyboard onCheckedChanged: { isVirtualKeyboard = checked; } } GCDialogCheckBox { id: enableAutomaticDownloadsBox checked: isAutomaticDownloadsEnabled text: qsTr("Enable automatic downloads/updates of sound files") visible: ApplicationInfo.isDownloadAllowed onCheckedChanged: { isAutomaticDownloadsEnabled = checked; } } /* Technically wordset config is a string that holds the wordset name or '' for the * internal wordset. But as we support only internal and words its best to show the * user a boolean choice. */ GCDialogCheckBox { id: wordsetBox checked: DownloadManager.isDataRegistered("words") text: enabled ? qsTr("Use full word image set") : qsTr("Download full word image set") visible: ApplicationInfo.isDownloadAllowed enabled: !DownloadManager.isDataRegistered("words") onCheckedChanged: { wordset = checked ? 'data2/words/words.rcc' : ''; } } GCDialogCheckBox { id: sectionVisibleBox checked: sectionVisible text: qsTr("The activity section menu is visible") onCheckedChanged: { sectionVisible = checked; } } Flow { spacing: 5 width: parent.width GCComboBox { id: fontBox model: fonts background: dialogActivityConfig label: qsTr("Font selector") } } Flow { spacing: 5 width: parent.width Slider { id: baseFontSizeSlider width: 250 * ApplicationInfo.ratio style: GCSliderStyle {} maximumValue: ApplicationSettings.baseFontSizeMax minimumValue: ApplicationSettings.baseFontSizeMin stepSize: 1.0 tickmarksEnabled: true updateValueWhileDragging: true value: baseFontSize onValueChanged: ApplicationSettings.baseFontSize = value; } GCText { id: baseFontSizeText text: qsTr("Font size") fontSize: mediumSize wrapMode: Text.WordWrap } Button { height: 30 * ApplicationInfo.ratio text: qsTr("Default"); style: GCButtonStyle {} onClicked: baseFontSizeSlider.value = 0.0 } } Flow { spacing: 5 width: parent.width GCComboBox { id: fontCapitalizationBox model: fontCapitalizationModel background: dialogActivityConfig label: qsTr("Font Capitalization") } } Flow { spacing: 5 width: parent.width Slider { id: fontLetterSpacingSlider width: 250 * ApplicationInfo.ratio style: GCSliderStyle {} maximumValue: ApplicationSettings.fontLetterSpacingMax minimumValue: ApplicationSettings.fontLetterSpacingMin stepSize: 1.0 tickmarksEnabled: true updateValueWhileDragging: true value: fontLetterSpacing onValueChanged: ApplicationSettings.fontLetterSpacing = value } GCText { id: fontLetterSpacingText text: qsTr("Font letter spacing") fontSize: mediumSize wrapMode: Text.WordWrap } Button { height: 30 * ApplicationInfo.ratio text: qsTr("Default"); style: GCButtonStyle {} onClicked: fontLetterSpacingSlider.value = ApplicationSettings.fontLetterSpacingMin } } Flow { spacing: 5 width: parent.width GCComboBox { id: languageBox model: dialogConfig.languages background: dialogActivityConfig onCurrentIndexChanged: voicesRow.localeChanged(); label: qsTr("Language selector") } } Flow { id: voicesRow width: parent.width spacing: 5 * ApplicationInfo.ratio property bool haveLocalResource: false function localeChanged() { var language = dialogConfig.languages[languageBox.currentIndex].text; voicesRow.haveLocalResource = DownloadManager.isDataRegistered( "voices-" + ApplicationInfo.CompressedAudio + "/" + ApplicationInfo.getVoicesLocale(dialogConfig.languages[languageBox.currentIndex].locale) ) } Connections { target: DownloadManager onDownloadFinished: voicesRow.localeChanged() } GCText { id: voicesText text: qsTr("Localized voices") fontSize: mediumSize wrapMode: Text.WordWrap } Image { id: voicesImage sourceSize.height: 30 * ApplicationInfo.ratio source: voicesRow.haveLocalResource ? "qrc:/gcompris/src/core/resource/apply.svg" : "qrc:/gcompris/src/core/resource/cancel.svg" } Button { id: voicesButton height: 30 * ApplicationInfo.ratio visible: ApplicationInfo.isDownloadAllowed text: voicesRow.haveLocalResource ? qsTr("Check for updates") : qsTr("Download") style: GCButtonStyle {} onClicked: { if (DownloadManager.downloadResource( DownloadManager.getVoicesResourceForLocale(dialogConfig.languages[languageBox.currentIndex].locale))) { var downloadDialog = Core.showDownloadDialog(dialogConfig.parent.rootItem, {}); } } } } Flow { width: parent.width spacing: 5 * ApplicationInfo.ratio GCText { text: qsTr("Difficulty filter:") fontSize: mediumSize height: 50 * ApplicationInfo.ratio } // Padding Item { height: 1 width: 10 * ApplicationInfo.ratio } Image { source: "qrc:/gcompris/src/core/resource/bar_next.svg" sourceSize.height: Math.min(50 * ApplicationInfo.ratio, parent.width / 8) MouseArea { anchors.fill: parent onClicked: { filterRepeater.setMin(filterRepeater.min + 1) } } } // Padding Item { height: 1 width: 5 * ApplicationInfo.ratio } // Level filtering Repeater { id: filterRepeater model: 6 property int min: ApplicationSettings.filterLevelMin property int max: ApplicationSettings.filterLevelMax function setMin(value) { var newMin if(min < 1) newMin = 1 else if(min > 6) newMin = 6 else if(max >= value) newMin = value if(newMin) ApplicationSettings.filterLevelMin = newMin } function setMax(value) { var newMax if(max < 1) newMax = 1 else if(max > 6) newMax = 6 else if(min <= value) newMax = value if(newMax) ApplicationSettings.filterLevelMax = newMax } Image { source: "qrc:/gcompris/src/core/resource/difficulty" + (modelData + 1) + ".svg"; sourceSize.width: Math.min(50 * ApplicationInfo.ratio, parent.width / 8) opacity: modelData + 1 >= filterRepeater.min && modelData + 1 <= filterRepeater.max ? 1 : 0.4 property int value: modelData + 1 MouseArea { anchors.fill: parent onClicked: { if(parent.value < filterRepeater.max) { if(parent.opacity == 1) filterRepeater.setMin(parent.value + 1) else filterRepeater.setMin(parent.value) } else if(parent.value > filterRepeater.min) { if(parent.opacity == 1) filterRepeater.setMax(parent.value - 1) else filterRepeater.setMax(parent.value) } } } } } // Padding Item { height: 1 width: 5 * ApplicationInfo.ratio } Image { source: "qrc:/gcompris/src/core/resource/bar_previous.svg" sourceSize.height: Math.min(50 * ApplicationInfo.ratio, parent.width / 8) MouseArea { anchors.fill: parent onClicked: { filterRepeater.setMax(filterRepeater.max - 1) } } } } } property bool showLockedActivities: ApplicationSettings.showLockedActivities property bool isAudioVoicesEnabled: ApplicationSettings.isAudioVoicesEnabled property bool isAudioEffectsEnabled: ApplicationSettings.isAudioEffectsEnabled property bool isFullscreen: ApplicationSettings.isFullscreen property bool isVirtualKeyboard: ApplicationSettings.isVirtualKeyboard property bool isAutomaticDownloadsEnabled: ApplicationSettings.isAutomaticDownloadsEnabled property bool sectionVisible: ApplicationSettings.sectionVisible property string wordset: ApplicationSettings.wordset property int baseFontSize // don't bind to ApplicationSettings.baseFontSize property real fontLetterSpacing // don't bind to ApplicationSettings.fontLetterSpacing // or we get a binding loop warning function loadFromConfig() { // Synchronize settings with data showLockedActivities = ApplicationSettings.showLockedActivities isAudioVoicesEnabled = ApplicationSettings.isAudioVoicesEnabled enableAudioVoicesBox.checked = isAudioVoicesEnabled isAudioEffectsEnabled = ApplicationSettings.isAudioEffectsEnabled enableAudioEffectsBox.checked = isAudioEffectsEnabled isFullscreen = ApplicationSettings.isFullscreen enableFullscreenBox.checked = isFullscreen isVirtualKeyboard = ApplicationSettings.isVirtualKeyboard enableVirtualKeyboardBox.checked = isVirtualKeyboard isAutomaticDownloadsEnabled = ApplicationSettings.isAutomaticDownloadsEnabled enableAutomaticDownloadsBox.checked = isAutomaticDownloadsEnabled sectionVisible = ApplicationSettings.sectionVisible sectionVisibleBox.checked = sectionVisible wordset = ApplicationSettings.wordset wordsetBox.checked = DownloadManager.isDataRegistered("words") || ApplicationSettings.wordset == 'data2/words/words.rcc' wordsetBox.enabled = !DownloadManager.isDataRegistered("words") baseFontSize = ApplicationSettings.baseFontSize; fontLetterSpacing = ApplicationSettings.fontLetterSpacing; // Set locale for(var i = 0 ; i < dialogConfig.languages.length ; i ++) { if(dialogConfig.languages[i].locale === ApplicationSettings.locale) { languageBox.currentIndex = i; break; } } // Set font for(var i = 0 ; i < fonts.count ; i ++) { if(fonts.get(i).text == ApplicationSettings.font) { fontBox.currentIndex = i; break; } } // Set font capitalization for(var i = 0 ; i < fontCapitalizationModel.length ; i ++) { if(fontCapitalizationModel[i].value == ApplicationSettings.fontCapitalization) { fontCapitalizationBox.currentIndex = i; break; } } } function save() { ApplicationSettings.showLockedActivities = showLockedActivities ApplicationSettings.isAudioVoicesEnabled = isAudioVoicesEnabled ApplicationSettings.isAudioEffectsEnabled = isAudioEffectsEnabled ApplicationSettings.isFullscreen = isFullscreen ApplicationSettings.isVirtualKeyboard = isVirtualKeyboard ApplicationSettings.isAutomaticDownloadsEnabled = isAutomaticDownloadsEnabled ApplicationSettings.sectionVisible = sectionVisible ApplicationSettings.wordset = wordset ApplicationSettings.isEmbeddedFont = fonts.get(fontBox.currentIndex).isLocalResource; ApplicationSettings.font = fonts.get(fontBox.currentIndex).text ApplicationSettings.fontCapitalization = fontCapitalizationModel[fontCapitalizationBox.currentIndex].value ApplicationSettings.saveBaseFontSize(); ApplicationSettings.notifyFontLetterSpacingChanged(); if (ApplicationSettings.locale != dialogConfig.languages[languageBox.currentIndex].locale) { ApplicationSettings.locale = dialogConfig.languages[languageBox.currentIndex].locale if(ApplicationInfo.isDownloadAllowed && !DownloadManager.isDataRegistered( "voices-" + ApplicationInfo.CompressedAudio + "/" + ApplicationInfo.getVoicesLocale(dialogConfig.languages[languageBox.currentIndex].locale) )) { // ask for downloading new voices Core.showMessageDialog(main, qsTr("You selected a new locale. You need to restart GCompris to play in your new locale.
Do you want to download the corresponding sound files now?"), qsTr("Yes"), function() { // yes -> start download if (DownloadManager.downloadResource( DownloadManager.getVoicesResourceForLocale(ApplicationSettings.locale))) var downloadDialog = Core.showDownloadDialog(main, {}); }, qsTr("No"), null, null ); } else { // check for updates or/and register new voices DownloadManager.updateResource( DownloadManager.getVoicesResourceForLocale(ApplicationSettings.locale)) } } // download words.rcc if needed if(ApplicationSettings.wordset != "") { // we want to use the external dataset, it is either in // words/words.rcc or full-${CA}.rcc if(DownloadManager.isDataRegistered("words")) { // we either have it, we try to update in the background // or we are downloading it if(DownloadManager.haveLocalResource(wordset)) DownloadManager.updateResource(wordset) } else { // download automatically if automatic download else ask for download if(isAutomaticDownloadsEnabled) { var prevAutomaticDownload = ApplicationSettings.isAutomaticDownloadsEnabled ApplicationSettings.isAutomaticDownloadsEnabled = true; DownloadManager.updateResource(wordset); ApplicationSettings.isAutomaticDownloadsEnabled = prevAutomaticDownload } else { Core.showMessageDialog(main, qsTr("The images for several activities are not yet installed. ") + qsTr("Do you want to download them now?"), qsTr("Yes"), function() { if (DownloadManager.downloadResource(wordset)) var downloadDialog = Core.showDownloadDialog(pageView.currentItem, {}); }, qsTr("No"), function() { ApplicationSettings.wordset = '' }, null ); } } } } ListModel { id: fonts Component.onCompleted: { var systemFonts = Qt.fontFamilies(); var rccFonts = ApplicationInfo.getFontsFromRcc(); // Remove explicitly all *symbol* and *ding* fonts var excludedFonts = ApplicationInfo.getSystemExcludedFonts(); excludedFonts.push("ding"); excludedFonts.push("symbol"); // first display fonts from rcc for(var i = 0 ; i < rccFonts.length ; ++ i) { // Append fonts from resources fonts.append({ "text": rccFonts[i], "isLocalResource": true }); } for(var i = 0 ; i < systemFonts.length ; ++ i) { var isExcluded = false; var systemFont = systemFonts[i].toLowerCase(); // Remove symbol fonts for(var j = 0 ; j < excludedFonts.length ; ++ j) { if(systemFont.indexOf(excludedFonts[j].toLowerCase()) != -1) { isExcluded = true; break; } } // Remove fonts from rcc (if you have a default font from rcc, Qt will add it to systemFonts) for(var j = 0 ; j < rccFonts.length ; ++ j) { if(rccFonts[j].toLowerCase().indexOf(systemFont) != -1) { isExcluded = true; break; } } // Finally, we know if we add this font or not if(!isExcluded) { fonts.append({ "text": systemFonts[i], "isLocalResource": false }); } } } } - property variant fontCapitalizationModel: [ + property var fontCapitalizationModel: [ { text: qsTr("Mixed case (default)"), value: Font.MixedCase }, { text: qsTr("All uppercase"), value: Font.AllUppercase }, { text: qsTr("All lowercase"), value: Font.AllLowercase } ] function hasConfigChanged() { return (ApplicationSettings.locale !== dialogConfig.languages[languageBox.currentIndex].locale || (ApplicationSettings.sectionVisible != sectionVisible) || (ApplicationSettings.wordset != wordset) || (ApplicationSettings.font != fonts.get(fontBox.currentIndex).text) || (ApplicationSettings.isEmbeddedFont != fonts.get(fontBox.currentIndex).isLocalResource) || (ApplicationSettings.isEmbeddedFont != fonts.get(fontBox.currentIndex).isLocalResource) || (ApplicationSettings.fontCapitalization != fontCapitalizationModel[(fontcapitalizationBox.currentIndex)].value) || (ApplicationSettings.fontLetterSpacing != fontLetterSpacing) || (ApplicationSettings.isAudioVoicesEnabled != isAudioVoicesEnabled) || (ApplicationSettings.isAudioEffectsEnabled != isAudioEffectsEnabled) || (ApplicationSettings.isFullscreen != isFullscreen) || (ApplicationSettings.isVirtualKeyboard != isVirtualKeyboard) || (ApplicationSettings.isAutomaticDownloadsEnabled != isAutomaticDownloadsEnabled) || (ApplicationSettings.baseFontSize != baseFontSize) || (ApplicationSettings.showLockedActivities != showLockedActivities) ); } } diff --git a/src/activities/menu/Menu.qml b/src/activities/menu/Menu.qml index ab87a6829..e9cfc569c 100644 --- a/src/activities/menu/Menu.qml +++ b/src/activities/menu/Menu.qml @@ -1,707 +1,707 @@ /* GCompris - Menu.qml * * Copyright (C) 2014 Bruno Coudoin * * Authors: * Bruno Coudoin (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import "../../core" import GCompris 1.0 import QtGraphicalEffects 1.0 import "qrc:/gcompris/src/core/core.js" as Core import QtQuick.Controls 1.5 import QtQuick.Controls.Styles 1.4 /** * GCompris' top level menu screen. * * Displays a grid of available activities divided subdivided in activity * categories/sections. * * The visibility of the section row is toggled by the setting * ApplicationSettings.sectionVisible. * * The list of available activities depends on the following settings: * * * ApplicationSettings.showLockedActivities * * ApplicationSettings.filterLevelMin * * ApplicationSettings.filterLevelMax * * @inherit QtQuick.Item */ ActivityBase { id: activity focus: true activityInfo: ActivityInfoTree.rootMenu onBack: { pageView.pop(to); // Restore focus that has been taken by the loaded activity if(pageView.currentItem == activity) focus = true; } onHome: { if(pageView.depth === 1 && !ApplicationSettings.isKioskMode) { Core.quit(main); } else { pageView.pop(); // Restore focus that has been taken by the loaded activity if(pageView.currentItem == activity) focus = true; } } onDisplayDialog: pageView.push(dialog) onDisplayDialogs: { var toPush = new Array(); for (var i = 0; i < dialogs.length; i++) { toPush.push({item: dialogs[i]}); } pageView.push(toPush); } // @cond INTERNAL_DOCS property string url: "qrc:/gcompris/src/activities/menu/resource/" property string inputText: "" - property variant sections: [ + property var sections: [ { icon: activity.url + "all.svg", tag: "favorite" }, { icon: activity.url + "computer.svg", tag: "computer" }, { icon: activity.url + "discovery.svg", tag: "discovery" }, { icon: activity.url + "experience.svg", tag: "experiment" }, { icon: activity.url + "fun.svg", tag: "fun" }, { icon: activity.url + "math.svg", tag: "math" }, { icon: activity.url + "puzzle.svg", tag: "puzzle" }, { icon: activity.url + "reading.svg", tag: "reading" }, { icon: activity.url + "strategy.svg", tag: "strategy" }, { icon: activity.url + "search-icon.svg", tag: "search" } ] property string currentTag: sections[0].tag /// @endcond pageComponent: Image { id: background source: activity.url + "background.svg" sourceSize.width: Math.max(parent.width, parent.height) height: main.height fillMode: Image.PreserveAspectCrop Timer { // triggered once at startup to populate the keyboard id: keyboardFiller interval: 1000; running: true; onTriggered: { keyboard.populate(); } } function loadActivity() { // @TODO init of item would be better in setsource but it crashes on Qt5.6 // https://bugreports.qt.io/browse/QTBUG-49793 activityLoader.item.audioVoices = audioVoices activityLoader.item.audioEffects = audioEffects activityLoader.item.loading = loading //take the focus away from textField before starting an activity searchTextField.focus = false pageView.push(activityLoader.item) } Loader { id: activityLoader asynchronous: true onStatusChanged: { if (status == Loader.Loading) { loading.start(); } else if (status == Loader.Ready) { loading.stop(); loadActivity(); } else if (status == Loader.Error) loading.stop(); } } // Filters property bool horizontal: main.width > main.height property int sectionIconWidth: { if(horizontal) return Math.min(100 * ApplicationInfo.ratio, main.width / (sections.length + 1)) else if(activity.currentTag === "search" && ApplicationSettings.isVirtualKeyboard) return Math.min(100 * ApplicationInfo.ratio, (background.height - (bar.height+keyboard.height)) / (sections.length + 1)) else return Math.min(100 * ApplicationInfo.ratio, (background.height - bar.height) / (sections.length + 1)) } property int sectionIconHeight: sectionIconWidth property int sectionCellWidth: sectionIconWidth * 1.1 property int sectionCellHeight: sectionIconHeight * 1.1 property var currentActiveGrid: activitiesGrid property bool keyboardMode: false Keys.onPressed: { // Ctrl-modifiers should never be handled by the search-field if (event.modifiers === Qt.ControlModifier) { if (event.key === Qt.Key_S) { // Ctrl+S toggle show / hide section ApplicationSettings.sectionVisible = !ApplicationSettings.sectionVisible } } else if(currentTag === "search") { // forward to the virtual keyboard the pressed keys if(event.key == Qt.Key_Backspace) keyboard.keypress(keyboard.backspace); else keyboard.keypress(event.text); } else if(event.key === Qt.Key_Space && currentActiveGrid.currentItem) { currentActiveGrid.currentItem.selectCurrentItem() } } Keys.onReleased: { keyboardMode = true event.accepted = false } Keys.onTabPressed: currentActiveGrid = ((currentActiveGrid == activitiesGrid) ? section : activitiesGrid); Keys.onEnterPressed: if(currentActiveGrid.currentItem) currentActiveGrid.currentItem.selectCurrentItem(); Keys.onReturnPressed: if(currentActiveGrid.currentItem) currentActiveGrid.currentItem.selectCurrentItem(); Keys.onRightPressed: if(currentActiveGrid.currentItem) currentActiveGrid.moveCurrentIndexRight(); Keys.onLeftPressed: if(currentActiveGrid.currentItem) currentActiveGrid.moveCurrentIndexLeft(); Keys.onDownPressed: if(currentActiveGrid.currentItem && !currentActiveGrid.atYEnd) currentActiveGrid.moveCurrentIndexDown(); Keys.onUpPressed: if(currentActiveGrid.currentItem && !currentActiveGrid.atYBeginning) currentActiveGrid.moveCurrentIndexUp(); GridView { id: section model: sections width: horizontal ? main.width : sectionCellWidth height: { if(horizontal) return sectionCellHeight else if(activity.currentTag === "search" && ApplicationSettings.isVirtualKeyboard) return sectionCellHeight * (sections.length+1) else return main.height - bar.height } x: ApplicationSettings.sectionVisible ? section.initialX : -sectionCellWidth y: ApplicationSettings.sectionVisible ? section.initialY : -sectionCellHeight cellWidth: sectionCellWidth cellHeight: sectionCellHeight interactive: false keyNavigationWraps: true property int initialX: 4 property int initialY: 4 Component { id: sectionDelegate Item { id: backgroundSection width: sectionCellWidth height: sectionCellHeight Image { source: modelData.icon sourceSize.height: sectionIconHeight anchors.margins: 5 anchors.horizontalCenter: parent.horizontalCenter } ParticleSystemStarLoader { id: particles anchors.fill: backgroundSection clip: false } MouseArea { anchors.fill: backgroundSection onClicked: { selectCurrentItem() } } function selectCurrentItem() { section.currentIndex = index activity.currentTag = modelData.tag particles.burst(10) if(modelData.tag === "search") { ActivityInfoTree.filterBySearch(searchTextField.text); } else { ActivityInfoTree.filterByTag(modelData.tag) ActivityInfoTree.filterLockedActivities() ActivityInfoTree.filterEnabledActivities() } } } } delegate: sectionDelegate highlight: Item { width: sectionCellWidth height: sectionCellHeight Rectangle { anchors.fill: parent color: "#5AFFFFFF" } Image { source: "qrc:/gcompris/src/core/resource/button.svg" anchors.fill: parent } Behavior on x { SpringAnimation { spring: 2; damping: 0.2 } } Behavior on y { SpringAnimation { spring: 2; damping: 0.2 } } } } // Activities property int iconWidth: 120 * ApplicationInfo.ratio property int iconHeight: 120 * ApplicationInfo.ratio property int activityCellWidth: horizontal ? background.width / Math.floor(background.width / iconWidth) : (background.width - section.width) / Math.floor((background.width - section.width) / iconWidth) property int activityCellHeight: iconHeight * 1.7 Loader { id: warningOverlay anchors { top: horizontal ? section.bottom : parent.top bottom: parent.bottom left: horizontal ? parent.left : section.right right: parent.right margins: 4 } active: (ActivityInfoTree.menuTree.length === 0) && (currentTag === "favorite") sourceComponent: Item { anchors.fill: parent GCText { id: instructionTxt fontSize: smallSize y: height * 0.2 x: (parent.width - width) / 2 z: 2 width: parent.width * 0.6 horizontalAlignment: Text.AlignHCenter wrapMode: Text.WordWrap font.weight: Font.DemiBold color: 'white' text: qsTr("Put your favorite activities here by selecting the " + "sun at the top right of that activity.") } Rectangle { anchors.fill: instructionTxt anchors.margins: -6 z: 1 opacity: 0.5 radius: 10 border.width: 2 border.color: "black" gradient: Gradient { GradientStop { position: 0.0; color: "#000" } GradientStop { position: 0.9; color: "#666" } GradientStop { position: 1.0; color: "#AAA" } } } } } GridView { id: activitiesGrid anchors { top: { if(activity.currentTag === "search") return searchBar.bottom else return horizontal ? section.bottom : parent.top } bottom: bar.top left: horizontal ? parent.left : section.right margins: 4 } width: background.width cellWidth: activityCellWidth cellHeight: activityCellHeight clip: true model: ActivityInfoTree.menuTree keyNavigationWraps: true property int spacing: 10 delegate: Item { id: delegateItem width: activityCellWidth - activitiesGrid.spacing height: activityCellHeight - activitiesGrid.spacing Rectangle { id: activityBackground width: activityCellWidth - activitiesGrid.spacing height: activityCellHeight - activitiesGrid.spacing anchors.horizontalCenter: parent.horizontalCenter color: "white" opacity: 0.5 } Image { source: "qrc:/gcompris/src/activities/" + icon; anchors.top: activityBackground.top anchors.horizontalCenter: parent.horizontalCenter sourceSize.height: iconHeight anchors.margins: 5 Image { source: "qrc:/gcompris/src/core/resource/difficulty" + ActivityInfoTree.menuTree[index].difficulty + ".svg"; anchors.top: parent.top sourceSize.width: iconWidth * 0.15 x: 5 } Image { anchors { horizontalCenter: parent.horizontalCenter top: parent.top rightMargin: 4 } source: demo || !ApplicationSettings.isDemoMode ? "" : activity.url + "lock.svg" sourceSize.width: 30 * ApplicationInfo.ratio } Image { anchors { left: parent.left bottom: parent.bottom } source: ActivityInfoTree.menuTree[index].createdInVersion == ApplicationInfo.GCVersionCode ? activity.url + "new.svg" : "" sourceSize.width: 30 * ApplicationInfo.ratio } GCText { id: title anchors.top: parent.bottom anchors.horizontalCenter: parent.horizontalCenter horizontalAlignment: Text.AlignHCenter width: activityBackground.width fontSizeMode: Text.Fit minimumPointSize: 7 fontSize: regularSize elide: Text.ElideRight maximumLineCount: 2 wrapMode: Text.WordWrap text: ActivityInfoTree.menuTree[index].title } // If we have enough room at the bottom display the description GCText { id: description visible: delegateItem.height - (title.y + title.height) > description.height ? 1 : 0 anchors.top: title.bottom anchors.horizontalCenter: parent.horizontalCenter horizontalAlignment: Text.AlignHCenter width: activityBackground.width fontSizeMode: Text.Fit minimumPointSize: 7 fontSize: regularSize elide: Text.ElideRight maximumLineCount: 3 wrapMode: Text.WordWrap text: ActivityInfoTree.menuTree[index].description } } ParticleSystemStarLoader { id: particles anchors.fill: activityBackground } MouseArea { anchors.fill: activityBackground onClicked: selectCurrentItem() } Image { source: activity.url + (favorite ? "all.svg" : "all_disabled.svg"); anchors { top: parent.top right: parent.right rightMargin: 4 * ApplicationInfo.ratio } sourceSize.width: iconWidth * 0.25 visible: ApplicationSettings.sectionVisible MouseArea { anchors.fill: parent onClicked: favorite = !favorite } } function selectCurrentItem() { if(pageView.busy) return particles.burst(50) ActivityInfoTree.currentActivity = ActivityInfoTree.menuTree[index] activityLoader.setSource("qrc:/gcompris/src/activities/" + ActivityInfoTree.menuTree[index].name, { 'menu': activity, 'activityInfo': ActivityInfoTree.currentActivity }) if (activityLoader.status == Loader.Ready) loadActivity() } } highlight: Rectangle { width: activityCellWidth - activitiesGrid.spacing height: activityCellHeight - activitiesGrid.spacing color: "#AAFFFFFF" border.width: 3 border.color: "black" visible: background.keyboardMode Behavior on x { SpringAnimation { spring: 2; damping: 0.2 } } Behavior on y { SpringAnimation { spring: 2; damping: 0.2 } } } Rectangle { id: activitiesMask visible: false anchors.fill: activitiesGrid gradient: Gradient { GradientStop { position: 0.0; color: "#FFFFFFFF" } GradientStop { position: 0.92; color: "#FFFFFFFF" } GradientStop { position: 0.96; color: "#00FFFFFF"} } } layer.enabled: ApplicationInfo.useOpenGL layer.effect: OpacityMask { id: activitiesOpacity source: activitiesGrid maskSource: activitiesMask anchors.fill: activitiesGrid } } Rectangle { id: searchBar width: horizontal ? parent.width/2 : parent.width - (section.width+10) height: searchTextField.height visible: activity.currentTag === "search" anchors { top: horizontal ? section.bottom : parent.top left: horizontal ? undefined : section.right } anchors.topMargin: horizontal ? 0 : 4 anchors.bottomMargin: horizontal ? 0 : 4 anchors.horizontalCenter: horizontal ? parent.horizontalCenter : undefined opacity: 0.5 radius: 10 border.width: 2 border.color: "black" gradient: Gradient { GradientStop { position: 0.3; color: "#000" } GradientStop { position: 0.9; color: "#666" } GradientStop { position: 1.0; color: "#AAA" } } Connections { // On mobile with GCompris' virtual keyboard activated: // Force invisibility of Androids virtual keyboard: target: (ApplicationInfo.isMobile && activity.currentTag === "search" && ApplicationSettings.isVirtualKeyboard) ? Qt.inputMethod : null onVisibleChanged: { if (ApplicationSettings.isVirtualKeyboard && visible) Qt.inputMethod.hide(); } onAnimatingChanged: { // note: seems to be never fired! if (ApplicationSettings.isVirtualKeyboard && Qt.inputMethod.visible) Qt.inputMethod.hide(); } } Connections { target: activity onCurrentTagChanged: { if (activity.currentTag === 'search') { searchTextField.focus = true; } else activity.focus = true; } } TextField { id: searchTextField width: parent.width text: activity.inputText textColor: "black" font.pointSize: 16 font.bold: true horizontalAlignment: TextInput.AlignHCenter verticalAlignment: TextInput.AlignVCenter font.family: GCSingletonFontLoader.fontLoader.name inputMethodHints: Qt.ImhNoPredictiveText // Note: we give focus to the textfield also in case // isMobile && !ApplicationSettings.isVirtualKeyboard // in conjunction with auto-hiding the inputMethod to always get // an input-cursor: activeFocusOnPress: true //ApplicationInfo.isMobile ? !ApplicationSettings.isVirtualKeyboard : true Keys.onReturnPressed: { if (ApplicationInfo.isMobile && !ApplicationSettings.isVirtualKeyboard) Qt.inputMethod.hide(); activity.focus = true; } onEditingFinished: { if (ApplicationInfo.isMobile && !ApplicationSettings.isVirtualKeyboard) Qt.inputMethod.hide(); activity.focus = true; } style: TextFieldStyle { placeholderTextColor: "black" } placeholderText: qsTr("Search specific activities") onTextChanged: ActivityInfoTree.filterBySearch(searchTextField.text); } } VirtualKeyboard { id: keyboard readonly property var letter: ActivityInfoTree.characters width: parent.width visible: activity.currentTag === "search" && ApplicationSettings.isVirtualKeyboard anchors.bottom: parent.bottom anchors.horizontalCenter: parent.horizontalCenter onKeypress: { if(text == keyboard.backspace) { searchTextField.text = searchTextField.text.slice(0, -1); } else if(text == keyboard.space) { searchTextField.text = searchTextField.text.concat(" "); } else { searchTextField.text = searchTextField.text.concat(text); } } function populate() { var tmplayout = []; var row = 0; var offset = 0; var cols; while(offset < letter.length-1) { if(letter.length <= 100) { cols = Math.ceil((letter.length-offset) / (3 - row)); } else { cols = background.horizontal ? (Math.ceil((letter.length-offset) / (15 - row))) :(Math.ceil((letter.length-offset) / (22 - row))) if(row == 0) { tmplayout[row] = new Array(); tmplayout[row].push({ label: keyboard.backspace }); tmplayout[row].push({ label: keyboard.space }); row ++; } } tmplayout[row] = new Array(); for (var j = 0; j < cols; j++) tmplayout[row][j] = { label: letter[j+offset] }; offset += j; row ++; } if(letter.length <= 100) { tmplayout[0].push({ label: keyboard.space }); tmplayout[row-1].push({ label: keyboard.backspace }); } keyboard.layout = tmplayout } } Bar { id: bar // No exit button on mobile, UI Guidelines prohibits it content: BarEnumContent { value: help | config | about | (ApplicationInfo.isMobile ? 0 : exit) } anchors.bottom: keyboard.visible ? keyboard.top : parent.bottom onAboutClicked: { searchTextField.focus = false displayDialog(dialogAbout) } onHelpClicked: { searchTextField.focus = false displayDialog(dialogHelp) } onConfigClicked: { searchTextField.focus = false dialogActivityConfig.active = true dialogActivityConfig.loader.item.loadFromConfig() displayDialog(dialogActivityConfig) } } } DialogAbout { id: dialogAbout onClose: home() } DialogHelp { id: dialogHelp onClose: home() activityInfo: ActivityInfoTree.rootMenu } DialogActivityConfig { id: dialogActivityConfig currentActivity: activity content: Component { ConfigurationItem { id: configItem width: dialogActivityConfig.width - 50 * ApplicationInfo.ratio } } onSaveData: { dialogActivityConfig.configItem.save(); } onClose: { if(activity.currentTag != "search") { ActivityInfoTree.filterByTag(activity.currentTag) ActivityInfoTree.filterLockedActivities() ActivityInfoTree.filterEnabledActivities() } else ActivityInfoTree.filterBySearch(activity.inputText); home() } } } diff --git a/src/activities/money/MoneyCore.qml b/src/activities/money/MoneyCore.qml index 609ed3602..00fa20b43 100644 --- a/src/activities/money/MoneyCore.qml +++ b/src/activities/money/MoneyCore.qml @@ -1,310 +1,310 @@ /* GCompris - MoneyCore.qml * * Copyright (C) 2014 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Bruno Coudoin (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import "../../core" import "money.js" as Activity ActivityBase { id: activity onStart: focus = true onStop: {} - property variant dataset + property var dataset pageComponent: Image { id: background anchors.fill: parent source: Activity.url + "/background.svg" sourceSize.width: parent.width signal start signal stop Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } // Add here the QML items you need to access in javascript QtObject { id: items property Item main: activity.main property alias background: background property GCAudio audioEffects: activity.audioEffects property alias answerModel: answerModel property alias pocketModel: pocketModel property alias store: store property alias instructions: instructions property alias tux: tux property alias tuxMoney: tuxMoney property alias bar: bar property alias bonus: bonus } onStart: { Activity.start(items, dataset) } onStop: { Activity.stop() } Column { id: column spacing: 10 x: parent.width * 0.05 y: parent.height * 0.05 width: parent.width * 0.9 property int nbColumns: 5 property int nbLines: 2 property int itemWidth: Math.min(width / nbColumns - 10 - 10 / nbColumns, parent.height * 0.4 / nbLines - 10 - 10 / nbLines) property int itemHeight: itemWidth * 0.59 // === The Answer Area === Rectangle { id: answerArea height: (column.itemHeight + 10) * column.nbLines width: column.width color: "#55333333" border.color: "black" border.width: 2 radius: 5 Flow { anchors.topMargin: 4 anchors.bottomMargin: 4 anchors.leftMargin: 10 anchors.rightMargin: 10 anchors.fill: parent spacing: 10 add: Transition { NumberAnimation { properties: "x" from: parent.width * 0.05 easing.type: Easing.InOutQuad } } move: Transition { NumberAnimation { properties: "x,y" easing.type: Easing.InOutQuad } } Repeater { id: answer model: ListModel { id: answerModel } Image { source: Activity.url + img sourceSize.height: column.itemHeight height: column.itemHeight MultiPointTouchArea { anchors.fill: parent onReleased: Activity.unpay(index) } } } } } // === The Store Area === property int nbStoreColumns: activity.dataset === "BACK_WITHOUT_CENTS" || activity.dataset === "BACK_WITH_CENTS" ? store.model.length + 1 : store.model.length //tempSpace is a workaround to replace instructionsArea.realHeight that is freezing with Qt-5.9.1 property int tempSpace: bar.level === 1 ? 140 + column.spacing : 0 property int itemStoreWidth: Math.min((column.width - storeAreaFlow.spacing * nbStoreColumns) / nbStoreColumns, (parent.height - answerArea.height - pocketArea.height - bar.height) * 0.8) - tempSpace property int itemStoreHeight: itemStoreWidth Rectangle { id: storeArea height: (column.itemStoreHeight + 10) width: column.width color: "#55333333" border.color: "black" border.width: 2 radius: 5 Flow { id: storeAreaFlow anchors.topMargin: 4 anchors.bottomMargin: 4 anchors.leftMargin: 20 anchors.rightMargin: 20 anchors.fill: parent spacing: 40 add: Transition { NumberAnimation { properties: "x" from: parent.width * 0.05 duration: 300 } } Image { id: tux visible: activity.dataset === "BACK_WITHOUT_CENTS" || activity.dataset === "BACK_WITH_CENTS" source: Activity.url + "/tux.svg" sourceSize.height: column.itemStoreHeight sourceSize.width: column.itemStoreHeight Repeater { id: tuxMoney Image { source: Activity.url + modelData.img sourceSize.height: column.itemStoreHeight * 0.4 x: tux.x + index * 20 y: tux.y + tux.height / 2 + index * 20 } } } Repeater { id: store Image { source: Activity.url + modelData.img sourceSize.height: column.itemStoreHeight sourceSize.width: column.itemStoreHeight GCText { text: modelData.price fontSize: 16 font.weight: Font.DemiBold style: Text.Outline styleColor: "black" color: "white" anchors.horizontalCenter: parent.horizontalCenter anchors.top: parent.top anchors.topMargin: index % 2 == 0 ? 0 : parent.height - height } } } } } // == The instructions Area == Rectangle { id: instructionsArea height: instructions.height width: column.width color: "#55333333" border.color: "black" border.width: 2 radius: 5 anchors.topMargin: 4 anchors.bottomMargin: 4 anchors.leftMargin: 10 anchors.rightMargin: 10 visible: bar.level === 1 property int realHeight: bar.level === 1 ? height + column.spacing : 0 GCText { id: instructions horizontalAlignment: Text.AlignHCenter width: column.width height: column.height / 6 wrapMode: Text.WordWrap fontSizeMode: Text.Fit } } // === The Pocket Area === Rectangle { id: pocketArea height: (column.itemHeight + 10) * column.nbLines width: column.width color: "#661111AA" border.color: "black" border.width: 2 radius: 5 Flow { anchors.topMargin: 4 anchors.bottomMargin: 4 anchors.leftMargin: 10 anchors.rightMargin: 10 anchors.fill: parent spacing: 10 add: Transition { NumberAnimation { properties: "x" from: parent.width * 0.05 easing.type: Easing.InOutQuad } } move: Transition { NumberAnimation { properties: "x,y" easing.type: Easing.InOutQuad } } Repeater { id: pocket model: ListModel { id: pocketModel } Image { source: Activity.url + img sourceSize.height: column.itemHeight height: column.itemHeight MultiPointTouchArea { anchors.fill: parent onReleased: Activity.pay(index) } } } } } } DialogHelp { id: dialogHelp onClose: home() } Bar { id: bar content: BarEnumContent { value: help | home | level } onHelpClicked: { displayDialog(dialogHelp) } onPreviousLevelClicked: Activity.previousLevel() onNextLevelClicked: Activity.nextLevel() onHomeClicked: activity.home() } Bonus { id: bonus Component.onCompleted: win.connect(Activity.nextLevel) } } } diff --git a/src/activities/paintings/resource/board/board10_0.qml b/src/activities/paintings/resource/board/board10_0.qml index 6cbbdf588..95b641a1b 100644 --- a/src/activities/paintings/resource/board/board10_0.qml +++ b/src/activities/paintings/resource/board/board10_0.qml @@ -1,134 +1,134 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Katsushika Hokusai, Viewing Sunset over the Ryogoku Bridge from the Ommaya Embankment - 1830") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/HokusaiBridge_e4.png", "x" : "0.869", "y" : "0.798" }, { "pixmapfile" : "image/HokusaiBridge_d4.png", "x" : "0.687", "y" : "0.798" }, { "pixmapfile" : "image/HokusaiBridge_c4.png", "x" : "0.497", "y" : "0.819" }, { "pixmapfile" : "image/HokusaiBridge_b4.png", "x" : "0.311", "y" : "0.819" }, { "pixmapfile" : "image/HokusaiBridge_a4.png", "x" : "0.125", "y" : "0.798" }, { "pixmapfile" : "image/HokusaiBridge_e3.png", "x" : "0.869", "y" : "0.585" }, { "pixmapfile" : "image/HokusaiBridge_d3.png", "x" : "0.687", "y" : "0.607" }, { "pixmapfile" : "image/HokusaiBridge_c3.png", "x" : "0.479", "y" : "0.63" }, { "pixmapfile" : "image/HokusaiBridge_b3.png", "x" : "0.309", "y" : "0.609" }, { "pixmapfile" : "image/HokusaiBridge_a3.png", "x" : "0.145", "y" : "0.585" }, { "pixmapfile" : "image/HokusaiBridge_e2.png", "x" : "0.869", "y" : "0.388" }, { "pixmapfile" : "image/HokusaiBridge_d2.png", "x" : "0.687", "y" : "0.412" }, { "pixmapfile" : "image/HokusaiBridge_c2.png", "x" : "0.479", "y" : "0.39" }, { "pixmapfile" : "image/HokusaiBridge_b2.png", "x" : "0.291", "y" : "0.388" }, { "pixmapfile" : "image/HokusaiBridge_a2.png", "x" : "0.125", "y" : "0.388" }, { "pixmapfile" : "image/HokusaiBridge_e1.png", "x" : "0.869", "y" : "0.197" }, { "pixmapfile" : "image/HokusaiBridge_d1.png", "x" : "0.705", "y" : "0.197" }, { "pixmapfile" : "image/HokusaiBridge_c1.png", "x" : "0.517", "y" : "0.174" }, { "pixmapfile" : "image/HokusaiBridge_b1.png", "x" : "0.311", "y" : "0.197" }, { "pixmapfile" : "image/HokusaiBridge_a1.png", "x" : "0.125", "y" : "0.197" } ] } diff --git a/src/activities/paintings/resource/board/board11_0.qml b/src/activities/paintings/resource/board/board11_0.qml index e74e49f26..0348add88 100644 --- a/src/activities/paintings/resource/board/board11_0.qml +++ b/src/activities/paintings/resource/board/board11_0.qml @@ -1,159 +1,159 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Katsushika Hokusa, Poppies - 1833-1834") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/HokusaiPoppies_e5.png", "x" : "0.848", "y" : "0.825" }, { "pixmapfile" : "image/HokusaiPoppies_d5.png", "x" : "0.665", "y" : "0.825" }, { "pixmapfile" : "image/HokusaiPoppies_c5.png", "x" : "0.496", "y" : "0.842" }, { "pixmapfile" : "image/HokusaiPoppies_b5.png", "x" : "0.311", "y" : "0.842" }, { "pixmapfile" : "image/HokusaiPoppies_a5.png", "x" : "0.127", "y" : "0.825" }, { "pixmapfile" : "image/HokusaiPoppies_e4.png", "x" : "0.865", "y" : "0.671" }, { "pixmapfile" : "image/HokusaiPoppies_d4.png", "x" : "0.702", "y" : "0.671" }, { "pixmapfile" : "image/HokusaiPoppies_c4.png", "x" : "0.498", "y" : "0.673" }, { "pixmapfile" : "image/HokusaiPoppies_b4.png", "x" : "0.31", "y" : "0.689" }, { "pixmapfile" : "image/HokusaiPoppies_a4.png", "x" : "0.147", "y" : "0.654" }, { "pixmapfile" : "image/HokusaiPoppies_e3.png", "x" : "0.865", "y" : "0.515" }, { "pixmapfile" : "image/HokusaiPoppies_d3.png", "x" : "0.702", "y" : "0.515" }, { "pixmapfile" : "image/HokusaiPoppies_c3.png", "x" : "0.498", "y" : "0.496" }, { "pixmapfile" : "image/HokusaiPoppies_b3.png", "x" : "0.31", "y" : "0.498" }, { "pixmapfile" : "image/HokusaiPoppies_a3.png", "x" : "0.147", "y" : "0.496" }, { "pixmapfile" : "image/HokusaiPoppies_e2.png", "x" : "0.848", "y" : "0.34" }, { "pixmapfile" : "image/HokusaiPoppies_d2.png", "x" : "0.683", "y" : "0.34" }, { "pixmapfile" : "image/HokusaiPoppies_c2.png", "x" : "0.516", "y" : "0.323" }, { "pixmapfile" : "image/HokusaiPoppies_b2.png", "x" : "0.329", "y" : "0.305" }, { "pixmapfile" : "image/HokusaiPoppies_a2.png", "x" : "0.147", "y" : "0.34" }, { "pixmapfile" : "image/HokusaiPoppies_e1.png", "x" : "0.865", "y" : "0.169" }, { "pixmapfile" : "image/HokusaiPoppies_d1.png", "x" : "0.702", "y" : "0.169" }, { "pixmapfile" : "image/HokusaiPoppies_c1.png", "x" : "0.516", "y" : "0.15" }, { "pixmapfile" : "image/HokusaiPoppies_b1.png", "x" : "0.311", "y" : "0.15" }, { "pixmapfile" : "image/HokusaiPoppies_a1.png", "x" : "0.127", "y" : "0.169" } ] } diff --git a/src/activities/paintings/resource/board/board12_0.qml b/src/activities/paintings/resource/board/board12_0.qml index 3eceb49cb..318223b7f 100644 --- a/src/activities/paintings/resource/board/board12_0.qml +++ b/src/activities/paintings/resource/board/board12_0.qml @@ -1,159 +1,159 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Katsushika Hokusai, Kazusa sea Route - 1830.") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/KazusaSeaRoute_e5.png", "x" : "0.863", "y" : "0.842" }, { "pixmapfile" : "image/KazusaSeaRoute_d5.png", "x" : "0.693", "y" : "0.825" }, { "pixmapfile" : "image/KazusaSeaRoute_c5.png", "x" : "0.519", "y" : "0.842" }, { "pixmapfile" : "image/KazusaSeaRoute_b5.png", "x" : "0.323", "y" : "0.825" }, { "pixmapfile" : "image/KazusaSeaRoute_a5.png", "x" : "0.132", "y" : "0.825" }, { "pixmapfile" : "image/KazusaSeaRoute_e4.png", "x" : "0.863", "y" : "0.689" }, { "pixmapfile" : "image/KazusaSeaRoute_d4.png", "x" : "0.693", "y" : "0.671" }, { "pixmapfile" : "image/KazusaSeaRoute_c4.png", "x" : "0.499", "y" : "0.689" }, { "pixmapfile" : "image/KazusaSeaRoute_b4.png", "x" : "0.303", "y" : "0.654" }, { "pixmapfile" : "image/KazusaSeaRoute_a4.png", "x" : "0.132", "y" : "0.654" }, { "pixmapfile" : "image/KazusaSeaRoute_e3.png", "x" : "0.882", "y" : "0.498" }, { "pixmapfile" : "image/KazusaSeaRoute_d3.png", "x" : "0.713", "y" : "0.515" }, { "pixmapfile" : "image/KazusaSeaRoute_c3.png", "x" : "0.499", "y" : "0.515" }, { "pixmapfile" : "image/KazusaSeaRoute_b3.png", "x" : "0.303", "y" : "0.496" }, { "pixmapfile" : "image/KazusaSeaRoute_a3.png", "x" : "0.132", "y" : "0.48" }, { "pixmapfile" : "image/KazusaSeaRoute_e2.png", "x" : "0.882", "y" : "0.321" }, { "pixmapfile" : "image/KazusaSeaRoute_d2.png", "x" : "0.694", "y" : "0.34" }, { "pixmapfile" : "image/KazusaSeaRoute_c2.png", "x" : "0.499", "y" : "0.323" }, { "pixmapfile" : "image/KazusaSeaRoute_b2.png", "x" : "0.304", "y" : "0.323" }, { "pixmapfile" : "image/KazusaSeaRoute_a2.png", "x" : "0.113", "y" : "0.305" }, { "pixmapfile" : "image/KazusaSeaRoute_e1.png", "x" : "0.882", "y" : "0.169" }, { "pixmapfile" : "image/KazusaSeaRoute_d1.png", "x" : "0.713", "y" : "0.169" }, { "pixmapfile" : "image/KazusaSeaRoute_c1.png", "x" : "0.499", "y" : "0.15" }, { "pixmapfile" : "image/KazusaSeaRoute_b1.png", "x" : "0.303", "y" : "0.15" }, { "pixmapfile" : "image/KazusaSeaRoute_a1.png", "x" : "0.132", "y" : "0.15" } ] } diff --git a/src/activities/paintings/resource/board/board13_0.qml b/src/activities/paintings/resource/board/board13_0.qml index b26328d0d..781e2c6b8 100644 --- a/src/activities/paintings/resource/board/board13_0.qml +++ b/src/activities/paintings/resource/board/board13_0.qml @@ -1,95 +1,95 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property int numberOfSubLevel: 4 property string instruction: qsTr("Michelangelo, Pieta - 1499") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/Michelangelo_Pieta_c4.png", "x" : "0.696", "y" : "0.854" }, { "pixmapfile" : "image/Michelangelo_Pieta_b4.png", "x" : "0.474", "y" : "0.854" }, { "pixmapfile" : "image/Michelangelo_Pieta_a4.png", "x" : "0.275", "y" : "0.831" }, { "pixmapfile" : "image/Michelangelo_Pieta_c3.png", "x" : "0.719", "y" : "0.619" }, { "pixmapfile" : "image/Michelangelo_Pieta_b3.png", "x" : "0.521", "y" : "0.619" }, { "pixmapfile" : "image/Michelangelo_Pieta_a3.png", "x" : "0.298", "y" : "0.617" }, { "pixmapfile" : "image/Michelangelo_Pieta_c2.png", "x" : "0.696", "y" : "0.352" }, { "pixmapfile" : "image/Michelangelo_Pieta_b2.png", "x" : "0.474", "y" : "0.352" }, { "pixmapfile" : "image/Michelangelo_Pieta_a2.png", "x" : "0.275", "y" : "0.377" }, { "pixmapfile" : "image/Michelangelo_Pieta_c1.png", "x" : "0.696", "y" : "0.138" }, { "pixmapfile" : "image/Michelangelo_Pieta_b1.png", "x" : "0.497", "y" : "0.138" }, { "pixmapfile" : "image/Michelangelo_Pieta_a1.png", "x" : "0.298", "y" : "0.138" } ] } diff --git a/src/activities/paintings/resource/board/board14_0.qml b/src/activities/paintings/resource/board/board14_0.qml index dc7456004..dba96c6df 100644 --- a/src/activities/paintings/resource/board/board14_0.qml +++ b/src/activities/paintings/resource/board/board14_0.qml @@ -1,94 +1,94 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Leonardo da Vinci, Mona Lisa - 1503-19") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/MonaLisa_d3.png", "x" : "0.667", "y" : "0.782" }, { "pixmapfile" : "image/MonaLisa_c3.png", "x" : "0.568", "y" : "0.814" }, { "pixmapfile" : "image/MonaLisa_b3.png", "x" : "0.442", "y" : "0.814" }, { "pixmapfile" : "image/MonaLisa_a3.png", "x" : "0.328", "y" : "0.814" }, { "pixmapfile" : "image/MonaLisa_d2.png", "x" : "0.667", "y" : "0.497" }, { "pixmapfile" : "image/MonaLisa_c2.png", "x" : "0.568", "y" : "0.499" }, { "pixmapfile" : "image/MonaLisa_b2.png", "x" : "0.453", "y" : "0.499" }, { "pixmapfile" : "image/MonaLisa_a2.png", "x" : "0.34", "y" : "0.531" }, { "pixmapfile" : "image/MonaLisa_d1.png", "x" : "0.656", "y" : "0.214" }, { "pixmapfile" : "image/MonaLisa_c1.png", "x" : "0.556", "y" : "0.18" }, { "pixmapfile" : "image/MonaLisa_b1.png", "x" : "0.442", "y" : "0.18" }, { "pixmapfile" : "image/MonaLisa_a1.png", "x" : "0.328", "y" : "0.214" } ] } diff --git a/src/activities/paintings/resource/board/board15_0.qml b/src/activities/paintings/resource/board/board15_0.qml index e875eedb4..cf82edc30 100644 --- a/src/activities/paintings/resource/board/board15_0.qml +++ b/src/activities/paintings/resource/board/board15_0.qml @@ -1,79 +1,79 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Giovanni Bellini, La Pala di Pesaro - 1475-85") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/PalaDiPesaro_c3.png", "x" : "0.814", "y" : "0.705" }, { "pixmapfile" : "image/PalaDiPesaro_b3.png", "x" : "0.499", "y" : "0.727" }, { "pixmapfile" : "image/PalaDiPesaro_a3.png", "x" : "0.182", "y" : "0.705" }, { "pixmapfile" : "image/PalaDiPesaro_c2.png", "x" : "0.814", "y" : "0.474" }, { "pixmapfile" : "image/PalaDiPesaro_b2.png", "x" : "0.532", "y" : "0.498" }, { "pixmapfile" : "image/PalaDiPesaro_a2.png", "x" : "0.215", "y" : "0.474" }, { "pixmapfile" : "image/PalaDiPesaro_c1.png", "x" : "0.781", "y" : "0.264" }, { "pixmapfile" : "image/PalaDiPesaro_b1.png", "x" : "0.466", "y" : "0.264" }, { "pixmapfile" : "image/PalaDiPesaro_a1.png", "x" : "0.182", "y" : "0.264" } ] } diff --git a/src/activities/paintings/resource/board/board16_0.qml b/src/activities/paintings/resource/board/board16_0.qml index a4946586e..dbdae8b49 100644 --- a/src/activities/paintings/resource/board/board16_0.qml +++ b/src/activities/paintings/resource/board/board16_0.qml @@ -1,114 +1,114 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Albrecht Dürer, Lion - 1494") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/AlbrechtDurer_d4.png", "x" : "0.864", "y" : "0.831" }, { "pixmapfile" : "image/AlbrechtDurer_c4.png", "x" : "0.623", "y" : "0.831" }, { "pixmapfile" : "image/AlbrechtDurer_b4.png", "x" : "0.349", "y" : "0.854" }, { "pixmapfile" : "image/AlbrechtDurer_a4.png", "x" : "0.13", "y" : "0.831" }, { "pixmapfile" : "image/AlbrechtDurer_d3.png", "x" : "0.839", "y" : "0.617" }, { "pixmapfile" : "image/AlbrechtDurer_c3.png", "x" : "0.597", "y" : "0.594" }, { "pixmapfile" : "image/AlbrechtDurer_b3.png", "x" : "0.349", "y" : "0.643" }, { "pixmapfile" : "image/AlbrechtDurer_a3.png", "x" : "0.13", "y" : "0.617" }, { "pixmapfile" : "image/AlbrechtDurer_d2.png", "x" : "0.864", "y" : "0.4" }, { "pixmapfile" : "image/AlbrechtDurer_c2.png", "x" : "0.623", "y" : "0.376" }, { "pixmapfile" : "image/AlbrechtDurer_b2.png", "x" : "0.374", "y" : "0.4" }, { "pixmapfile" : "image/AlbrechtDurer_a2.png", "x" : "0.156", "y" : "0.377" }, { "pixmapfile" : "image/AlbrechtDurer_d1.png", "x" : "0.864", "y" : "0.163" }, { "pixmapfile" : "image/AlbrechtDurer_c1.png", "x" : "0.647", "y" : "0.163" }, { "pixmapfile" : "image/AlbrechtDurer_b1.png", "x" : "0.4", "y" : "0.163" }, { "pixmapfile" : "image/AlbrechtDurer_a1.png", "x" : "0.156", "y" : "0.138" } ] } diff --git a/src/activities/paintings/resource/board/board17_0.qml b/src/activities/paintings/resource/board/board17_0.qml index c84eb3023..e2098a757 100644 --- a/src/activities/paintings/resource/board/board17_0.qml +++ b/src/activities/paintings/resource/board/board17_0.qml @@ -1,114 +1,114 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Pieter Brugel, The Harvesters - 1565") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/PieterBruegel_d4.png", "x" : "0.859", "y" : "0.854" }, { "pixmapfile" : "image/PieterBruegel_c4.png", "x" : "0.622", "y" : "0.854" }, { "pixmapfile" : "image/PieterBruegel_b4.png", "x" : "0.353", "y" : "0.854" }, { "pixmapfile" : "image/PieterBruegel_a4.png", "x" : "0.137", "y" : "0.854" }, { "pixmapfile" : "image/PieterBruegel_d3.png", "x" : "0.835", "y" : "0.643" }, { "pixmapfile" : "image/PieterBruegel_c3.png", "x" : "0.621", "y" : "0.643" }, { "pixmapfile" : "image/PieterBruegel_b3.png", "x" : "0.402", "y" : "0.643" }, { "pixmapfile" : "image/PieterBruegel_a3.png", "x" : "0.162", "y" : "0.643" }, { "pixmapfile" : "image/PieterBruegel_d2.png", "x" : "0.835", "y" : "0.377" }, { "pixmapfile" : "image/PieterBruegel_c2.png", "x" : "0.621", "y" : "0.4" }, { "pixmapfile" : "image/PieterBruegel_b2.png", "x" : "0.377", "y" : "0.377" }, { "pixmapfile" : "image/PieterBruegel_a2.png", "x" : "0.137", "y" : "0.4" }, { "pixmapfile" : "image/PieterBruegel_d1.png", "x" : "0.835", "y" : "0.138" }, { "pixmapfile" : "image/PieterBruegel_c1.png", "x" : "0.621", "y" : "0.163" }, { "pixmapfile" : "image/PieterBruegel_b1.png", "x" : "0.402", "y" : "0.138" }, { "pixmapfile" : "image/PieterBruegel_a1.png", "x" : "0.162", "y" : "0.163" } ] } diff --git a/src/activities/paintings/resource/board/board18_0.qml b/src/activities/paintings/resource/board/board18_0.qml index a3affbbcb..40c5eb1c7 100644 --- a/src/activities/paintings/resource/board/board18_0.qml +++ b/src/activities/paintings/resource/board/board18_0.qml @@ -1,75 +1,75 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property int numberOfSubLevel: 1 property string instruction: qsTr("Pierre-Auguste Renoir, Girls At The Piano - 1892") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/renoir-filles_piano-8.png", "x" : "0.608", "y" : "0.799" }, { "pixmapfile" : "image/renoir-filles_piano-7.png", "x" : "0.387", "y" : "0.801" }, { "pixmapfile" : "image/renoir-filles_piano-6.png", "x" : "0.608", "y" : "0.593" }, { "pixmapfile" : "image/renoir-filles_piano-5.png", "x" : "0.387", "y" : "0.595" }, { "pixmapfile" : "image/renoir-filles_piano-4.png", "x" : "0.577", "y" : "0.36" }, { "pixmapfile" : "image/renoir-filles_piano-3.png", "x" : "0.356", "y" : "0.36" }, { "pixmapfile" : "image/renoir-filles_piano-2.png", "x" : "0.608", "y" : "0.125" }, { "pixmapfile" : "image/renoir-filles_piano-1.png", "x" : "0.387", "y" : "0.125" } ] } diff --git a/src/activities/paintings/resource/board/board19_0.qml b/src/activities/paintings/resource/board/board19_0.qml index 2cc76ee03..b6c7a8bf1 100644 --- a/src/activities/paintings/resource/board/board19_0.qml +++ b/src/activities/paintings/resource/board/board19_0.qml @@ -1,74 +1,74 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Wassily Kandinsky, Composition VIII - 1923") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/kandinky_8.png", "x" : "0.85", "y" : "0.618" }, { "pixmapfile" : "image/kandinky_7.png", "x" : "0.642", "y" : "0.618" }, { "pixmapfile" : "image/kandinky_6.png", "x" : "0.376", "y" : "0.673" }, { "pixmapfile" : "image/kandinky_5.png", "x" : "0.138", "y" : "0.673" }, { "pixmapfile" : "image/kandinky_4.png", "x" : "0.85", "y" : "0.228" }, { "pixmapfile" : "image/kandinky_3.png", "x" : "0.642", "y" : "0.228" }, { "pixmapfile" : "image/kandinky_2.png", "x" : "0.405", "y" : "0.283" }, { "pixmapfile" : "image/kandinky_1.png", "x" : "0.167", "y" : "0.283" } ] } diff --git a/src/activities/paintings/resource/board/board1_0.qml b/src/activities/paintings/resource/board/board1_0.qml index 09b35c33e..dd39f3f32 100644 --- a/src/activities/paintings/resource/board/board1_0.qml +++ b/src/activities/paintings/resource/board/board1_0.qml @@ -1,64 +1,64 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr(" Pierre-Auguste Renoir, Le Moulin de la Galette - 1876") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/renoir-moulin_de_la_galette-4.png", "x" : "0.226", "y" : "0.651" }, { "pixmapfile" : "image/renoir-moulin_de_la_galette-5.png", "x" : "0.504", "y" : "0.651" }, { "pixmapfile" : "image/renoir-moulin_de_la_galette-3.png", "x" : "0.782", "y" : "0.327" }, { "pixmapfile" : "image/renoir-moulin_de_la_galette-1.png", "x" : "0.255", "y" : "0.283" }, { "pixmapfile" : "image/renoir-moulin_de_la_galette-2.png", "x" : "0.533", "y" : "0.283" }, { "pixmapfile" : "image/renoir-moulin_de_la_galette-6.png", "x" : "0.781", "y" : "0.69" } ] } diff --git a/src/activities/paintings/resource/board/board20_0.qml b/src/activities/paintings/resource/board/board20_0.qml index 8f6d12404..5bd518f6b 100644 --- a/src/activities/paintings/resource/board/board20_0.qml +++ b/src/activities/paintings/resource/board/board20_0.qml @@ -1,64 +1,64 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Bazille, The Ramparts at Aigues-Mortes - 1867") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/bazille_rampart_4.jpg", "x" : "0.212", "y" : "0.634" }, { "pixmapfile" : "image/bazille_rampart_1.jpg", "x" : "0.212", "y" : "0.283" }, { "pixmapfile" : "image/bazille_rampart_3.jpg", "x" : "0.791", "y" : "0.283" }, { "pixmapfile" : "image/bazille_rampart_5.jpg", "x" : "0.501", "y" : "0.634" }, { "pixmapfile" : "image/bazille_rampart_2.jpg", "x" : "0.501", "y" : "0.283" }, { "pixmapfile" : "image/bazille_rampart_6.jpg", "x" : "0.791", "y" : "0.634" } ] } diff --git a/src/activities/paintings/resource/board/board21_0.qml b/src/activities/paintings/resource/board/board21_0.qml index 030c69a08..2aa471e30 100644 --- a/src/activities/paintings/resource/board/board21_0.qml +++ b/src/activities/paintings/resource/board/board21_0.qml @@ -1,64 +1,64 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Mary Cassatt, Summertime - 1894") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/cassat_summertime_2.jpg", "x" : "0.496", "y" : "0.244" }, { "pixmapfile" : "image/cassat_summertime_4.jpg", "x" : "0.211", "y" : "0.671" }, { "pixmapfile" : "image/cassat_summertime_6.jpg", "x" : "0.779", "y" : "0.673" }, { "pixmapfile" : "image/cassat_summertime_5.jpg", "x" : "0.496", "y" : "0.673" }, { "pixmapfile" : "image/cassat_summertime_1.jpg", "x" : "0.211", "y" : "0.244" }, { "pixmapfile" : "image/cassat_summertime_3.jpg", "x" : "0.779", "y" : "0.244" } ] } diff --git a/src/activities/paintings/resource/board/board22_0.qml b/src/activities/paintings/resource/board/board22_0.qml index 8716f6bbb..f26916873 100644 --- a/src/activities/paintings/resource/board/board22_0.qml +++ b/src/activities/paintings/resource/board/board22_0.qml @@ -1,64 +1,64 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Vincent Van Gogh, Village Street in Auvers - 1890") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/gogh_auvert_2.jpg", "x" : "0.489", "y" : "0.224" }, { "pixmapfile" : "image/gogh_auvert_6.jpg", "x" : "0.774", "y" : "0.681" }, { "pixmapfile" : "image/gogh_auvert_5.jpg", "x" : "0.489", "y" : "0.681" }, { "pixmapfile" : "image/gogh_auvert_1.jpg", "x" : "0.204", "y" : "0.224" }, { "pixmapfile" : "image/gogh_auvert_4.jpg", "x" : "0.204", "y" : "0.681" }, { "pixmapfile" : "image/gogh_auvert_3.jpg", "x" : "0.774", "y" : "0.224" } ] } diff --git a/src/activities/paintings/resource/board/board2_0.qml b/src/activities/paintings/resource/board/board2_0.qml index 90246c05c..f59342c11 100644 --- a/src/activities/paintings/resource/board/board2_0.qml +++ b/src/activities/paintings/resource/board/board2_0.qml @@ -1,64 +1,64 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Giuseppe Arcimboldo, Spring - 1573") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/Arcimboldo_Spring_b3.png", "x" : "0.615", "y" : "0.762" }, { "pixmapfile" : "image/Arcimboldo_Spring_a3.png", "x" : "0.405", "y" : "0.735" }, { "pixmapfile" : "image/Arcimboldo_Spring_b2.png", "x" : "0.59", "y" : "0.498" }, { "pixmapfile" : "image/Arcimboldo_Spring_a2.png", "x" : "0.379", "y" : "0.497" }, { "pixmapfile" : "image/Arcimboldo_Spring_b1.png", "x" : "0.59", "y" : "0.231" }, { "pixmapfile" : "image/Arcimboldo_Spring_a1.png", "x" : "0.379", "y" : "0.259" } ] } diff --git a/src/activities/paintings/resource/board/board3_0.qml b/src/activities/paintings/resource/board/board3_0.qml index 943e779b6..827dbdcc8 100644 --- a/src/activities/paintings/resource/board/board3_0.qml +++ b/src/activities/paintings/resource/board/board3_0.qml @@ -1,79 +1,79 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Giuseppe Arcimboldo, The Librarian - 1566") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/Arcimboldo_Librarian_c3.png", "x" : "0.625", "y" : "0.735" }, { "pixmapfile" : "image/Arcimboldo_Librarian_b3.png", "x" : "0.498", "y" : "0.735" }, { "pixmapfile" : "image/Arcimboldo_Librarian_a3.png", "x" : "0.372", "y" : "0.762" }, { "pixmapfile" : "image/Arcimboldo_Librarian_c2.png", "x" : "0.638", "y" : "0.47" }, { "pixmapfile" : "image/Arcimboldo_Librarian_b2.png", "x" : "0.499", "y" : "0.497" }, { "pixmapfile" : "image/Arcimboldo_Librarian_a2.png", "x" : "0.357", "y" : "0.498" }, { "pixmapfile" : "image/Arcimboldo_Librarian_c1.png", "x" : "0.625", "y" : "0.231" }, { "pixmapfile" : "image/Arcimboldo_Librarian_b1.png", "x" : "0.498", "y" : "0.259" }, { "pixmapfile" : "image/Arcimboldo_Librarian_a1.png", "x" : "0.373", "y" : "0.231" } ] } diff --git a/src/activities/paintings/resource/board/board4_0.qml b/src/activities/paintings/resource/board/board4_0.qml index 84ab88540..3753c5b0e 100644 --- a/src/activities/paintings/resource/board/board4_0.qml +++ b/src/activities/paintings/resource/board/board4_0.qml @@ -1,64 +1,64 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Katsushika Hokusai, Oiran and Kamuro") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/HokusaiOiranKamuro_b3.png", "x" : "0.602", "y" : "0.752" }, { "pixmapfile" : "image/HokusaiOiranKamuro_a3.png", "x" : "0.416", "y" : "0.752" }, { "pixmapfile" : "image/HokusaiOiranKamuro_b2.png", "x" : "0.602", "y" : "0.497" }, { "pixmapfile" : "image/HokusaiOiranKamuro_a2.png", "x" : "0.416", "y" : "0.497" }, { "pixmapfile" : "image/HokusaiOiranKamuro_b1.png", "x" : "0.602", "y" : "0.242" }, { "pixmapfile" : "image/HokusaiOiranKamuro_a1.png", "x" : "0.416", "y" : "0.242" } ] } diff --git a/src/activities/paintings/resource/board/board5_0.qml b/src/activities/paintings/resource/board/board5_0.qml index b6f663489..1fd7b924d 100644 --- a/src/activities/paintings/resource/board/board5_0.qml +++ b/src/activities/paintings/resource/board/board5_0.qml @@ -1,79 +1,79 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Katsushika Hokusai, Woman holding a fan") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/HokusaiWomanHoldingFan_c3.png", "x" : "0.627", "y" : "0.752" }, { "pixmapfile" : "image/HokusaiWomanHoldingFan_b3.png", "x" : "0.484", "y" : "0.752" }, { "pixmapfile" : "image/HokusaiWomanHoldingFan_a3.png", "x" : "0.355", "y" : "0.782" }, { "pixmapfile" : "image/HokusaiWomanHoldingFan_c2.png", "x" : "0.64", "y" : "0.468" }, { "pixmapfile" : "image/HokusaiWomanHoldingFan_b2.png", "x" : "0.499", "y" : "0.497" }, { "pixmapfile" : "image/HokusaiWomanHoldingFan_a2.png", "x" : "0.355", "y" : "0.498" }, { "pixmapfile" : "image/HokusaiWomanHoldingFan_c1.png", "x" : "0.64", "y" : "0.212" }, { "pixmapfile" : "image/HokusaiWomanHoldingFan_b1.png", "x" : "0.499", "y" : "0.242" }, { "pixmapfile" : "image/HokusaiWomanHoldingFan_a1.png", "x" : "0.355", "y" : "0.212" } ] } diff --git a/src/activities/paintings/resource/board/board6_0.qml b/src/activities/paintings/resource/board/board6_0.qml index b52786aad..1f825029c 100644 --- a/src/activities/paintings/resource/board/board6_0.qml +++ b/src/activities/paintings/resource/board/board6_0.qml @@ -1,94 +1,94 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Katsushika Hokusai, Ejiri in Suruga Province - 1830-1833") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/EjiriSuruga_d3.png", "x" : "0.846", "y" : "0.752" }, { "pixmapfile" : "image/EjiriSuruga_c3.png", "x" : "0.618", "y" : "0.752" }, { "pixmapfile" : "image/EjiriSuruga_b3.png", "x" : "0.38", "y" : "0.752" }, { "pixmapfile" : "image/EjiriSuruga_a3.png", "x" : "0.174", "y" : "0.782" }, { "pixmapfile" : "image/EjiriSuruga_d2.png", "x" : "0.823", "y" : "0.497" }, { "pixmapfile" : "image/EjiriSuruga_c2.png", "x" : "0.616", "y" : "0.468" }, { "pixmapfile" : "image/EjiriSuruga_b2.png", "x" : "0.405", "y" : "0.468" }, { "pixmapfile" : "image/EjiriSuruga_a2.png", "x" : "0.174", "y" : "0.498" }, { "pixmapfile" : "image/EjiriSuruga_d1.png", "x" : "0.823", "y" : "0.242" }, { "pixmapfile" : "image/EjiriSuruga_c1.png", "x" : "0.616", "y" : "0.212" }, { "pixmapfile" : "image/EjiriSuruga_b1.png", "x" : "0.405", "y" : "0.212" }, { "pixmapfile" : "image/EjiriSuruga_a1.png", "x" : "0.174", "y" : "0.212" } ] } diff --git a/src/activities/paintings/resource/board/board7_0.qml b/src/activities/paintings/resource/board/board7_0.qml index 5bbf33568..47bb00748 100644 --- a/src/activities/paintings/resource/board/board7_0.qml +++ b/src/activities/paintings/resource/board/board7_0.qml @@ -1,94 +1,94 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Katsushika Hokusai, The Great Wave off Kanagawa - 1823-1829") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/GreatWave_d3.png", "x" : "0.847", "y" : "0.752" }, { "pixmapfile" : "image/GreatWave_c3.png", "x" : "0.64", "y" : "0.752" }, { "pixmapfile" : "image/GreatWave_b3.png", "x" : "0.404", "y" : "0.752" }, { "pixmapfile" : "image/GreatWave_a3.png", "x" : "0.172", "y" : "0.782" }, { "pixmapfile" : "image/GreatWave_d2.png", "x" : "0.847", "y" : "0.468" }, { "pixmapfile" : "image/GreatWave_c2.png", "x" : "0.64", "y" : "0.497" }, { "pixmapfile" : "image/GreatWave_b2.png", "x" : "0.404", "y" : "0.468" }, { "pixmapfile" : "image/GreatWave_a2.png", "x" : "0.172", "y" : "0.527" }, { "pixmapfile" : "image/GreatWave_d1.png", "x" : "0.847", "y" : "0.212" }, { "pixmapfile" : "image/GreatWave_c1.png", "x" : "0.617", "y" : "0.242" }, { "pixmapfile" : "image/GreatWave_b1.png", "x" : "0.355", "y" : "0.212" }, { "pixmapfile" : "image/GreatWave_a1.png", "x" : "0.147", "y" : "0.242" } ] } diff --git a/src/activities/paintings/resource/board/board8_0.qml b/src/activities/paintings/resource/board/board8_0.qml index 0b837f1fb..eca14f1c4 100644 --- a/src/activities/paintings/resource/board/board8_0.qml +++ b/src/activities/paintings/resource/board/board8_0.qml @@ -1,114 +1,114 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Utagawa Hiroshige, The Benzaiten Shrine at Inokashira in Snow - 1760-70") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/HiroshigeInokashiraSnow_d4.png", "x" : "0.841", "y" : "0.819" }, { "pixmapfile" : "image/HiroshigeInokashiraSnow_c4.png", "x" : "0.623", "y" : "0.798" }, { "pixmapfile" : "image/HiroshigeInokashiraSnow_b4.png", "x" : "0.374", "y" : "0.819" }, { "pixmapfile" : "image/HiroshigeInokashiraSnow_a4.png", "x" : "0.129", "y" : "0.819" }, { "pixmapfile" : "image/HiroshigeInokashiraSnow_d3.png", "x" : "0.866", "y" : "0.609" }, { "pixmapfile" : "image/HiroshigeInokashiraSnow_c3.png", "x" : "0.623", "y" : "0.607" }, { "pixmapfile" : "image/HiroshigeInokashiraSnow_b3.png", "x" : "0.373", "y" : "0.63" }, { "pixmapfile" : "image/HiroshigeInokashiraSnow_a3.png", "x" : "0.155", "y" : "0.609" }, { "pixmapfile" : "image/HiroshigeInokashiraSnow_d2.png", "x" : "0.866", "y" : "0.388" }, { "pixmapfile" : "image/HiroshigeInokashiraSnow_c2.png", "x" : "0.623", "y" : "0.412" }, { "pixmapfile" : "image/HiroshigeInokashiraSnow_b2.png", "x" : "0.348", "y" : "0.412" }, { "pixmapfile" : "image/HiroshigeInokashiraSnow_a2.png", "x" : "0.129", "y" : "0.388" }, { "pixmapfile" : "image/HiroshigeInokashiraSnow_d1.png", "x" : "0.841", "y" : "0.197" }, { "pixmapfile" : "image/HiroshigeInokashiraSnow_c1.png", "x" : "0.598", "y" : "0.197" }, { "pixmapfile" : "image/HiroshigeInokashiraSnow_b1.png", "x" : "0.348", "y" : "0.197" }, { "pixmapfile" : "image/HiroshigeInokashiraSnow_a1.png", "x" : "0.129", "y" : "0.197" } ] } diff --git a/src/activities/paintings/resource/board/board9_0.qml b/src/activities/paintings/resource/board/board9_0.qml index 7fcd61499..f2ae77ce4 100644 --- a/src/activities/paintings/resource/board/board9_0.qml +++ b/src/activities/paintings/resource/board/board9_0.qml @@ -1,114 +1,114 @@ /* GCompris * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { property string instruction: qsTr("Utagawa Hiroshige, Horse-mackerel and Prawn - 1840") - property variant levels : [ + property var levels : [ { "pixmapfile" : "image/bg.svg", "type" : "SHAPE_BACKGROUND_IMAGE", "width": 702, "height": 515 }, { "pixmapfile" : "image/HiroshigeHorsePrawns_d4.png", "x" : "0.853", "y" : "0.83" }, { "pixmapfile" : "image/HiroshigeHorsePrawns_c4.png", "x" : "0.626", "y" : "0.853" }, { "pixmapfile" : "image/HiroshigeHorsePrawns_b4.png", "x" : "0.37", "y" : "0.83" }, { "pixmapfile" : "image/HiroshigeHorsePrawns_a4.png", "x" : "0.115", "y" : "0.83" }, { "pixmapfile" : "image/HiroshigeHorsePrawns_d3.png", "x" : "0.853", "y" : "0.594" }, { "pixmapfile" : "image/HiroshigeHorsePrawns_c3.png", "x" : "0.6", "y" : "0.619" }, { "pixmapfile" : "image/HiroshigeHorsePrawns_b3.png", "x" : "0.343", "y" : "0.617" }, { "pixmapfile" : "image/HiroshigeHorsePrawns_a3.png", "x" : "0.115", "y" : "0.594" }, { "pixmapfile" : "image/HiroshigeHorsePrawns_d2.png", "x" : "0.853", "y" : "0.376" }, { "pixmapfile" : "image/HiroshigeHorsePrawns_c2.png", "x" : "0.6", "y" : "0.376" }, { "pixmapfile" : "image/HiroshigeHorsePrawns_b2.png", "x" : "0.368", "y" : "0.4" }, { "pixmapfile" : "image/HiroshigeHorsePrawns_a2.png", "x" : "0.142", "y" : "0.375" }, { "pixmapfile" : "image/HiroshigeHorsePrawns_d1.png", "x" : "0.878", "y" : "0.163" }, { "pixmapfile" : "image/HiroshigeHorsePrawns_c1.png", "x" : "0.627", "y" : "0.163" }, { "pixmapfile" : "image/HiroshigeHorsePrawns_b1.png", "x" : "0.368", "y" : "0.163" }, { "pixmapfile" : "image/HiroshigeHorsePrawns_a1.png", "x" : "0.142", "y" : "0.163" } ] } diff --git a/src/activities/planegame/Planegame.qml b/src/activities/planegame/Planegame.qml index a5e0315b1..e22f6b16e 100644 --- a/src/activities/planegame/Planegame.qml +++ b/src/activities/planegame/Planegame.qml @@ -1,147 +1,147 @@ /* gcompris - Planegame.qml Copyright (C) 2014 Johnny Jazeix 2003, 2014: Bruno Coudoin: initial version 2014: Johnny Jazeix: Qt port This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ import QtQuick 2.6 import GCompris 1.0 import "../../core" import "planegame.js" as Activity ActivityBase { id: activity focus: true onStart: { focus = true; } onStop: { } Keys.onPressed: Activity.processPressedKey(event) Keys.onReleased: Activity.processReleasedKey(event) - property variant dataset + property var dataset property int oldWidth: width onWidthChanged: { // Reposition helico and clouds, same for height Activity.repositionObjectsOnWidthChanged(width / oldWidth) oldWidth = width } property int oldHeight: height onHeightChanged: { // Reposition helico and clouds, same for height Activity.repositionObjectsOnHeightChanged(height / oldHeight) oldHeight = height } pageComponent: Image { id: background anchors.fill: parent signal start signal stop source: Activity.url + "../algorithm/resource/desert_scene.svg" sourceSize.width: parent.width Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } QtObject { id: items property alias background: background property alias bar: bar property alias bonus: bonus property alias score: score property alias plane: plane property GCAudio audioVoices: activity.audioVoices property GCAudio audioEffects: activity.audioEffects property alias movePlaneTimer: movePlaneTimer property alias cloudCreation: cloudCreation } onStart: Activity.start(items, dataset) onStop: Activity.stop(); MultiPointTouchArea { anchors.fill: parent touchPoints: [ TouchPoint { id: point1 } ] onReleased: { plane.x = point1.x - plane.width / 2 plane.y = point1.y - plane.height / 2 } } DialogHelp { id: dialogHelp onClose: home() } Bar { id: bar content: BarEnumContent { value: help | home | level } onHelpClicked: displayDialog(dialogHelp) onPreviousLevelClicked: Activity.previousLevel() onNextLevelClicked: Activity.nextLevel() onHomeClicked: activity.home() } Bonus { id: bonus Component.onCompleted: win.connect(Activity.nextLevel) } Score { id: score visible: false fontSize: 24 } property int movePlaneTimerCounter: 0 Timer { id: movePlaneTimer running: false repeat: true onTriggered: { plane.state = "play" interval = 50 if(movePlaneTimerCounter++ % 3 == 0) { /* Do not call this too often or plane commands are too hard */ Activity.handleCollisionsWithCloud(); } Activity.computeVelocity(); Activity.planeMove(); } } Timer { id: cloudCreation running: false repeat: true interval: 10200 - (bar.level * 200) onTriggered: Activity.createCloud() } Plane { id: plane background: background } } } diff --git a/src/activities/redraw/Redraw.qml b/src/activities/redraw/Redraw.qml index 4e64c311f..ed03cf825 100644 --- a/src/activities/redraw/Redraw.qml +++ b/src/activities/redraw/Redraw.qml @@ -1,440 +1,440 @@ /* GCompris - redraw.qml * * Copyright (C) 2014 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Bruno Coudoin (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import GCompris 1.0 import QtGraphicalEffects 1.0 import "../../core" import "redraw.js" as Activity ActivityBase { id: activity onStart: focus = true onStop: {} property bool symmetry: false pageComponent: Image { id: background anchors.fill: parent source: Activity.url + "background.svg" fillMode: Image.PreserveAspectCrop sourceSize.width: Math.max(parent.width, parent.height) property bool landscape: width > height signal start signal stop Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } // Add here the QML items you need to access in javascript QtObject { id: items property Item main: activity.main property alias background: background property alias bar: bar property alias bonus: bonus property int colorSelector: 0 property alias userModel: userModel property int numberOfColumn property int numberOfColor property int numberOfLine: targetModelData.length / numberOfColumn property alias targetModel: targetModel - property variant targetModelData + property var targetModelData } onStart: { Activity.start(items) } onStop: { Activity.stop() } Keys.onPressed: { if(event.key >= Qt.Key_0 && event.key < Qt.Key_0 + items.numberOfColor) items.colorSelector = event.key - Qt.Key_0 if(event.key == Qt.Key_Backspace) userModel.clearCurrentItem() } Keys.onEnterPressed: userModel.paintCurrentItem() Keys.onReturnPressed: userModel.paintCurrentItem() Keys.onSpacePressed: userModel.paintCurrentItem() Keys.onDeletePressed: userModel.clearCurrentItem() Keys.onRightPressed: userModel.moveCurrentIndexRight() Keys.onLeftPressed: userModel.moveCurrentIndexLeft() Keys.onDownPressed: userModel.moveCurrentIndexDown() Keys.onUpPressed: userModel.moveCurrentIndexUp() // For creating new content, dump the drawing on the console Keys.onTabPressed: Activity.dump() Row { anchors { top: parent.top right: parent.right left: parent.left bottom: bar.top } anchors.margins: 10 spacing: 20 // The color selector Flickable { id: flickable interactive: true width: 70 * ApplicationInfo.ratio height: background.height boundsBehavior: Flickable.StopAtBounds contentHeight: items.numberOfColor * width bottomMargin: bar.height Column { id: colorSelector Repeater { model: items.numberOfColor Item { width: flickable.width height: width Image { id: img source: Activity.url + Activity.colorShortcut[modelData] + ".svg" sourceSize.width: parent.width z: iAmSelected ? 10 : 1 property bool iAmSelected: modelData == items.colorSelector states: [ State { name: "notclicked" when: !img.iAmSelected && !mouseArea.containsMouse PropertyChanges { target: img scale: 0.8 } }, State { name: "clicked" when: mouseArea.pressed PropertyChanges { target: img scale: 0.7 } }, State { name: "hover" when: mouseArea.containsMouse PropertyChanges { target: img scale: 1.1 } }, State { name: "selected" when: img.iAmSelected PropertyChanges { target: img scale: 1 } } ] SequentialAnimation { id: anim running: img.iAmSelected loops: Animation.Infinite alwaysRunToEnd: true NumberAnimation { target: img property: "rotation" from: 0; to: 10 duration: 200 easing.type: Easing.OutQuad } NumberAnimation { target: img property: "rotation" from: 10; to: -10 duration: 400 easing.type: Easing.InOutQuad } NumberAnimation { target: img property: "rotation" from: -10; to: 0 duration: 200 easing.type: Easing.InQuad } } Behavior on scale { NumberAnimation { duration: 70 } } MouseArea { id: mouseArea anchors.fill: parent hoverEnabled: true onClicked: { activity.audioEffects.play('qrc:/gcompris/src/core/resource/sounds/scroll.wav') items.colorSelector = modelData } } } GCText { id: text1 anchors.fill: parent text: modelData fontSize: regularSize z: modelData == items.colorSelector ? 12 : 2 font.bold: true style: Text.Outline styleColor: "black" color: "white" } DropShadow { anchors.fill: text1 cached: false horizontalOffset: 1 verticalOffset: 1 radius: 8.0 samples: 16 color: "#80000000" source: text1 } } } } } Grid { id: drawAndExampleArea columns: background.landscape ? 2 : 1 width: gridWidth height: parent.height spacing: 10 property int gridWidth: parent.width - colorSelector.width // The drawing area Grid { id: drawingArea width: background.landscape ? parent.gridWidth / 2 - parent.spacing * 2 : parent.gridWidth height: background.landscape ? parent.height : parent.height / 2 columns: items.numberOfColumn Repeater { id: userModel model: items.targetModelData.length property int currentItem: 0 property bool keyNavigation: false function reset() { for(var i=0; i < items.userModel.count; ++i) userModel.itemAt(i).paint(items.colorSelector) currentItem = 0 keyNavigation = false } function clearCurrentItem() { userModel.itemAt(currentItem).paint(0) } function paintCurrentItem() { userModel.itemAt(currentItem).playEffect(items.colorSelector) userModel.itemAt(currentItem).paint(items.colorSelector) } function moveCurrentIndexRight() { keyNavigation = true if(currentItem++ >= items.targetModelData.length - 1) currentItem = 0 } function moveCurrentIndexLeft() { keyNavigation = true if(currentItem-- <= 0) currentItem = items.targetModelData.length - 1 } function moveCurrentIndexUp() { keyNavigation = true currentItem -= items.numberOfColumn if(currentItem < 0) currentItem += items.targetModelData.length } function moveCurrentIndexDown() { keyNavigation = true currentItem += items.numberOfColumn if(currentItem > items.targetModelData.length - 1) currentItem -= items.targetModelData.length } Item { id: userItem width: Math.min(drawingArea.width / items.numberOfColumn, drawingArea.height / items.numberOfLine) height: width property color color: Activity.colors[colorIndex] property int colorIndex function paint(color) { colorIndex = color } function playEffect(color) { if(color === 0) activity.audioEffects.play(Activity.url + 'eraser.wav') else activity.audioEffects.play(Activity.url + 'brush.wav') } Rectangle { id: userRect anchors.fill: parent border.width: userModel.keyNavigation && userModel.currentItem == modelData ? 3 : 1 border.color: 'black' color: parent.color Behavior on color { ColorAnimation { duration: 200 onRunningChanged: { if(!running && Activity.checkModel()) bonus.good("flower") } } } } GCText { id: text2 anchors.fill: parent anchors.margins: 4 text: parent.colorIndex == 0 ? "" : parent.colorIndex fontSize: regularSize font.bold: true style: Text.Outline styleColor: "black" color: "white" } DropShadow { anchors.fill: text2 cached: false horizontalOffset: 1 verticalOffset: 1 radius: 8.0 samples: 16 color: "#80000000" source: text2 } } } } // The painting to reproduce Grid { id: imageArea width: drawingArea.width height: drawingArea.height columns: items.numberOfColumn LayoutMirroring.enabled: activity.symmetry LayoutMirroring.childrenInherit: true Repeater { id: targetModel model: items.targetModelData Item { width: Math.min(imageArea.width / items.numberOfColumn, imageArea.height / items.numberOfLine) height: width property alias color: targetRect.color Rectangle { id: targetRect anchors.fill: parent color: Activity.colors[modelData] border.width: 1 border.color: 'black' } GCText { id: text3 anchors.fill: parent anchors.margins: 4 text: modelData == 0 ? "" : modelData fontSize: regularSize font.bold: true style: Text.Outline styleColor: "black" color: "white" } DropShadow { anchors.fill: text3 cached: false horizontalOffset: 1 verticalOffset: 1 radius: 8.0 samples: 16 color: "#80000000" source: text3 } } } } } } MultiPointTouchArea { x: drawAndExampleArea.x y: drawAndExampleArea.y width: drawAndExampleArea.width height: drawAndExampleArea.height onPressed: checkTouchPoint(touchPoints) onTouchUpdated: checkTouchPoint(touchPoints) function checkTouchPoint(touchPoints) { for(var i in touchPoints) { var touch = touchPoints[i] var block = drawingArea.childAt(touch.x, touch.y) if(block) { block.playEffect(items.colorSelector) block.paint(items.colorSelector) } } } } DialogHelp { id: dialogHelp onClose: home() } Bar { id: bar content: BarEnumContent { value: help | home | level } onHelpClicked: { displayDialog(dialogHelp) } onPreviousLevelClicked: Activity.previousLevel() onNextLevelClicked: Activity.nextLevel() onHomeClicked: activity.home() } Bonus { id: bonus Component.onCompleted: win.connect(Activity.nextLevel) } } } diff --git a/src/activities/renewable_energy/RenewableEnergy.qml b/src/activities/renewable_energy/RenewableEnergy.qml index 0275c6ba1..77c25f1f1 100644 --- a/src/activities/renewable_energy/RenewableEnergy.qml +++ b/src/activities/renewable_energy/RenewableEnergy.qml @@ -1,564 +1,564 @@ /* GCompris - renewable_energy.qml * * Copyright (C) 2015 Sagar Chand Agarwal * * Authors: * Bruno Coudoin (GTK+ version) * Sagar Chand Agarwal (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import GCompris 1.0 import "../../core" ActivityBase { id: activity onStart: focus = true onStop: {} property string url: "qrc:/gcompris/src/activities/renewable_energy/resource/" - property variant barAtStart + property var barAtStart property int oldWidth: width onWidthChanged: { oldWidth: width } property int oldHeight: height onHeightChanged: { oldHeight: height } pageComponent: Item { id: background anchors.fill: parent signal start signal stop Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } // Add here the QML items you need to access in javascript QtObject { id: items property Item main: activity.main property alias background: background property alias bar: bar property alias bonus: bonus property GCAudio audioEffects: activity.audioEffects property int currentLevel property int numberOfLevel: 3 property bool sunIsUp property color consumeColor: '#ffff8100' property color produceColor: '#ffffec00' property bool hasWon: false } onStart: { barAtStart = ApplicationSettings.isBarHidden; ApplicationSettings.isBarHidden = true; } onStop: { ApplicationSettings.isBarHidden = barAtStart; initLevel() } function initLevel() { residentSmallSwitch.on = false residentBigSwitch.on = false tuxSwitch.on = false stepDown.started = false hydro.item.stop() if(wind.item) wind.item.stop() if(solar.item) solar.item.stop() } function nextLevel() { if(items.numberOfLevel <= ++items.currentLevel ) { // Stay on the last level items.currentLevel = items.numberOfLevel - 1 } } function previousLevel() { if(--items.currentLevel < 0 ) { items.currentLevel = items.numberOfLevel - 1 } } function checkForNextLevel() { switch(items.currentLevel) { case 0: if(tuxSwitch.on) win() break case 1: if(tuxSwitch.on && residentSmallSwitch.on) win() break case 2: if(!items.hasWon && tuxSwitch.on && residentSmallSwitch.on && residentBigSwitch.on) { items.hasWon = true win() } break } } Loader { id: hydro anchors.fill: parent source: "Hydro.qml" } Loader { id: wind anchors.fill: parent source: items.currentLevel > 0 ? "Wind.qml" : "" } Loader { id: solar anchors.fill: parent source: items.currentLevel > 1 ? "Solar.qml" : "" } IntroMessage { id: message opacity: items.currentLevel == 0 ? 1 : start() anchors { top: parent.top topMargin: 10 right: parent.right rightMargin: 5 left: parent.left leftMargin: 5 } onIntroDone: { hydro.item.start() message.opacity = 0 } intro: [ qsTr("Tux has come back from fishing on his boat. " + "Bring the electrical system back up so he can have light in his home."), qsTr("Click on different active elements : sun, cloud, dam, solar array, " + "wind farm and transformers, in order to reactivate the entire electrical system."), qsTr("When the system is back up and Tux is in his home, push the light button for him. " + "To win you must switch on all the consumers while all the producers are up."), qsTr("Learn about an electrical system based on renewable energy. Enjoy.") ] Behavior on opacity { PropertyAnimation { duration: 200 } } } Rectangle { id: check opacity: 0 width: 400 * ApplicationInfo.ratio height: 200 * ApplicationInfo.ratio anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter z: 100 border.width: 2 radius: 5 color: "#d0f0f0" property bool shown: false GCText { id: warning anchors.fill: parent horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter text: qsTr( "It is not possible to consume more electricity " + "than what is produced. This is a key limitation in the " + "distribution of electricity, with minor exceptions, " + "electrical energy cannot be stored, and therefore it " + "must be generated as it is needed. A sophisticated " + "system of control is therefore required to ensure electric " + "generation very closely matches the demand. If supply and demand " + "are not in balance, generation plants and transmission equipment " + "can shut down which, in the worst cases, can lead to a major " + "regional blackout.") fontSizeMode: Text.Fit minimumPointSize: 10 wrapMode: Text.WordWrap fontSize: smallSize } Behavior on opacity { NumberAnimation { duration: 200 } } MouseArea { anchors.fill: parent enabled: check.opacity > 0 onClicked: check.opacity = 0 } } Image { id: stepDown source: activity.url + (started ? "transformer.svg" : "transformer_off.svg") sourceSize.width: parent.width * 0.06 height: parent.height * 0.09 anchors { top: parent.top left: parent.left topMargin: parent.height * 0.41 leftMargin: parent.width * 0.72 } MouseArea { anchors.centerIn: parent // Size the area for a touch screen width: 70 * ApplicationInfo.ratio height: width onClicked: { onClicked: parent.started = !parent.started } } property bool started: false property int powerIn: started ? (hydro.item.power + (wind.item ? wind.item.power : 0) + (solar.item ? solar.item.power : 0)) : 0 property int powerOut: started ? (tux.powerConsumed + residentSmallLights.powerConsumed + residentBigLights.powerConsumed) : 0 onPowerInChanged: checkPower() // Check powerOut does not exceed powerIn. Cut some consumers in case. function checkPower() { if(powerOut > powerIn && residentBigSwitch.on) { residentBigSwitch.on = false if(!check.shown && powerIn) check.opacity = 1 } if(powerOut > powerIn && residentSmallSwitch.on) { residentSmallSwitch.on = false if(!check.shown && powerIn) check.opacity = 1 } if(powerOut > powerIn && tuxSwitch.on) { tuxSwitch.on = false if(!check.shown && powerIn) check.opacity = 1 } } } Image { source: activity.url + "right.svg" sourceSize.width: stepDown.width / 2 sourceSize.height: stepDown.height / 2 anchors { right: stepDown.left bottom: stepDown.bottom bottomMargin: parent.height * 0.03 } Rectangle { id: produceMeter width: pow.width * 1.1 height: pow.height * 1.1 border.color: "black" radius: 5 color: items.produceColor anchors { top: parent.top right: parent.left } GCText { id: pow anchors.centerIn: parent fontSize: smallSize * 0.5 text: stepDown.powerIn.toString() + "W" } } } Image { source: activity.url + "down.svg" sourceSize.width: stepDown.width / 2 sourceSize.height: stepDown.height / 2 anchors { left: stepDown.left top: stepDown.top topMargin: stepDown.height * 0.8 leftMargin: parent.width * 0.05 } Rectangle { id: consumeMeter width: stepdown_info.width * 1.1 height: stepdown_info.height * 1.1 border.color: "black" radius: 5 color: items.consumeColor anchors { top: parent.top topMargin: parent.height * 0.1 left: parent.right } GCText { id: stepdown_info anchors.centerIn: parent fontSize: smallSize * 0.5 text: stepDown.powerOut.toString() + "W" } } } Image { id: stepDownWire source: activity.url + "hydroelectric/stepdown.svg" sourceSize.width: parent.width anchors.fill: parent visible: power > 0 property int power: stepDown.powerIn } Image { id: residentSmallSwitch visible: items.currentLevel > 0 source: activity.url + (on ? "on.svg" : "off.svg") sourceSize.height: parent.height * 0.03 sourceSize.width: parent.height * 0.03 anchors { left: parent.left top: parent.top leftMargin: parent.width * 0.55 topMargin: parent.height * 0.65 } property bool on: false MouseArea { id: small_area visible: parent.visible anchors.centerIn: parent // Size the area for a touch screen width: 70 * ApplicationInfo.ratio height: width onClicked: { if(stepDown.powerIn - stepDown.powerOut >= residentSmallLights.power) parent.on = !parent.on else parent.on = false checkForNextLevel() } } } Image { id: residentSmallLights source: activity.url + "resident_smallon.svg" sourceSize.width: parent.width sourceSize.height: parent.height anchors.fill: parent visible: items.currentLevel > 0 && powerConsumed property int power: 1000 property int powerConsumed: on ? power : 0 property bool on: residentSmallSwitch.on } Rectangle { id: smallConsumeRect width: small_consume.width * 1.1 height: small_consume.height * 1.1 border.color: "black" radius: 5 color: items.consumeColor anchors { top: residentSmallSwitch.bottom left:residentSmallSwitch.left } GCText { id: small_consume anchors.centerIn: parent text: residentSmallLights.powerConsumed.toString() + "W" fontSize: smallSize * 0.5 } visible: items.currentLevel > 0 } Image { id: residentBigSwitch visible: items.currentLevel > 1 source: activity.url + (on ? "on.svg" : "off.svg") sourceSize.height: parent.height * 0.03 sourceSize.width: parent.height * 0.03 anchors { left: parent.left top: parent.top leftMargin: parent.width * 0.60 topMargin: parent.height * 0.65 } property bool on: false MouseArea { id: big_area visible: parent.visible anchors.centerIn: parent // Size the area for a touch screen width: 70 * ApplicationInfo.ratio height: width onClicked: { if(stepDown.powerIn - stepDown.powerOut >= residentBigLights.power) parent.on = !parent.on else parent.on = false checkForNextLevel() } } } Image { id: residentBigLights source: activity.url + "resident_bigon.svg" sourceSize.width: parent.width sourceSize.height: parent.height anchors.fill: parent visible: items.currentLevel > 0 && powerConsumed property int power: 2000 property int powerConsumed: on ? power : 0 property bool on: residentBigSwitch.on } Rectangle { id: bigConsumeRect width: bigConsume.width * 1.1 height: bigConsume.height * 1.1 border.color: "black" radius : 5 color: items.consumeColor anchors { top: residentBigSwitch.bottom left: residentBigSwitch.left } GCText { id: bigConsume anchors.centerIn: parent text: residentBigLights.powerConsumed.toString() + "W" fontSize: smallSize * 0.5 } visible: items.currentLevel > 1 } // Tux is visible when tuxboat animation stops // It's light can be activated after stepdown is on Image { id: tux source: activity.url + (on ? "lightson.svg" : "lightsoff.svg") sourceSize.height: parent.height * 0.2 sourceSize.width: parent.width * 0.15 anchors { bottom: parent.bottom right: parent.right bottomMargin: parent.height * 0.3 rightMargin: parent.width * 0.02 } visible: false property int power: 100 property int powerConsumed: on ? power : 0 property bool on: tuxSwitch.on Image { id: tuxSwitch source: activity.url + (on ? "on.svg" : "off.svg") sourceSize.height: parent.height*0.20 sourceSize.width: parent.height*0.20 property bool on: false anchors { right: tux.right top: tux.top rightMargin: tux.width * 0.20 topMargin: tux.height * 0.30 } MouseArea { id: off_area anchors.centerIn: parent // Size the area for a touch screen width: 70 * ApplicationInfo.ratio height: width onClicked: { if(stepDown.powerIn - stepDown.powerOut >= tux.power) parent.on = !parent.on else parent.on = false checkForNextLevel() } } } Rectangle { id: tuxMeter width: tuxConsume.width * 1.1 height: tuxConsume.height * 1.1 border.color: "black" radius : 5 color: items.consumeColor anchors { bottom: tuxSwitch.top left: tuxSwitch.left } GCText { id: tuxConsume anchors.centerIn: parent fontSize: smallSize * 0.5 text: tux.powerConsumed.toString() + "W" } visible: tux.visible } } function win() { items.bonus.good("flower") } DialogHelp { id: dialogHelp onClose: home() } Bar { id: bar content: BarEnumContent { value: help | home | level | reload } onHelpClicked: displayDialog(dialogHelp) onPreviousLevelClicked: previousLevel() onNextLevelClicked: nextLevel() onHomeClicked: activity.home() onReloadClicked: initLevel() level: items.currentLevel + 1 } Bonus { id: bonus Component.onCompleted: win.connect(nextLevel) } } } diff --git a/src/activities/scalesboard/Scalesboard.qml b/src/activities/scalesboard/Scalesboard.qml index 345e9e4f0..829174cab 100644 --- a/src/activities/scalesboard/Scalesboard.qml +++ b/src/activities/scalesboard/Scalesboard.qml @@ -1,299 +1,299 @@ /* GCompris - Scalesboard.qml * * Copyright (C) 2014 Bruno Coudoin * * Authors: * miguel DE IZARRA (GTK+ version) * Bruno Coudoin (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import GCompris 1.0 import "../../core" import "scalesboard.js" as Activity import "." ActivityBase { id: activity - property variant dataset + property var dataset onStart: focus = true onStop: {} pageComponent: Image { id: background anchors.fill: parent source: Activity.url + "background.svg" sourceSize.width: Math.max(parent.width, parent.height) fillMode: Image.PreserveAspectCrop signal start signal stop property int scaleHeight: items.masseAreaLeft.weight == items.masseAreaRight.weight ? 0 : items.masseAreaLeft.weight > items.masseAreaRight.weight ? 20 : -20 Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } // Add here the QML items you need to access in javascript QtObject { id: items property Item main: activity.main property alias background: background property alias bar: bar property alias bonus: bonus property int numberOfSubLevels property int currentSubLevel property int giftWeight - property variant dataset: activity.dataset + property var dataset: activity.dataset property alias masseAreaCenter: masseAreaCenter property alias masseAreaLeft: masseAreaLeft property alias masseAreaRight: masseAreaRight property alias masseCenterModel: masseAreaCenter.masseModel property alias masseRightModel: masseAreaRight.masseModel property alias question: question property alias numpad: numpad } onStart: { Activity.start(items) } onStop: { Activity.stop() } onScaleHeightChanged: Activity.initCompleted && scaleHeight == 0 && question.hasText == "" ? bonus.good("flower") : activity.audioEffects.play('qrc:/gcompris/src/activities/erase/resource/eraser2.wav') Image { id: scale source: Activity.url + "scale.svg" sourceSize.width: Math.min(parent.width - 10 * ApplicationInfo.ratio, (parent.height - bar.height - 10 * ApplicationInfo.ratio) * 2) anchors.centerIn: parent } Image { id: needle parent: scale source: Activity.url + "needle.svg" sourceSize.width: parent.width * 0.75 z: -10 property int angle: - background.scaleHeight * 0.35 anchors { horizontalCenter: parent.horizontalCenter verticalCenter: parent.verticalCenter verticalCenterOffset: - parent.paintedHeight * 0.15 } transform: Rotation { origin.x: needle.width / 2 origin.y: needle.height * 0.9 angle: needle.angle } Behavior on angle { NumberAnimation { duration: 500 easing.type: Easing.InOutQuad } } } // === The Left plate === Image { id: plateLeft parent: scale source: Activity.url + "plate.svg" sourceSize.width: parent.width * 0.35 z: -1 anchors { horizontalCenter: parent.horizontalCenter horizontalCenterOffset: - parent.paintedWidth * 0.3 verticalCenter: parent.verticalCenter verticalCenterOffset: - parent.paintedHeight * 0.03 + background.scaleHeight } Behavior on anchors.verticalCenterOffset { NumberAnimation { duration: 500 easing.type: Easing.InOutQuad } } // The Left Drop Area MasseArea { id: masseAreaLeft parent: scale width: plateLeft.width anchors { horizontalCenter: parent.horizontalCenter horizontalCenterOffset: - parent.paintedWidth * 0.3 verticalCenter: parent.verticalCenter verticalCenterOffset: - parent.paintedHeight * 0.44 + background.scaleHeight } masseAreaCenter: masseAreaCenter masseAreaLeft: masseAreaLeft masseAreaRight: masseAreaRight nbColumns: 3 dropEnabled: true audioEffects: activity.audioEffects Behavior on anchors.verticalCenterOffset { NumberAnimation { duration: 500 easing.type: Easing.InOutQuad } } } } // === The Right plate === Image { id: plateRight parent: scale source: Activity.url + "plate.svg" sourceSize.width: parent.width * 0.35 z: -1 anchors { horizontalCenter: parent.horizontalCenter horizontalCenterOffset: parent.paintedWidth * 0.3 verticalCenter: parent.verticalCenter verticalCenterOffset: - parent.paintedHeight * 0.03 - background.scaleHeight } Behavior on anchors.verticalCenterOffset { NumberAnimation { duration: 500 easing.type: Easing.InOutQuad } } // The Right Drop Area MasseArea { id: masseAreaRight parent: scale width: plateRight.width anchors { horizontalCenter: parent.horizontalCenter horizontalCenterOffset: parent.paintedWidth * 0.3 verticalCenter: parent.verticalCenter verticalCenterOffset: - parent.paintedHeight * 0.44 - background.scaleHeight } masseAreaCenter: masseAreaCenter masseAreaLeft: masseAreaLeft masseAreaRight: masseAreaRight nbColumns: 3 dropEnabled: items.dataset[bar.level - 1].rightDrop audioEffects: activity.audioEffects Behavior on anchors.verticalCenterOffset { NumberAnimation { duration: 500 easing.type: Easing.InOutQuad } } } } // === The Initial Masses List === MasseArea { id: masseAreaCenter parent: scale x: parent.width * 0.05 y: parent.height * 0.84 - height width: parent.width masseAreaCenter: masseAreaCenter masseAreaLeft: masseAreaLeft masseAreaRight: masseAreaRight nbColumns: masseModel.count dropEnabled: true audioEffects: activity.audioEffects } Message { id: message anchors { top: parent.top topMargin: 10 right: parent.right rightMargin: 10 left: parent.left leftMargin: 10 } } Question { id: question parent: scale anchors.horizontalCenter: parent.horizontalCenter y: parent.height * 0.45 z: 1000 width: parent.width - y text: items.dataset[bar.level - 1].question && background.scaleHeight == 0 ? items.dataset[bar.level - 1].question : "" answer: items.giftWeight property bool hasText: items.dataset[bar.level - 1].question ? true : false } DialogHelp { id: dialogHelp onClose: home() } Bar { id: bar content: BarEnumContent { value: help | home | level } onHelpClicked: { displayDialog(dialogHelp) } onPreviousLevelClicked: Activity.previousLevel() onNextLevelClicked: Activity.nextLevel() onHomeClicked: activity.home() onLevelChanged: message.text = items.dataset[bar.level - 1].message ? items.dataset[bar.level - 1].message : "" } Score { id: score numberOfSubLevels: items.numberOfSubLevels currentSubLevel: items.currentSubLevel opacity: question.displayed ? 0 : 1 } NumPad { id: numpad onAnswerChanged: question.userEntry = answer maxDigit: ('' + items.giftWeight).length + 1 opacity: question.displayed ? 1 : 0 columnWidth: 60 * ApplicationInfo.ratio } Keys.onPressed: { numpad.updateAnswer(event.key, true); } Keys.onReleased: { numpad.updateAnswer(event.key, false); } Bonus { id: bonus Component.onCompleted: win.connect(Activity.nextSubLevel) } } } diff --git a/src/activities/share/resource/board/board0.qml b/src/activities/share/resource/board/board0.qml index 5f52446d2..38d399fc1 100644 --- a/src/activities/share/resource/board/board0.qml +++ b/src/activities/share/resource/board/board0.qml @@ -1,69 +1,69 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 /* Numbers of kids are given in the left widget which eases kid work. No rest (basket). */ QtObject { - property variant levels : [ + property var levels : [ { "instruction": qsTr("Paul wants to equally share 2 candies between 2 of his friends: one girl and one boy. Can you help him? First, place the children in center, then drag the candies to each of them."), "totalBoys": 1, "totalGirls": 1, "totalCandies": 2, "showCount": true, "forceShowBasket": "false", "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Now he wants to give 4 candies to his friends."), "totalBoys": 1, "totalGirls": 1, "totalCandies": 4, "showCount": true, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Can you now give 6 of Paul's candies to his friends?"), "totalBoys": 1, "totalGirls": 1, "totalCandies": 6, "showCount": true, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Paul has only 10 candies left. He eats 2 candies and he gives the rest to his friends. Can you help him equally split the 8 remaining candies?"), "totalBoys": 1, "totalGirls": 1, "totalCandies": 8, "showCount": true, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 } ] } diff --git a/src/activities/share/resource/board/board1.qml b/src/activities/share/resource/board/board1.qml index 0fa31f307..eb087c596 100644 --- a/src/activities/share/resource/board/board1.qml +++ b/src/activities/share/resource/board/board1.qml @@ -1,58 +1,58 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 /* Numbers of kids are given in the left widget which eases kid work. There is a rest (basket) */ QtObject { - property variant levels : [ + property var levels : [ { "instruction": qsTr("George wants to equally share 3 candies between 2 of his friends: one girl and one boy. Can he equally split the candies between his friends? First, place the children in center, then drag the candies to each of them. Be careful, a rest will remain!"), "totalBoys": 1, "totalGirls": 1, "totalCandies": 3, "showCount": true, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Maria wants to equally share 5 candies between 3 of her friends: one girl and two boys. Can she equally split the candies between her friends? First, place the children in center, then drag the candies to each of them. Be careful, a rest will remain!"), "totalBoys": 2, "totalGirls": 1, "totalCandies": 5, "showCount": true, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("John wants to equally share 10 candies between 3 of his friends: one boy and two girls. Can he equally split the candies between his friends? First, place the children in center, then drag the candies to each of them."), "totalBoys": 1, "totalGirls": 2, "totalCandies": 10, "showCount": true, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 } ] } diff --git a/src/activities/share/resource/board/board2.qml b/src/activities/share/resource/board/board2.qml index 8950e926b..aa773c988 100644 --- a/src/activities/share/resource/board/board2.qml +++ b/src/activities/share/resource/board/board2.qml @@ -1,68 +1,68 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 /* Numbers of kids are not given anymore in the left widget which forces kids to understand this part. No rest (basket). */ QtObject { - property variant levels : [ + property var levels : [ { "instruction": qsTr("Alice wants to equally share 3 candies between 3 of her friends: one girl and two boys. Can you help her? First, place the children in the center, then drag the candies to each of them."), "totalBoys": 2, "totalGirls": 1, "totalCandies": 3, "showCount": false, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Now, Alice wants to give 6 candies to her friends"), "totalBoys": 2, "totalGirls": 1, "totalCandies": 6, "showCount": false, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Can you help Alice give 9 candies to her friends: one girl and two boys?"), "totalBoys": 2, "totalGirls": 1, "totalCandies": 9, "showCount": false, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Alice has 12 candies left. She wants to give them all to her friends. Can you help her split the candies equally?"), "totalBoys": 2, "totalGirls": 1, "totalCandies": 12, "showCount": false, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 } ] } diff --git a/src/activities/share/resource/board/board3.qml b/src/activities/share/resource/board/board3.qml index 599b74b94..4b55f1cf6 100644 --- a/src/activities/share/resource/board/board3.qml +++ b/src/activities/share/resource/board/board3.qml @@ -1,68 +1,68 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 /* Numbers of kids are not given anymore in the left widget. There is a rest (basket). */ QtObject { - property variant levels : [ + property var levels : [ { "instruction": qsTr("Michael wants to equally share 5 candies between 2 of his friends: one girl and one boy. Can you help him? First, place the children in center, then drag the candies to each of them!"), "totalBoys": 1, "totalGirls": 1, "totalCandies": 5, "showCount": false, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Helen has 3 friends: one boy and two girls. She wants to give them 7 candies. Help her split the candies between her friends!"), "totalBoys": 1, "totalGirls": 2, "totalCandies": 7, "showCount": false, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Michelle has 9 candies and wants to split them with two brothers and two sisters. Help her share the candies!"), "totalBoys": 2, "totalGirls": 2, "totalCandies": 9, "showCount": false, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Thomas wants to share his 11 candies with his friends: three boys and one girl. Can you help him?"), "totalBoys": 3, "totalGirls": 1, "totalCandies": 11, "showCount": false, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 } ] } diff --git a/src/activities/share/resource/board/board4.qml b/src/activities/share/resource/board/board4.qml index 1aaf56002..4a27c3fb8 100644 --- a/src/activities/share/resource/board/board4.qml +++ b/src/activities/share/resource/board/board4.qml @@ -1,58 +1,58 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 /* Numbers of kids are not given anymore in the left widget. There is always a basket even if the rest can be equal to 0 */ QtObject { - property variant levels : [ + property var levels : [ { "instruction": qsTr("Charles wants to share his 8 candies with 3 of his friends: one boy and two girls. Can he split the candies equally?"), "totalBoys": 1, "totalGirls": 2, "totalCandies": 8, "showCount": true, "forceShowBasket": true, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("For her birthday, Elizabeth has 12 candies to share with 4 of her friends: two girls and two boys. How should she split the candies to her friends?"), "totalBoys": 2, "totalGirls": 2, "totalCandies": 12, "showCount": true, "forceShowBasket": true, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Jason's father gave him 14 candies to share with his friends: two boys and three girls. Help him give the candies to his friends!"), "totalBoys": 2, "totalGirls": 3, "totalCandies": 14, "showCount": true, "forceShowBasket": true, "placedInGirls": 0, "placedInBoys": 0 } ] } diff --git a/src/activities/share/resource/board/board5.qml b/src/activities/share/resource/board/board5.qml index 2a35e2ca1..2874e70f7 100644 --- a/src/activities/share/resource/board/board5.qml +++ b/src/activities/share/resource/board/board5.qml @@ -1,59 +1,59 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 /* Numbers of kids are not given anymore in the left widget. No rest (basket). Boy or Girl rectangles already contain a given number of candies. */ QtObject { - property variant levels : [ + property var levels : [ { "instruction": qsTr("Bob wants to give 5 candies to his friends: two boys and one girl, his girlfriend already has one candy. Can you help him equally split the candies so that each friend will have the same amount of candies?"), "totalBoys": 2, "totalGirls": 1, "totalCandies": 6, "showCount": true, "forceShowBasket": false, "placedInGirls": 1, "placedInBoys": 0 }, { "instruction": qsTr("Harry wants to equally share 8 candies between his friends: one boy and two girls. Place the children in center, then drag the candies to each of them so that each of them has an equal number of candies."), "totalBoys": 1, "totalGirls": 2, "totalCandies": 9, "showCount": true, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 1 }, { "instruction": qsTr("Can you now give 6 of Harry's candies to his friends?"), "totalBoys": 1, "totalGirls": 2, "totalCandies": 8, "showCount": true, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 2 } ] } diff --git a/src/activities/share/resource/board/board6.qml b/src/activities/share/resource/board/board6.qml index 875f54e38..84970a25a 100644 --- a/src/activities/share/resource/board/board6.qml +++ b/src/activities/share/resource/board/board6.qml @@ -1,59 +1,59 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 /* Numbers of kids are not given anymore in the left widget. No rest (basket). Boy or Girl rectangles already contain a given number of candies. */ QtObject { - property variant levels : [ + property var levels : [ { "instruction": qsTr("Help Jon split 9 candies between three boys and two girls. The rest will remain to Jon."), "totalBoys": 3, "totalGirls": 2, "totalCandies": 9, "showCount": false, "forceShowBasket": true, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Jon wants to share the rest of his candies with his brother and his sister. Can you split them equally, knowing that his brother already has two candies?"), "totalBoys": 1, "totalGirls": 1, "totalCandies": 6, "showCount": false, "forceShowBasket": true, "placedInGirls": 0, "placedInBoys": 2 }, { "instruction": qsTr("Help Tux split some candies to his friends: 9 candies to one boy and two girls."), "totalBoys": 1, "totalGirls": 2, "totalCandies": 13, "showCount": false, "forceShowBasket": true, "placedInGirls": 2, "placedInBoys": 0 } ] } diff --git a/src/activities/share/resource/board/board7.qml b/src/activities/share/resource/board/board7.qml index 8690c3484..b6d22c4c8 100644 --- a/src/activities/share/resource/board/board7.qml +++ b/src/activities/share/resource/board/board7.qml @@ -1,29 +1,29 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels : [ + property var levels : [ { "maxBoys": 2, "maxGirls": 2, "maxCandies": 16, "alreadyPlaced": false } ] } diff --git a/src/activities/share/resource/board/board8.qml b/src/activities/share/resource/board/board8.qml index 20c06be1e..973165dc0 100644 --- a/src/activities/share/resource/board/board8.qml +++ b/src/activities/share/resource/board/board8.qml @@ -1,29 +1,29 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels : [ + property var levels : [ { "maxBoys": 3, "maxGirls": 3, "maxCandies": 24, "alreadyPlaced": true } ] } diff --git a/src/activities/share/resource/board/board9.qml b/src/activities/share/resource/board/board9.qml index 20c06be1e..973165dc0 100644 --- a/src/activities/share/resource/board/board9.qml +++ b/src/activities/share/resource/board/board9.qml @@ -1,29 +1,29 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 QtObject { - property variant levels : [ + property var levels : [ { "maxBoys": 3, "maxGirls": 3, "maxCandies": 24, "alreadyPlaced": true } ] } diff --git a/src/activities/simplepaint/Simplepaint.qml b/src/activities/simplepaint/Simplepaint.qml index bca2dd892..e406fbc3f 100644 --- a/src/activities/simplepaint/Simplepaint.qml +++ b/src/activities/simplepaint/Simplepaint.qml @@ -1,229 +1,229 @@ /* GCompris - Simplepaint.qml * * Copyright (C) 2014 Bruno Coudoin * * Authors: * Christof Petig and Ingo Konrad (GTK+ version) * Bruno Coudoin (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import GCompris 1.0 import "../../core" import "simplepaint.js" as Activity ActivityBase { id: activity onStart: focus = true pageComponent: Image { id: background source: items.backgroundImg sourceSize.width: Math.max(parent.width, parent.height) fillMode: Image.PreserveAspectCrop signal start signal stop focus: true Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } QtObject { id: items property alias background: background property alias bar: bar property alias paintModel: paintModel - property variant colors: bar.level < 10 ? Activity.colorsSimple : Activity.colorsAdvanced + property var colors: bar.level < 10 ? Activity.colorsSimple : Activity.colorsAdvanced property string colorSelector: colors[0] property string backgroundImg: Activity.backgrounds[bar.level - 1] } onStart: Activity.start(main, items) onStop: Activity.stop() MultiPointTouchArea { anchors.fill: parent onPressed: checkTouchPoint(touchPoints) onTouchUpdated: checkTouchPoint(touchPoints) } function checkTouchPoint(touchPoints) { for(var i in touchPoints) { var touch = touchPoints[i] var block = rootItem.childAt(touch.x, touch.y) if(block) block.touched() } } Item { id: rootItem anchors.fill: parent } ListModel { id: paintModel } // The color selector GridView { id: colorSelector anchors { left: parent.left top: parent.top bottom: bar.top } width: cellWidth + 10 * ApplicationInfo.ratio model: items.colors cellWidth: 60 * ApplicationInfo.ratio cellHeight: cellWidth delegate: Item { width: colorSelector.cellWidth height: width Rectangle { id: rect width: parent.width height: width radius: width * 0.1 z: iAmSelected ? 10 : 1 color: modelData border.color: 'black' border.width: 1 property bool iAmSelected: modelData == items.colorSelector states: [ State { name: "notclicked" when: !rect.iAmSelected && !mouseArea.containsMouse PropertyChanges { target: rect scale: 0.8 } }, State { name: "clicked" when: mouseArea.pressed PropertyChanges { target: rect scale: 0.7 } }, State { name: "hover" when: mouseArea.containsMouse PropertyChanges { target: rect scale: 1.1 } }, State { name: "selected" when: rect.iAmSelected PropertyChanges { target: rect scale: 1 } } ] SequentialAnimation { id: anim running: rect.iAmSelected loops: Animation.Infinite alwaysRunToEnd: true NumberAnimation { target: rect property: "rotation" from: 0; to: 10 duration: 200 easing.type: Easing.OutQuad } NumberAnimation { target: rect property: "rotation" from: 10; to: -10 duration: 400 easing.type: Easing.InOutQuad } NumberAnimation { target: rect property: "rotation" from: -10; to: 0 duration: 200 easing.type: Easing.InQuad } } Behavior on scale { NumberAnimation { duration: 70 } } MouseArea { id: mouseArea anchors.fill: parent hoverEnabled: true onClicked: { activity.audioEffects.play('qrc:/gcompris/src/core/resource/sounds/scroll.wav') items.colorSelector = modelData } } } } } Item { anchors { top: parent.top left: colorSelector.right right: parent.right bottom: parent.bottom } Repeater { model: paintModel parent: rootItem PaintItem { initialX: colorSelector.width + 20 * ApplicationInfo.ratio ix: m_ix iy: m_iy nbx: m_nbx nby: m_nby color: items.colors[0] } } } DialogHelp { id: dialogHelpLeftRight onClose: home() } Bar { id: bar content: BarEnumContent { value: help | home | reload | level } onHelpClicked: { displayDialog(dialogHelpLeftRight) } onReloadClicked: Activity.initLevel() onPreviousLevelClicked: Activity.previousLevel() onNextLevelClicked: Activity.nextLevel() onHomeClicked: home() } } } diff --git a/src/activities/watercycle/Watercycle.qml b/src/activities/watercycle/Watercycle.qml index 3bfc4c19b..a0bd14ae8 100644 --- a/src/activities/watercycle/Watercycle.qml +++ b/src/activities/watercycle/Watercycle.qml @@ -1,802 +1,802 @@ /* GCompris - watercycle.qml * * Copyright (C) 2015 Sagar Chand Agarwal * * Authors: * Bruno Coudoin (GTK+ version) * Sagar Chand Agarwal (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.6 import GCompris 1.0 import "../../core" import "." ActivityBase { id: activity onStart: focus = true onStop: {} property string url: "qrc:/gcompris/src/activities/watercycle/resource/" - property variant barAtStart + property var barAtStart pageComponent: Item { id: background anchors.fill: parent signal start signal stop Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } onStart: { barAtStart = ApplicationSettings.isBarHidden; ApplicationSettings.isBarHidden = true; shower.hide() river.level = 0 } onStop: { ApplicationSettings.isBarHidden = barAtStart; } QtObject { id: items property var dataset: { "none": "", "start": qsTr("Sun is the main component of water cycle. Click on the sun to start the water cycle."), "sun": qsTr("As the sun rises, the water of the sea starts heating and evaporates."), "cloud": qsTr(" Water vapor condenses to form cloud and when clouds become heavy, it rains. Click on the cloud."), "rain": qsTr("Rain causes rivers to swell up and this water is transported to us via motor pumps through water-tower." + " Click on the motor pump to supply water to residents."), "tower": qsTr("See the tower filled with water. Activate the sewage treatment station by clicking on it."), "shower": qsTr("Great, click on the shower, as Tux arrives home."), "done": qsTr("Fantastic, you have completed water cycle. You can continue playing.") } property bool cycleDone: false property GCAudio audioEffects: activity.audioEffects } IntroMessage { id: message anchors { top: parent.top topMargin: 10 right: parent.right rightMargin: 5 left: parent.left leftMargin: 5 } z: 100 onIntroDone: { anim.running = true info.visible = true sun_area.enabled = true } intro: [ qsTr("The water cycle (also known as the hydrologic cycle) is the journey water takes" +" as it circulates from the land to the sky and back again." +" The sun's heat provides energy to evaporate water from water bodies like oceans."), qsTr("Plants also lose water to the air through transpiration. The water vapor eventually, " +"cools forming tiny droplets in clouds. When the clouds meet cool air over land, " +"precipitation is triggered and fall down as rain.") , qsTr("Some of the water is trapped between rock or clay layers, called groundwater. " +"But most of the water flows as runoff, eventually returning to the seas via rivers."), qsTr("Your goal is to complete water cycle before Tux reaches home. " +"Click on the different components which make up the water cycle. " +"First click on sun, then cloud, water pumping station near the river, " +"sewage treatment, and at last regulate the switch to provide water to Tux's shower.") ] } Image { id: sky anchors.top: parent.top sourceSize.width: parent.width source: activity.url + "sky.svg" height: (background.height - landscape.paintedHeight) / 2 + landscape.paintedHeight * 0.3 z: 1 } Image { id: sea anchors { left: parent.left bottom: parent.bottom } sourceSize.width: parent.width source: activity.url + "sea.svg" height: (background.height - landscape.paintedHeight) / 2 + landscape.paintedHeight * 0.7 z:3 } Image { id: landscape anchors.fill: parent sourceSize.width: parent.width source: activity.url + "landscape.svg" z: 6 } Image { id: tuxboat opacity: 1 source: activity.url + "boat.svg" sourceSize.width: parent.width*0.15 sourceSize.height: parent.height*0.15 anchors{ bottom: parent.bottom bottomMargin: 15 } x:0 z:30 Behavior on opacity { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 200 } } NumberAnimation on x { id: anim running: false to: parent.width - tuxboat.width duration: 15000 easing.type: Easing.InOutSine onRunningChanged: { if(!anim.running) { items.audioEffects.play('qrc:/gcompris/src/activities/watercycle/resource/harbor2.wav') tuxboat.opacity = 0 boatparked.opacity = 1 shower.stop() if(!sun.hasRun) info.setText('start') } else { items.audioEffects.play('qrc:/gcompris/src/activities/watercycle/resource/harbor1.wav') } } } } Image { id: boatparked source: activity.url + "boat_parked.svg" sourceSize.width: parent.width*0.15 sourceSize.height: parent.height*0.15 opacity: 0 anchors { right: parent.right bottom: parent.bottom bottomMargin: 20 } z: 29 Behavior on opacity { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 200 } } } Image { id: sun source: activity.url + "sun.svg" sourceSize.width: parent.width * 0.05 anchors { left: parent.left top: parent.top leftMargin: parent.width*0.05 topMargin: parent.height * 0.28 } z: 2 property bool hasRun: false MouseArea { id: sun_area anchors.fill: sun onClicked: { if(cloud.opacity == 0) sun.up() } } Behavior on anchors.topMargin { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 5000 } } function up() { items.audioEffects.play('qrc:/gcompris/src/core/resource/sounds/bleep.wav') info.setText('sun') sun.hasRun = true sun.anchors.topMargin = parent.height * 0.05 vapor.up() } function down() { sun.anchors.topMargin = parent.height * 0.28 } } Image { id: vapor opacity: 0 state: "vapor" source: activity.url + "vapor.svg" sourceSize.width: parent.width*0.05 anchors { left: sun.left } y: background.height * 0.28 z: 10 SequentialAnimation { id: vaporAnim loops: 2 NumberAnimation { target: vapor property: "opacity" duration: 200 from: 0 to: 1 } NumberAnimation { target: vapor property: "y" duration: 5000 from: background.height * 0.28 to: background.height * 0.1 } NumberAnimation { target: vapor property: "opacity" duration: 200 from: 1 to: 0 } NumberAnimation { target: vapor property: "y" duration: 0 to: background.height * 0.28 } onRunningChanged: { if(!running) info.setText('cloud') } } function up() { vaporAnim.start() cloud.up() } function down() { } } Image { id: cloud opacity: 0 source: activity.url + "cloud.svg" sourceSize.width: parent.width * 0.20 fillMode: Image.PreserveAspectFit width: 0 anchors { top: parent.top topMargin: parent.height * 0.05 } x: parent.width * 0.05 z: 11 MouseArea { id: cloud_area anchors.fill: cloud onClicked: { sun.down() rain.up() } } ParallelAnimation { id: cloudanimOn running: false PropertyAnimation { target: cloud property: 'opacity' easing.type: Easing.InOutQuad duration: 5000 from: 0 to: 1 } PropertyAnimation { target: cloud property: 'width' easing.type: Easing.InOutQuad duration: 15000 from: 0 to: cloud.sourceSize.width } PropertyAnimation { target: cloud property: 'x' easing.type: Easing.InOutQuad duration: 15000 from: background.width * 0.05 to: background.width * 0.4 } } SequentialAnimation { id: cloudanimOff running: false PropertyAnimation { target: cloud property: 'opacity' easing.type: Easing.InOutQuad duration: 3000 from: 1 to: 0 } PropertyAnimation { target: cloud property: 'width' easing.type: Easing.InOutQuad duration: 0 to: 0 } PropertyAnimation { target: cloud property: 'x' easing.type: Easing.InOutQuad duration: 0 to: background.width * 0.05 } } function up() { cloudanimOn.start() } function down() { opacity = 0 width = 0 x = parent.width * 0.05 } } Image { id: rain source: activity.url + "rain.svg" sourceSize.height: cloud.height * 2 opacity: 0 anchors { top: cloud.bottom } x: cloud.x z: 10 Behavior on opacity { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 300 } } SequentialAnimation{ id: rainAnim running: false loops: 10 NumberAnimation { target: rain property: "scale" duration: 500 to: 0.95 } NumberAnimation { target: rain property: "scale" duration: 500 to: 1 } onRunningChanged: { if(!running) { rain.down() cloud.down() } } } function up() { items.audioEffects.play('qrc:/gcompris/src/core/resource/sounds/water.wav') info.setText('rain') opacity = 1 rainAnim.start() } function down() { opacity = 0 } } Image { id: river source: activity.url + "river.svg" sourceSize.width: parent.width * 0.415 sourceSize.height: parent.height * 0.74 width: parent.width * 0.415 height: parent.height * 0.74 opacity: level > 0 ? 1 : 0 anchors { top: parent.top left: parent.left topMargin: parent.height*0.1775 leftMargin: parent.width*0.293 } z: 10 Behavior on opacity { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 5000 } } property double level: 0 } Image { id: reservoir1 source: activity.url + "reservoir1.svg" sourceSize.width: parent.width*0.06 width: parent.width*0.06 height: parent.height*0.15 anchors { top: parent.top left: parent.left topMargin: parent.height*0.2925 leftMargin: parent.width*0.3225 } opacity: river.level > 0.2 ? 1 : 0 z: 10 Behavior on opacity { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 5000 } } } Image { id: reservoir2 source: activity.url + "reservoir2.svg" sourceSize.width: parent.width*0.12 width: parent.width*0.12 height: parent.height*0.155 anchors { top: parent.top left: parent.left topMargin: parent.height*0.2925 leftMargin: parent.width*0.285 } opacity: river.level > 0.5 ? 1 : 0 z: 10 Behavior on opacity { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 5000 } } } Image { id: reservoir3 source: activity.url + "reservoir3.svg" sourceSize.width: parent.width*0.2 width: parent.width*0.2 height: parent.height*0.17 anchors { top: parent.top left: parent.left topMargin: parent.height*0.29 leftMargin: parent.width*0.25 } opacity: river.level > 0.8 ? 1 : 0 z: 10 Behavior on opacity { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 5000 } } } Image { id: waterplant source: activity.url + "motor.svg" sourceSize.width: parent.width*0.07 sourceSize.height: parent.height*0.08 anchors { top: parent.top left:parent.left topMargin: parent.height*0.38 leftMargin: parent.width*0.4 } z: 20 property bool running: false MouseArea { id: motor_area enabled: river.level > 0.2 anchors.fill: parent onClicked: { items.audioEffects.play('qrc:/gcompris/src/activities/watercycle/resource/bubble.wav') info.setText('tower') waterplant.running = true } } } Image { id: fillpipe anchors.fill: parent sourceSize.width: parent.width width: parent.width source: activity.url + "fillwater.svg" opacity: waterplant.running ? 1 : 0.1 z: 9 Behavior on opacity { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 300 } } } Image { id: sewageplant source: activity.url + "waste.svg" sourceSize.height: parent.height * 0.15 anchors { top: parent.top left: parent.left topMargin: parent.height*0.74 leftMargin: parent.width*0.66 } z: 11 property bool running: false MouseArea { id: waste_area enabled: river.opacity == 1 anchors.fill: parent onClicked: { items.audioEffects.play('qrc:/gcompris/src/activities/watercycle/resource/bubble.wav') info.setText('shower') sewageplant.running = true } } } Image { id: wastepipe anchors.fill: parent sourceSize.width: parent.width width: parent.width source: activity.url + "wastewater.svg" opacity: sewageplant.running ? 1 : 0.1 z: 10 Behavior on opacity { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 300 } } } Image { id: tower source: activity.url + "watertower.svg" sourceSize.width: parent.width*0.18 sourceSize.height: parent.height*0.15 anchors { top: parent.top right: parent.right topMargin: parent.height*0.225 rightMargin: parent.width*0.175 } z: 10 property double level: 0 Image { id: towerfill scale: tower.level source: activity.url + "watertowerfill.svg" sourceSize.width: tower.width*0.4 anchors { top: tower.top left:tower.left topMargin: tower.height*0.13 leftMargin: tower.width*0.3 } Behavior on scale { PropertyAnimation { duration: timer.interval } } } } Image { id: shower source: activity.url + "shower.svg" sourceSize.height: parent.height*0.2 sourceSize.width: parent.width*0.15 anchors { bottom: parent.bottom right: parent.right bottomMargin: parent.height* 0.32 rightMargin: parent.width*0.012 } z: 10 visible: false property bool on: false MouseArea { id: shower_area anchors.fill: parent onClicked: { if(!shower.on && river.opacity == 1 && wastepipe.opacity > 0.8 && fillpipe.opacity > 0.8 && tower.level > 0.5) shower.start() else shower.stop() } } function start() { shower.on = true shower.visible = true showerhot.visible = true tuxbath.visible = true showercold.visible = false tuxoff.visible = false if(!items.cycleDone) { info.setText('done') bonus.good('smiley') items.cycleDone = true } items.audioEffects.play('qrc:/gcompris/src/activities/watercycle/resource/apert.wav') } function stop() { shower.on = false shower.visible = true showerhot.visible = false tuxbath.visible = false showercold.visible = true tuxoff.visible = true } function hide() { shower.visible = false shower.on = false tuxoff.visible = false showercold.visible = false showerhot.visible = false tuxbath.visible = false } } Image { id: tuxoff source:activity.url + "tuxoff.svg" sourceSize.width: shower.height * 0.4 anchors { horizontalCenter: shower.horizontalCenter verticalCenter: shower.verticalCenter verticalCenterOffset: shower.height*0.1 horizontalCenterOffset: -shower.width*0.05 } z: 10 visible: false } Image { id: tuxbath source: activity.url + "tuxbath.svg" sourceSize.width: shower.height * 0.5 anchors { horizontalCenter: shower.horizontalCenter verticalCenter: shower.verticalCenter verticalCenterOffset: shower.height*0.1 horizontalCenterOffset: -shower.width*0.05 } z: 10 visible: false } Image { id: showerhot source: activity.url + "showerhot.svg" sourceSize.width: shower.width * 0.1 anchors { right: shower.right top: shower.top rightMargin: shower.width*0.15 topMargin: shower.height*0.25 } z: 10 visible: false } Image { id: showercold source: activity.url + "showercold.svg" sourceSize.width: shower.width * 0.1 anchors { right: shower.right top: shower.top rightMargin: shower.width*0.15 topMargin: shower.height*0.25 } z: 10 visible: false } // Manage stuff that changes periodically Timer { id: timer interval: 100 running: true repeat: true onTriggered: { if(rain.opacity > 0.9 && river.level < 1) { river.level += 0.01 } if(river.level > 0 && fillpipe.opacity > 0.9 && tower.level < 1 && !shower.on) { river.level -= 0.02 tower.level += 0.05 } if(tower.level > 0 && shower.on) { tower.level -= 0.02 } if(tower.level <= 0 && boatparked.opacity) { shower.stop() } } } GCText { id: info visible: true fontSize: smallSize font.weight: Font.DemiBold horizontalAlignment: Text.AlignHCenter anchors { top: parent.top topMargin: 10 *ApplicationInfo.ratio right: parent.right rightMargin: 5 * ApplicationInfo.ratio left: parent.left leftMargin: parent.width * 0.50 } width: parent.width wrapMode: Text.WordWrap z: 100 onTextChanged: textanim.start() property string newKey SequentialAnimation { id: textanim NumberAnimation { target: info property: "opacity" duration: 200 from: 1 to: 0 } PropertyAction { target: info property: 'text' value: items.dataset[info.newKey] } NumberAnimation { target: info property: "opacity" duration: 200 from: 0 to: 1 } } function setText(key) { if(newKey != key) { newKey = key textanim.start() } } } Rectangle { id: infoBg z: 99 anchors.fill: info color: '#8ebfc7' radius: width * 0.01 opacity: info.text ? 0.7 : 0 Behavior on opacity { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 200 } } } DialogHelp { id: dialogHelp onClose: home() } Bar { id: bar content: BarEnumContent { value: help | home } onHelpClicked: { displayDialog(dialogHelp) } onHomeClicked: activity.home() } Bonus { id:bonus } } }