diff --git a/src/activities/binary_bulb/ActivityInfo.qml b/src/activities/binary_bulb/ActivityInfo.qml index cb78b84a8..85d3a9345 100644 --- a/src/activities/binary_bulb/ActivityInfo.qml +++ b/src/activities/binary_bulb/ActivityInfo.qml @@ -1,40 +1,40 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2018 Rajat Asthana * * 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 GCompris 1.0 ActivityInfo { name: "binary_bulb/BinaryBulb.qml" difficulty: 3 icon: "binary_bulb/binary_bulb.svg" author: "Rajat Asthana <rajatasthana4@gmail.com>" demo: true //: Activity title title: qsTr("Binary bulbs") //: Help title description: qsTr("This activity helps you to learn the concept of conversion of decimal number system to binary number system.") //intro: "Turn on the right bulbs to represent the binary of the given decimal number. When you have achieved it, press OK" //: Help goal goal: qsTr("To get familiar with the binary number system") //: Help prerequisite prerequisite: qsTr("Decimal number system") //: Help manual manual: qsTr("Turn on the right bulbs to represent the binary of the given decimal number. When you have achieved it, press OK.") credit: "" - section: "experiment sciences" + section: "sciences experiment" createdInVersion: 9500 } diff --git a/src/activities/canal_lock/ActivityInfo.qml b/src/activities/canal_lock/ActivityInfo.qml index 509e7d387..db10c3ab2 100644 --- a/src/activities/canal_lock/ActivityInfo.qml +++ b/src/activities/canal_lock/ActivityInfo.qml @@ -1,40 +1,40 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Bruno Coudoin * * 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 GCompris 1.0 ActivityInfo { name: "canal_lock/CanalLock.qml" difficulty: 2 icon: "canal_lock/canal_lock.svg" author: "Bruno Coudoin <bruno.coudoin@gcompris.net>" demo: false //: Activity title title: qsTr("Operate a canal lock") //: Help title description: qsTr("Tux is in trouble, and needs to take his boat through a lock. Help Tux and find out how a canal lock works.") //intro: "You are responsible for the lock and you must help Tux pass through. Click on the valves to cause either a drop or an increase in the water level, and click on the gates to open or close a path." //: Help goal goal: "" //: Help prerequisite prerequisite: "" //: Help manual manual: qsTr("You are in charge of the canal lock. Open the gates and the locks in the right order, so Tux can travel through the gates in both directions.") credit: qsTr("Drawing by Stephane Cabaraux.") - section: "experiment sciences" + section: "sciences experiment" createdInVersion: 0 } diff --git a/src/activities/chronos/ActivityInfo.qml b/src/activities/chronos/ActivityInfo.qml index b1d98b635..16f013d77 100644 --- a/src/activities/chronos/ActivityInfo.qml +++ b/src/activities/chronos/ActivityInfo.qml @@ -1,44 +1,44 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Pulkit Gupta * * 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 GCompris 1.0 ActivityInfo { name: "chronos/Chronos.qml" difficulty: 1 icon: "chronos/chronos.svg" author: "Pulkit Gupta <pulkitgenius@gmail.com>" demo: true //: Activity title title: qsTr("Chronos") //: Help title description: qsTr("Drag and Drop the items to organize the story") // intro: "Slide the pictures into the order that tells the story" //: Help goal goal: qsTr("Sort the pictures into the order that tells the story") //: Help prerequisite prerequisite: qsTr("Tell a short story") //: Help manual manual: qsTr("Pick from the pictures on the left and put them on the red dots") credit: qsTr("Moon photo is copyright NASA. The space sounds come from Tuxpaint and Vegastrike which are released under the GPL license. The transportation images are copyright Franck Doucet. Dates of Transportation are based on those found in <http://www.wikipedia.org>.") - section: "experiment history" + section: "sciences history" createdInVersion: 4000 } diff --git a/src/activities/color_mix/ActivityInfo.qml b/src/activities/color_mix/ActivityInfo.qml index a2cb7655c..5d72b3d96 100644 --- a/src/activities/color_mix/ActivityInfo.qml +++ b/src/activities/color_mix/ActivityInfo.qml @@ -1,44 +1,44 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Stephane Mankowski * * 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 GCompris 1.0 ActivityInfo { name: "color_mix/ColorMix.qml" difficulty: 4 icon: "color_mix/color_mix.svg" author: "Stephane Mankowski <stephane@mankowski.fr>" demo: true //: Activity title title: qsTr("Mixing color of paint") //: Help title description: qsTr("Discover paint color mixing.") // intro: "Match the colour by moving the sliders on the tubes of paint" //: Help goal goal: qsTr("Mix the primary colors to match to the given color") //: Help prerequisite prerequisite: "" //: Help manual manual: qsTr(" The activity deals with mixing primary colors of paint (subtractive mixing). In case of paints the inks absorb different colors of light falling on it, subtracting it from what you see. The more ink you add, the more light is absorbed, and the darker the combined color gets. We can mix just three primary colors to make many new colors. The primary colors for paint/ink are cyan (a special shade of blue), magenta (a special shade of pink), and yellow. ") credit: qsTr("Images from http://openclipart.org") - section: "experiment color sciences" + section: "sciences experiment color" createdInVersion: 0 } diff --git a/src/activities/color_mix_light/ActivityInfo.qml b/src/activities/color_mix_light/ActivityInfo.qml index 462ef2cc8..9cbd18b16 100644 --- a/src/activities/color_mix_light/ActivityInfo.qml +++ b/src/activities/color_mix_light/ActivityInfo.qml @@ -1,43 +1,43 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Stephane Mankowski * * 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 GCompris 1.0 ActivityInfo { name: "color_mix_light/ColorMixLight.qml" difficulty: 4 icon: "color_mix_light/color_mix_light.svg" author: "Stephane Mankowski <stephane@mankowski.fr>" demo: true //: Activity title title: qsTr("Mixing colors of light") //: Help title description: qsTr("Discover light color mixing.") // intro: "Match the colour by moving the sliders on the torches" //: Help goal goal: qsTr("Mix the primary colors to match to the given color.") //: Help prerequisite prerequisite: "" //: Help manual manual: qsTr(" The activity deals with mixing primary colors of light (additive mixing). In case of light it is just the opposite of mixing color with paints! The more light you add the lighter the resultant color will get. Primary colors of light are red, green and blue.") credit: qsTr("Images from http://openclipart.org") - section: "experiment color sciences" + section: "sciences experiment color" createdInVersion: 0 } diff --git a/src/activities/digital_electricity/ActivityInfo.qml b/src/activities/digital_electricity/ActivityInfo.qml index 1a66246d9..bc2723e13 100644 --- a/src/activities/digital_electricity/ActivityInfo.qml +++ b/src/activities/digital_electricity/ActivityInfo.qml @@ -1,40 +1,40 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2016 Pulkit Gupta * * 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 GCompris 1.0 ActivityInfo { name: "digital_electricity/DigitalElectricity.qml" difficulty: 6 icon: "digital_electricity/digital_electricity.svg" author: "Pulkit Gupta <pulkitnsit@gmail.com>" demo: true //: Activity title title: qsTr("Digital Electricity") //: Help title description: qsTr("Create and simulate a digital electric schema") //intro: "Learn how digital electronics work and create your own circuit." //: Help goal goal: qsTr("Freely create a digital electric schema with a real time simulation of it.") //: Help prerequisite prerequisite: qsTr("Requires some basic understanding of the concept of digital electronics.") //: Help manual manual: qsTr("Drag electrical components from the selector and drop them in the working area. In the working area, you can move the components by dragging them. To delete a component, select the deletion tool on top of the component selector, and select the component. You can click on the component and then on the rotate button to rotate it or info button to get information about it. You can click on the switch to open and close it. To connect two terminals, click on first terminal, then on second terminal. To deselect terminal or delete tool, click on any empty area. The simulation is updated in real time by any user action.") credit: "" - section: "experiment sciences" + section: "sciences experiment" createdInVersion: 9000 } diff --git a/src/activities/explore_farm_animals/ActivityInfo.qml b/src/activities/explore_farm_animals/ActivityInfo.qml index c089bc62e..d89534c27 100644 --- a/src/activities/explore_farm_animals/ActivityInfo.qml +++ b/src/activities/explore_farm_animals/ActivityInfo.qml @@ -1,47 +1,47 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Djalil Mesli * * 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 GCompris 1.0 ActivityInfo { name: "explore_farm_animals/ExploreFarmAnimals.qml" difficulty: 2 icon: "explore_farm_animals/explore_farm_animals.svg" author: "Djalil Mesli <djalilmesli@gmail.com>" demo: true //: Activity title title: qsTr("Explore Farm Animals") //: Help title description: qsTr("Learn about farm animals, what sounds they make, and interesting facts.") // intro: "Learn about farmyard animals and the noises that they make." //: Help goal goal: qsTr("Learn to associate animal sounds with the animal name and what the animal looks like.") //: Help prerequisite prerequisite: "" //: Help manual manual: qsTr("There are three levels in this game. In level one, players enjoy exploring each animal on the screen. Click on an animal and learn about it, what its name is, what sound it makes, and what it looks like. Study well this information, because you will be tested in level 2 and 3! In level two, a random animal sound is played and you must find which animal makes this sound. Click on the corresponding animal. If you'd like to hear the animal sound repeated, click on the play button. When you have matched all animals correctly, you win! In level three, a random text prompt is displayed and you must click on the animal that matches the text. When you have matched all texts correctly, you win! ") credit: "" - section: "experiment sciences" + section: "sciences experiment" createdInVersion: 0 } diff --git a/src/activities/explore_world_animals/ActivityInfo.qml b/src/activities/explore_world_animals/ActivityInfo.qml index 1678b97eb..cf4aa9d52 100644 --- a/src/activities/explore_world_animals/ActivityInfo.qml +++ b/src/activities/explore_world_animals/ActivityInfo.qml @@ -1,49 +1,49 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Johnny Jazeix * * Authors: * Beth Hadley (GTK+ version) * 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 GCompris 1.0 ActivityInfo { name: "explore_world_animals/ExploreWorldAnimals.qml" difficulty: 4 icon: "explore_world_animals/explore_world_animals.svg" author: "Johnny Jazeix <jazeix@gmail.com>" demo: true //: Activity title title: qsTr("Explore World Animals") //: Help title description: qsTr("Learn about world animals, interesting facts and their location on a map.") // intro: "Learn about world animals and locate them on a map." //: Help goal goal: "" //: Help prerequisite prerequisite: "" //: Help manual manual: qsTr("There are two levels in this game. In level one, players enjoy exploring each animal on the screen. Click on the question mark, and learn about the animal, what it's name is, and what it looks like. Study well this information, because you will be tested in level 2! In level two, a random text prompt is displayed and you must click on the animal that matches the text. When you have matched all texts correctly, you win! ") credit: "" - section: "experiment sciences" + section: "sciences experiment" createdInVersion: 0 } diff --git a/src/activities/family/ActivityInfo.qml b/src/activities/family/ActivityInfo.qml index 97443b4fd..535d46c45 100644 --- a/src/activities/family/ActivityInfo.qml +++ b/src/activities/family/ActivityInfo.qml @@ -1,42 +1,42 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2016 Rajdeep Kaur * * 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 GCompris 1.0 ActivityInfo { name: "family/Family.qml" difficulty: 2 icon: "family/family.svg" author: "Rajdeep Kaur <rajdeep.kaur@kde.org>" demo: true //: Activity title title: qsTr("Family") //: Help title description: qsTr("Select the name you should call this family member") //intro: "Let us understand what to call our relatives" //: Help goal goal: qsTr("Learn the relationships in a family, according to the lineal system used in most Western societies") //: Help prerequisite prerequisite: qsTr("Reading skills") //: Help manual manual: qsTr("A family tree is shown.\n" + "The circles are linked with lines to mark the relations. Married couples are marked with a ring on the link.\n" + "You are the person in the white circle. Select the name you should call the person in the orange circle.\n") credit: "" - section: "experiment history" + section: "sciences history" createdInVersion: 9000 } diff --git a/src/activities/family_find_relative/ActivityInfo.qml b/src/activities/family_find_relative/ActivityInfo.qml index ba00432d9..f7a53f455 100644 --- a/src/activities/family_find_relative/ActivityInfo.qml +++ b/src/activities/family_find_relative/ActivityInfo.qml @@ -1,42 +1,42 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2017 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 GCompris 1.0 ActivityInfo { name: "family_find_relative/Family_find_relative.qml" difficulty: 2 icon: "family_find_relative/family_find_relative.svg" author: "Rudra Nil Basu <rudra.nil.basu.1996@gmail.com>" demo: true //: Activity title title: qsTr("Point the relatives") //: Help title description: "Click on a pair corresponding to the given relation" //intro: "Click on a pair that defines the given relation" //: Help goal goal: qsTr("Learn the relationships in a family, according to the lineal system used in most Western societies") //: Help prerequisite prerequisite: qsTr("Reading, moving and clicking with the mouse") //: Help manual manual: qsTr("A family tree is shown, with some instructions.\n" + "The circles are linked with lines to mark the relations. Married couples are marked with a ring on the link.\n" + "Click on a pair of family members which corresponds to the given relation.") credit: "" - section: "experiment history" + section: "sciences history" createdInVersion: 9000 } diff --git a/src/activities/geo-country/ActivityInfo.qml b/src/activities/geo-country/ActivityInfo.qml index dd1fab39b..5ce202320 100644 --- a/src/activities/geo-country/ActivityInfo.qml +++ b/src/activities/geo-country/ActivityInfo.qml @@ -1,44 +1,44 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Pulkit Gupta * * 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 GCompris 1.0 ActivityInfo { name: "geo-country/GeoCountry.qml" difficulty: 2 icon: "geo-country/geo-country.svg" author: "Pulkit Gupta <pulkitgenius@gmail.com>" demo: true //: Activity title title: qsTr("Locate the region") //: Help title description: qsTr("Drag and Drop the regions to redraw the whole country") // intro: "Drag and drop the regions to complete the country maps." //: Help goal goal: "" //: Help prerequisite prerequisite: "" //: Help manual manual: qsTr("Drag and drop different regions of the country to correct locations to redraw the whole country.") credit: "" - section: "experiment history" + section: "sciences geography" createdInVersion: 4000 } diff --git a/src/activities/geography/ActivityInfo.qml b/src/activities/geography/ActivityInfo.qml index d4db0b118..3a21ee78e 100644 --- a/src/activities/geography/ActivityInfo.qml +++ b/src/activities/geography/ActivityInfo.qml @@ -1,44 +1,44 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Pulkit Gupta * * 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 GCompris 1.0 ActivityInfo { name: "geography/Geography.qml" difficulty: 2 icon: "geography/geography.svg" author: "Pulkit Gupta <pulkitgenius@gmail.com>" demo: true //: Activity title title: qsTr("Locate the countries") //: Help title description: qsTr("Drag and Drop the items to redraw the whole map") // intro: "Drag and drop the objects to complete the map." //: Help goal goal: "" //: Help prerequisite prerequisite: "" //: Help manual manual: qsTr("Drag and drop the map pieces to correct locations to redraw the whole map.") credit: "" - section: "experiment geography" + section: "sciences geography" createdInVersion: 4000 } diff --git a/src/activities/intro_gravity/ActivityInfo.qml b/src/activities/intro_gravity/ActivityInfo.qml index aacb13f42..992bd614b 100644 --- a/src/activities/intro_gravity/ActivityInfo.qml +++ b/src/activities/intro_gravity/ActivityInfo.qml @@ -1,40 +1,40 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Siddhesh suthar * * 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 GCompris 1.0 ActivityInfo { name: "intro_gravity/IntroGravity.qml" difficulty: 4 icon: "intro_gravity/intro_gravity.svg" author: "Siddhesh suthar <siddhesh.it@gmail.com>" demo: true //: Activity title title: qsTr("Intro gravity") //: Help title description: qsTr("Introduction to the concept of gravity") //intro: "Change the planets' gravitational force by moving the sliders up and down. Be careful not to crash Tux's spaceship." //: Help goal goal: qsTr("Maintain the spaceship in the middle without crashing into the planets or the asteroids") //: Help prerequisite prerequisite: "" //: Help manual manual: qsTr("Follow the instructions when you run the activity.") credit: "" - section: "experiment sciences" + section: "sciences experiment" createdInVersion: 4000 } diff --git a/src/activities/land_safe/ActivityInfo.qml b/src/activities/land_safe/ActivityInfo.qml index 00e3e06f5..90f1b5b31 100644 --- a/src/activities/land_safe/ActivityInfo.qml +++ b/src/activities/land_safe/ActivityInfo.qml @@ -1,49 +1,49 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2016 Holger Kaelberer * * 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 GCompris 1.0 ActivityInfo { name: "land_safe/LandSafe.qml" difficulty: 4 icon: "land_safe/land_safe.svg" author: "Matilda Bernard <serah4291@gmail.com> (Gtk+), Holger Kaelberer <holger.k@elberer.de> (Qt Quick)" demo: true //: Activity title title: qsTr("Land Safe") //: Help title description: qsTr("Understanding acceleration due to gravity.") // intro: "Use the arrow keys to pilot your spaceship safely onto the landing pad." //: Help goal goal: qsTr("Pilot the spaceship towards the green landing area.") //: Help prerequisite prerequisite: "" //: Help manual manual: qsTr("Acceleration due to gravity experienced by the spaceship is directly proportional to the mass of the planet and inversely proportional to the square of the distance from the center of the planet. Thus, with every planet the acceleration will differ and as the spaceship comes closer and closer to the planet the acceleration increases. Use the up/down keys to control the thrust and the right/left keys to control direction. On touch screens you can control the rocket through the corresponding on-screen buttons. The accelerometer on the right border shows your rocket's overall vertical acceleration including gravitational force. In the upper green area of the accelerometer your acceleration is higher than the gravitational force, in the lower red area it's lower, and on the blue baseline in the yellow middle area the two forces cancel each other out. In higher levels, you can use the right/left keys to rotate the spaceship. By rotating the spaceship you can trigger an acceleration in non-vertical direction using the up/down keys. The landing platform is green if your speed is fine for a safe landing.") credit: "" - section: "experiment sciences" + section: "sciences experiment" enabled: ApplicationInfo.isBox2DInstalled //ApplicationInfo.hasShader createdInVersion: 6000 } diff --git a/src/activities/louis-braille/ActivityInfo.qml b/src/activities/louis-braille/ActivityInfo.qml index 7e277cc0f..0e4c29d19 100644 --- a/src/activities/louis-braille/ActivityInfo.qml +++ b/src/activities/louis-braille/ActivityInfo.qml @@ -1,40 +1,40 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Arkit Vora * * 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 GCompris 1.0 ActivityInfo { name: "louis-braille/LouisBraille.qml" difficulty: 4 icon: "louis-braille/louis-braille.svg" author: "Arkit Vora <arkitvora123@gmail.com>" demo: true //: Activity title title: qsTr("The History of Louis Braille") //: Help title description: qsTr("Review the major dates of the inventor of the Braille System") //intro: "Discover the history of Louis Braille." //: Help goal goal: "" //: Help prerequisite prerequisite: "" //: Help manual manual: qsTr("Read the history of Louis Braille, his biography, and the invention of the Braille system. Click on the previous and next buttons to move between the story pages. At the end, arrange the sequence in chronological order.") credit: qsTr("Louis Braille Video: <http:\/\/www.youtube.com/watch?v=9bdfC2j_4x4>") - section: "experiment history" + section: "sciences history" createdInVersion: 4000 } diff --git a/src/activities/menu/Menu.qml b/src/activities/menu/Menu.qml index f9c4d0938..5e6158cd8 100644 --- a/src/activities/menu/Menu.qml +++ b/src/activities/menu/Menu.qml @@ -1,842 +1,842 @@ /* 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); } Connections { // At the launch of the application, box2d check is performed after we // first initialize the menu. This connection is to refresh // automatically the menu at start. target: ApplicationInfo onIsBox2DInstalledChanged: { ActivityInfoTree.filterByTag(activity.currentTag, currentCategory) ActivityInfoTree.filterLockedActivities() ActivityInfoTree.filterEnabledActivities() } } // @cond INTERNAL_DOCS property string url: "qrc:/gcompris/src/activities/menu/resource/" property var sections: [ { icon: activity.url + "all.svg", tag: "favorite" }, { icon: activity.url + "computer.svg", tag: "computer" }, { icon: activity.url + "discovery.svg", tag: "discovery", categories: [{ "logic": qsTr("Logic") }, { "arts": qsTr("Fine Arts") }, { "music": qsTr("Music") } ] }, { - icon: activity.url + "experience.svg", - tag: "experiment", - categories: [{ "sciences": qsTr("Sciences") }, + icon: activity.url + "sciences.svg", + tag: "sciences", + categories: [{ "experiment": qsTr("Experiment") }, { "history": qsTr("History") }, { "geography": qsTr("Geography") } ] }, { icon: activity.url + "fun.svg", tag: "fun" }, { icon: activity.url + "math.svg", tag: "math", categories: [{ "numeration": qsTr("Numeration") }, { "arithmetic": qsTr("Arithmetic") }, { "measures": qsTr("Measures") } ] }, { icon: activity.url + "puzzle.svg", tag: "puzzle" }, { icon: activity.url + "reading.svg", tag: "reading", categories: [{ "letters": qsTr("Letters") }, { "words": qsTr("Words") }, { "vocabulary": qsTr("Vocabulary") } ] }, { icon: activity.url + "strategy.svg", tag: "strategy" }, { icon: activity.url + "search-icon.svg", tag: "search" } ] property string currentTag: sections[0].tag property var currentTagCategories: [] property string currentCategory: "" /// @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: { if(currentActiveGrid == section) { if(currentTagCategories && currentTagCategories.length != 0) { currentActiveGrid = categoriesGrid; } else { currentActiveGrid = activitiesGrid; } } else if(currentActiveGrid == categoriesGrid) { currentActiveGrid = activitiesGrid; } else { currentActiveGrid = section; } } 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 visible: ApplicationSettings.sectionVisible 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 activity.currentTagCategories = modelData.categories if(modelData.categories != undefined) { currentCategory = Object.keys(modelData.categories[0])[0]; } else { currentCategory = "" } particles.burst(10) if(modelData.tag === "search") { ActivityInfoTree.filterBySearch(searchTextField.text); } else { ActivityInfoTree.filterByTag(modelData.tag, currentCategory) 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 activityCellWidth: horizontal ? background.width / Math.floor(background.width / iconWidth) : (background.width - section.width) / Math.floor((background.width - section.width) / iconWidth) property int activityCellHeight: iconWidth * 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: categoriesGrid model: currentTagCategories anchors.top: horizontal ? section.bottom : parent.top interactive: false keyNavigationWraps: true width: horizontal ? main.width : main.width - section.width visible: activity.currentTag !== "search" x: { if(currentTagCategories) { if(horizontal) { return categoriesGrid.width / (4 * (currentTagCategories.length+1)) } else { return categoriesGrid.width / (4 * (currentTagCategories.length+1)) + section.width } } else { return 0 } } cellWidth: currentTagCategories ? categoriesGrid.width / currentTagCategories.length : 0 cellHeight: height height: searchTextField.height delegate: Button { id: button style: GCButtonStyle { selected: currentCategory === button.category } width: categoriesGrid.width / (currentTagCategories.length + 1) height: categoriesGrid.cellHeight text: Object.values(modelData)[0] property string category: Object.keys(modelData)[0] onClicked: { selectCurrentItem() } function selectCurrentItem() { categoriesGrid.currentIndex = index currentCategory = Object.keys(modelData)[0] ActivityInfoTree.filterByTag(currentTag, currentCategory) ActivityInfoTree.filterLockedActivities() ActivityInfoTree.filterEnabledActivities() } } 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 } } } } GridView { id: activitiesGrid anchors { top: { if(activity.currentTag === "search") return searchBar.bottom else return categoriesGrid.bottom } 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: parent.width height: parent.height anchors.horizontalCenter: parent.horizontalCenter color: "white" opacity: 0.5 } Image { source: "qrc:/gcompris/src/activities/" + icon; anchors.top: activityBackground.top anchors.horizontalCenter: parent.horizontalCenter width: iconWidth - activitiesGrid.spacing height: width sourceSize.width: width fillMode: Image.PreserveAspectFit 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 } } // The scroll buttons GCButtonScroll { visible: !ApplicationInfo.useOpenGL anchors.right: parent.right anchors.rightMargin: 5 * ApplicationInfo.ratio anchors.bottom: activitiesGrid.bottom anchors.bottomMargin: 30 * ApplicationInfo.ratio onUp: activitiesGrid.flick(0, 1127) onDown: activitiesGrid.flick(0, -1127) upVisible: activitiesGrid.visibleArea.yPosition <= 0 ? false : true downVisible: activitiesGrid.visibleArea.yPosition >= 1 ? false : true } Rectangle { id: categories width: horizontal ? parent.width : parent.width - (section.width+10) height: searchTextField.height visible: sections[activity.currentTag] === "search" anchors { top: horizontal ? section.bottom : categoriesGrid.top left: horizontal ? undefined : section.right } } 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 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, currentCategory) ActivityInfoTree.filterLockedActivities() ActivityInfoTree.filterEnabledActivities() } else ActivityInfoTree.filterBySearch(searchTextField.text); home() } } } } diff --git a/src/activities/menu/resource/experience.svg b/src/activities/menu/resource/sciences.svg similarity index 100% rename from src/activities/menu/resource/experience.svg rename to src/activities/menu/resource/sciences.svg diff --git a/src/activities/renewable_energy/ActivityInfo.qml b/src/activities/renewable_energy/ActivityInfo.qml index b3281d8f4..7d95da94c 100644 --- a/src/activities/renewable_energy/ActivityInfo.qml +++ b/src/activities/renewable_energy/ActivityInfo.qml @@ -1,40 +1,40 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Sagar Chand Agarwal * * 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 GCompris 1.0 ActivityInfo { name: "renewable_energy/RenewableEnergy.qml" difficulty: 4 icon: "renewable_energy/renewable_energy.svg" author: "Sagar Chand Agarwal <atomsagar@gmail.com>" demo: true //: Activity title title: qsTr("Renewable Energy") //: Help title description: qsTr("Tux has come back from fishing on his boat. Bring the electrical system back up so he can have light in his home. ") //intro: "Click on the different stages that go to make up the power supply." //: Help goal goal: qsTr("Learn about an electrical system based on renewable energy") //: Help manual manual: qsTr("Click on different active elements: sun, cloud, dam, solar array, wind farm and transformers, in order to reactivate the entire electrical system. 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. ") //: Help prerequisite prerequisite: "" credit: qsTr("Drawing by Stephane Cabaraux") - section: "experiment sciences" + section: "sciences experiment" createdInVersion: 5000 } diff --git a/src/activities/roman_numerals/ActivityInfo.qml b/src/activities/roman_numerals/ActivityInfo.qml index cdfee06ae..91aea7031 100644 --- a/src/activities/roman_numerals/ActivityInfo.qml +++ b/src/activities/roman_numerals/ActivityInfo.qml @@ -1,44 +1,44 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2016 Bruno Coudoin < bruno.coudoin@gcompris.net> * * 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 GCompris 1.0 ActivityInfo { name: "roman_numerals/RomanNumerals.qml" difficulty: 4 icon: "roman_numerals/roman_numerals.svg" author: "Bruno Coudoin <bruno.coudoin@gcompris.net>" demo: true //: Activity title title: qsTr("Roman numerals") //: Help title description: "" //intro: "Learn and practice roman to arabic numerals conversion" //: Help goal goal: "" //: Help prerequisite prerequisite: "" //: Help manual manual: qsTr("A Roman numeral is the name for a number when it is written in the way the Romans used to write numbers. Roman numerals are not used very often today in the west. They are used to write the names of kings and queens, or popes. For example: Queen Elizabeth II. They may be used to write the year a book or movie was made.\n The building of the roman numbers is made up by an agglutination of numbers (the thousands, joined with the hundreds, joined with the tens, joined with the units → just like the arab decimal system). This agglutination of numbers is interpreted as the sum of these particular numbers (again → just like the arab decimal system: you add up thousands+hundreds+tens+units, and you write the respective figures combined).\n Examples:\n 2394: we got a sum of 2000 (MM), 300 (CCC), 90 (XC) and 4 units (IV), so we write this combined: MMCCCXCIV\n MMMCMXLIX: we got first thousands (MMM=3000), then we got hundreds (CM=1000–100=900), then we got tens (XL=50–10=40), and at last we got units (IX=10–1=9), so we write this in the decimal system: 3949.") credit: "" - section: "experiment history" + section: "sciences history" createdInVersion: 7000 } diff --git a/src/activities/solar_system/ActivityInfo.qml b/src/activities/solar_system/ActivityInfo.qml index 65264a4dd..b8458c6ac 100644 --- a/src/activities/solar_system/ActivityInfo.qml +++ b/src/activities/solar_system/ActivityInfo.qml @@ -1,43 +1,43 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2018 Aman Kumar Gupta * * Authors: * Aman Kumar Gupta * * 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 GCompris 1.0 ActivityInfo { name: "solar_system/SolarSystem.qml" difficulty: 5 icon: "solar_system/solar_system.svg" author: "Aman Kumar Gupta <gupta2140@gmail.com>" demo: true //: Activity title title: qsTr("Solar System") //: Help title description: qsTr("Answer the questions with a correctness of 100%.") //intro: "Answer the questions presented and get a 100% correctness among the options." //: Help goal goal: qsTr("Learn information about the solar system. If you want to learn more about astronomy, try downloading KStars (https://edu.kde.org/kstars/) or Stellarium (http://stellarium.org/) which are open source astronomy softwares.") //: Help prerequisite prerequisite: "" //: Help manual manual: qsTr("Click on a planet or the Sun to reveal questions. Each question contains 4 options. One of those is 100% correct. Try to answer the questions until you get a 100% closeness in the closeness meter.") credit: "" - section: "experiment sciences" + section: "sciences experiment" createdInVersion: 9500 } diff --git a/src/activities/submarine/ActivityInfo.qml b/src/activities/submarine/ActivityInfo.qml index 5392bb226..d11449500 100644 --- a/src/activities/submarine/ActivityInfo.qml +++ b/src/activities/submarine/ActivityInfo.qml @@ -1,60 +1,60 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2017 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 GCompris 1.0 ActivityInfo { name: "submarine/Submarine.qml" difficulty: 5 icon: "submarine/submarine.svg" author: "Rudra Nil Basu <rudra.nil.basu.1996@gmail.com>" demo: true //: Activity title title: qsTr("Pilot a Submarine") //: Help title description: qsTr("Drive the submarine to the end point.") //intro: "Drive the submarine to the right end of the screen without colliding with any objects" //: Help goal goal: qsTr("Learn how to control a submarine") //: Help prerequisite prerequisite: qsTr("Move and click using the mouse, physics basics") //: Help manual manual: qsTr("Control the various parts of the submarine (the engine, rudders and ballast tanks) to reach the end point. Controls: Engine: D / Right arrow: Increase velocity A / Left arrow: Decrease velocity Ballast tanks: Switch filling of Ballast tanks: W / Up arrow: Central ballast tank R: Left ballast tank T: Right ballast tank Switch flush ballast tanks: S / Down arrow: Central ballast tank F: Left ballast tank G: Right ballast tank Diving planes: + : Increase diving plane angle - : Decrease diving plane angle") credit: "" - section: "experiment sciences" + section: "sciences experiment" enabled: ApplicationInfo.isBox2DInstalled createdInVersion: 9000 } diff --git a/src/activities/watercycle/ActivityInfo.qml b/src/activities/watercycle/ActivityInfo.qml index 1b18af88c..32321d301 100644 --- a/src/activities/watercycle/ActivityInfo.qml +++ b/src/activities/watercycle/ActivityInfo.qml @@ -1,40 +1,40 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 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 GCompris 1.0 ActivityInfo { name: "watercycle/Watercycle.qml" difficulty: 3 icon: "watercycle/watercycle.svg" author: "Sagar Chand Agarwal <atomsagar@gmail.com>" demo: true //: Activity title title: qsTr("Watercycle") //: Help title description: qsTr("Tux has come back from fishing on his boat. Bring the water system back up so he can take a shower.") //intro: "Click on the various active elements that make up the water supply. Then press the shower button for Tux." //: Help goal goal: qsTr("Learn the water cycle") //: Help prerequisite prerequisite: "" //: Help manual manual: qsTr("Click on different active elements: sun, cloud, pumping station, and the sewage treatment plant, in order to reactivate the entire water system. When the system is back up and Tux is in the shower, push the shower button for him.") credit: qsTr("Drawing by Stephane Cabaraux.") - section: "experiment sciences" + section: "sciences experiment" createdInVersion: 5000 }