diff --git a/src/activities/explore_monuments/resource/board/board1.qml b/src/activities/explore_monuments/resource/board/board1.qml index 02b39fa5c..18a1ccb31 100644 --- a/src/activities/explore_monuments/resource/board/board1.qml +++ b/src/activities/explore_monuments/resource/board/board1.qml @@ -1,115 +1,115 @@ /* GCompris * * Copyright (C) 2015 Ayush Agrawal * * Authors: * Bruno Coudoin (GTK+ version) * Ayush Agrawal (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 backgroundImage: "qrc:/gcompris/src/activities/explore_monuments/resource/wonders/worldbg.jpg" - property var tab : [ + property var tab: [ { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Chichén Itzá"), "text": qsTr("Chichen Itza, meaning “at the mouth of the Itza well”, is a Mayan City on the Yucatan Peninsula in Mexico, between Valladolid and Merida. It was established before the period of Christopher Colombus and probably served as the religion center of Yucatan for a while."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/wonders/chichenItza.jpg", "text2": qsTr("Chichén Itzá"), "x": "0.206", "y": "0.498", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Colosseum"), "text": qsTr("The Colosseum or Coliseum is today the most recognizable of Rome's Classical buildings. Even 2,000 years after it was built, and despite centuries when the abandoned building was pillaged for building materials, it is instantly recognizable as a classical template for the stadia of today. It was the first permanent amphitheatre to be raised in Rome, and the most impressive arena the Classical world had yet seen."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/wonders/colosseum.jpg", "text2": qsTr("Colosseum"), "x": "0.514", "y": "0.406", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Christ the Redeemer"), "text": qsTr("Christ the Redeemer is an Art Deco statue of Jesus Christ in Rio de Janeiro, Brazil. A symbol of Christianity across the world, the statue has also become a cultural icon of both Rio de Janeiro and Brazil."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/wonders/christTheRedeemer.jpg", "text2": qsTr("Christ the Redeemer"), "x": "0.351", "y": "0.628", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("The Great Wall of China"), "text": qsTr("The Great Wall, was listed as a World Heritage by UNESCO in 1987. Just like a gigantic dragon, it winds up and down across deserts, grasslands, mountains and plateaus, stretching approximately 13,170 miles (21,196 kilometers) from east to west of China."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/wonders/greatWallofChina.jpg", "text2": qsTr("The Great Wall of China"), "x": "0.765", "y": "0.445", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Machu Picchu"), "text": qsTr("Machu Picchu stands 2,430 m above sea-level, in the middle of a tropical mountain forest, in an extraordinarily beautiful setting. It was probably the most amazing urban creation of the Inca Empire at its height; its giant walls, terraces and ramps seem as if they have been cut naturally in the continuous rock escarpments. The natural setting, on the eastern slopes of the Andes, encompasses the upper Amazon basin with its rich diversity of flora and fauna."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/wonders/machuPicchu.jpg", "text2": qsTr("Machu Picchu"), "x": "0.267", "y": "0.598", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Petra"), "text": qsTr("Petra is a historical and archaeological city in the southern Jordanian governorate of Ma'an that is famous for its rock-cut architecture and water conduit system. Established possibly as early as 312 BC as the capital city of the Arab Nabataeans, it is a symbol of Jordan, as well as Jordan's most-visited tourist attraction."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/wonders/petra.jpg", "text2": qsTr("Petra"), "x": "0.586", "y": "0.462", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Taj Mahal, India"), "text": qsTr("The Taj Mahal is a white marble mausoleum located on the southern bank of the Yamuna River in the Indian city of Agra. It was commissioned in 1632 by the Mughal emperor Shah Jahan reigned to house the tomb of his favorite wife of three, Mumtaz Mahal."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/wonders/tajMahal.jpg", "text2": qsTr("Taj Mahal"), "x": "0.692", "y": "0.471", "height": "0.07", "width": "0.07" } ] - property var instructions : [ + property var instructions: [ { "text": qsTr("The 7 New Wonders of World.") }, { "text": qsTr("Click on location where the given monument is located.") } ] } diff --git a/src/activities/explore_monuments/resource/board/board2.qml b/src/activities/explore_monuments/resource/board/board2.qml index e03ffded9..d072858c3 100644 --- a/src/activities/explore_monuments/resource/board/board2.qml +++ b/src/activities/explore_monuments/resource/board/board2.qml @@ -1,169 +1,169 @@ /* GCompris * * Copyright (C) 2015 Ayush Agrawal * * Authors: * Bruno Coudoin (GTK+ version) * Ayush Agrawal (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 backgroundImage: "qrc:/gcompris/src/activities/explore_monuments/resource/india/indiabg.jpg" - property var tab : [ + property var tab: [ { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Golden Temple"), "text": qsTr("Sri Harimandir Sahib, known as the Golden Temple in Amritsar, is one of the most revered spiritual sites of Sikhism. The construction was intended to build a place of worship for men and women from all walks of life and all religions to worship God equally."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/india/goldenTemple.jpg", - "text2" : qsTr("Golden Temple"), + "text2": qsTr("Golden Temple"), "x": "0.256", "y": "0.206", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Hawa Mahal"), "text": qsTr("Hawa Mahal, is a palace in Jaipur, India, so named because it was essentially a high screen wall built so the women of the royal household could observe street festivals while unseen from the outside. Constructed of red and pink sandstone, the palace sits on the edge of the City Palace, and extends to the zenana, or women's chambers."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/india/hawaMahal.jpg", - "text2" : qsTr("Hawa Mahal"), + "text2": qsTr("Hawa Mahal"), "x": "0.230", "y": "0.290", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Taj Mahal"), "text": qsTr("The Taj Mahal is a white marble mausoleum located on the southern bank of the Yamuna River in the Indian city of Agra. It was commissioned in 1632 by the Mughal emperor Shah Jahan reigned to house the tomb of his favorite wife of three, Mumtaz Mahal."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/india/tajMahal.jpg", - "text2" : qsTr("Taj Mahal"), + "text2": qsTr("Taj Mahal"), "x": "0.416", "y": "0.298", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Gateway of India"), "text": qsTr("The Gateway of India is one of India's most unique landmarks situated in the city of Mumbai. The colossal structure was constructed in 1924. Located at the tip of Apollo Bunder, the gateway overlooks the Mumbai harbor, bordered by the Arabian Sea in the Colaba district. The Gateway of India is a monument that marks India's chief ports and is a major tourist attraction for visitors who arrive in India for the first time."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/india/gatewayofIndia.jpg", - "text2" : qsTr("Gateway of India"), + "text2": qsTr("Gateway of India"), "x": "0.179", "y": "0.540", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Great Stupa"), "text": qsTr("The Great Stupa at Sanchi is the oldest stone structure in India and was originally commissioned by the emperor Ashoka the Great in the 3rd century BCE. Its nucleus was a simple hemispherical brick structure built over the relics of the Buddha. It was crowned by the chatra, a parasol-like structure symbolizing high rank, which was intended to honor and shelter the relics."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/india/greatStupa.jpg", - "text2" : qsTr("Great Stupa"), + "text2": qsTr("Great Stupa"), "x": "0.329", "y": "0.396", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Ajanta Caves"), "text": qsTr("The Ajanta Caves are about 29 rock-cut Buddhist cave monuments which date from the 2nd century BCE to about 480 CE in Aurangabad district of Maharashtra state of India. The caves include paintings and rock cut sculptures described as among the finest surviving examples of ancient Indian art, particularly expressive paintings that present emotion through gesture, pose and form. Since 1983, the caves have been a UNESCO World Heritage Site"), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/india/ajantaCave.jpg", - "text2" : qsTr("Ajanta Caves"), + "text2": qsTr("Ajanta Caves"), "x": "0.304", "y": "0.502", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Konark Sun Temple"), "text": qsTr("The Konark Sun Temple (also spelled Konarak) is a 13th-century Hindu temple dedicated to the Sun god. Shaped like a giant chariot, the temple is known for the exquisite stone carvings that cover the entire structure."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/india/konarkSunTemple.jpg", - "text2" : qsTr("Konark Sun Temple"), + "text2": qsTr("Konark Sun Temple"), "x": "0.506", "y": "0.538", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Mysore Palace"), "text": qsTr("Mysore Palace or Mysore Maharaja Palace is one of the largest and most spectacular monuments in India. Also known as Amba Vilas, it is located in the heart of the city of Mysore. The palace was initially built by the Wodeyar kings in the 14th century."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/india/mysorePalace.jpg", - "text2" : qsTr("Mysore Palace"), + "text2": qsTr("Mysore Palace"), "x": "0.295", "y": "0.748", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Charminar"), "text": qsTr("The Charminar in Hyderabad was constructed in 1591 by Mohammed Quli Qutab Shah. He built the Charminar to mark the end of plague in the Hyderabad city. Since the construction of the Charminar, the Hyderabad city has almost become synonymous with the monument. The Charminar is a massive and impressive structure with four minarets."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/india/charminar.jpg", - "text2" : qsTr("Charminar"), + "text2": qsTr("Charminar"), "x": "0.360", "y": "0.588", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Victoria Memorial"), "text": qsTr("The Victoria Memorial was built to commemorate the peak of the British Empire in India. It represents the architectural climax of Kolkata city, and blends the best of the British and Mughal architecture. The Victoria Memorial hall was built with white Makrana marbles."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/india/victoriaMemorials.jpg", - "text2" : qsTr("Victoria Memorial"), + "text2": qsTr("Victoria Memorial"), "x": "0.670", "y": "0.414", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Rang Ghar"), "text": qsTr("The Rang Ghar is a two-storied building which once served as the royal sports-pavilion where Ahom kings and nobles were spectators at games like buffalo fights and other sports at Rupahi Pathar - particularly during the Rongali Bihu festival in the Ahom capital of Rangpur."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/india/rangGhar.jpg", - "text2" : qsTr("Rang Ghar"), + "text2": qsTr("Rang Ghar"), "x": "0.860", "y": "0.306", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Qutub Minar"), "text": qsTr("Qutub Minar at 74 meters, is the tallest brick minaret in the world, and the second tallest minar in India after Fateh Burj at Mohali. Along with the ancient and medieval monuments surrounding it, they form the Qutb Complex, which is a UNESCO World Heritage Site. The tower, located in the Mehrauli area of Delhi, is made of red sandstone and marble."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/india/qutubMinar.jpg", - "text2" : qsTr("Qutub Minar"), + "text2": qsTr("Qutub Minar"), "x": "0.328", "y": "0.254", "height": "0.07", "width": "0.07" } ] - property var instructions : [ + property var instructions: [ { "text": qsTr("Monuments of India") }, { "text": qsTr("Click on location where the given monument is located.") } ] } diff --git a/src/activities/explore_monuments/resource/board/board3.qml b/src/activities/explore_monuments/resource/board/board3.qml index 297ca94f1..4a40e39ec 100644 --- a/src/activities/explore_monuments/resource/board/board3.qml +++ b/src/activities/explore_monuments/resource/board/board3.qml @@ -1,147 +1,147 @@ /* GCompris * * Copyright (C) 2015 Ayush Agrawal * * Authors: * Bruno Coudoin (GTK+ version) * Ayush Agrawal (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 backgroundImage: "qrc:/gcompris/src/activities/explore_monuments/resource/france/francebg.jpg" - property var tab : [ + property var tab: [ { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Mont-Saint-Michel"), "text": qsTr("Mont Saint-Michel is a rocky tidal island located in Normandy, at the mouth of the Couesnon River, near the city of Avranches. The highest point of the island is the spire at the top of the Abbey’s bell tower, 170 metres above sea level. They are currently less than 50 people living on the island. The unique feature of Mont Saint-Michel is that it is completely surrounded by water and can only be accessed at low tide."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/france/montStMichel.jpg", - "text2" : qsTr("Mont-Saint-Michel"), + "text2": qsTr("Mont-Saint-Michel"), "x": "0.278", "y": "0.268", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Cité de Carcassonne"), "text": qsTr("With more than 4 million visitors each year, Carcassonne is among the most prestigious tourist destinations in France, on a par with Mont Saint Michel and Paris’ Notre-Dame. A UNESCO World Heritage Site since 1997, Carcassonne is a dramatic representation of medieval architecture perched on a rocky spur that towers above the River Aude, southeast of the new town."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/france/citedeCarcassonne.jpg", - "text2" : qsTr("Cité de Carcassonne"), + "text2": qsTr("Cité de Carcassonne"), "x": "0.588", "y": "0.875", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Reims Cathedral"), "text": qsTr("By size, Reims Cathedral is quite an extraordinary construction: designed to accommodate huge crowds, its gigantic dimensions include a surface area of 6,650 m2 and a length of 122m. A Gothic art masterpiece and the coronation site of the Kings of France, it has been listed as a UNESCO World Heritage Site since 1991. The Mecca for tourists in the Champagne region welcomes 1,500,000 visitors every year."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/france/reimsCathedral.jpg", - "text2" : qsTr("Reims Cathedral"), + "text2": qsTr("Reims Cathedral"), "x": "0.687", "y": "0.196", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Pont du Gard"), "text": qsTr("The Pont du Gard was built shortly before the Christian era to allow the aqueduct of Nîmes (which is almost 50 km long) to cross the Gardon river. The Roman architects and hydraulic engineers who designed this bridge, which stands almost 50 m high and is on three levels – the longest measuring 275 m – created a technical as well as an artistic masterpiece."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/france/pontduGard.jpg", - "text2" : qsTr("Pont du Gard"), + "text2": qsTr("Pont du Gard"), "x": "0.691", "y": "0.757", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Arles Amphitheatre"), "text": qsTr("This Roman amphitheatre dates back to the first century BC and was originally the setting for gladiator battles and chariot races during Antiquity. Modified many times, it was finally renovated during the 19th century."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/france/arlesAmphitheater.jpg", - "text2" : qsTr("Arles Amphitheatre"), + "text2": qsTr("Arles Amphitheatre"), "x": "0.730", "y": "0.831", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Château de Chambord"), "text": qsTr("Prestigious, majestic, colossal, extravagant are these adjectives enough to fully describe the splendour of Chambord? The largest chateau of the Loire Valley is indeed full of surprises for those who are lucky enough to explore its domain. This remarkable piece of architecture is certainly more than just a castle: it is the dream of a King, transformed into reality."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/france/chateaudeChambord.jpg", - "text2" : qsTr("Château de Chambord"), + "text2": qsTr("Château de Chambord"), "x": "0.456", "y": "0.388", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Rocamadour"), "text": qsTr("When coming from Cahors by road, Rocamadour suddenly appears clinging precariously against the cliff above the Alzou canyon. One of the most famous villages of Europe, Rocamadour seemingly defies the laws of gravity. The vertiginous Citadel of Faith is best summed up by an old local saying: “houses on the river, churches on the houses, rocks on the churches, castle on the rock”."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/france/rocamadour.jpg", - "text2" : qsTr("Rocamadour"), + "text2": qsTr("Rocamadour"), "x": "0.538", "y": "0.658", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Palais des Papes"), "text": qsTr("The star attraction of Avignon is the Palais des Papes (Palace of the Popes), a vast castle of significant historic, religious and architectural importance. It is one of the largest and most important medieval Gothic buildings in Europe."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/france/palaisdesPapes.jpg", - "text2" : qsTr("Palais des Papes"), + "text2": qsTr("Palais des Papes"), "x": "0.771", "y": "0.768", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Château de Chenonceau"), "text": qsTr("Chateau de Chenonceau is among many of Loire Valley Chateaux that boast amazing architecture and historical significance drawing thousands of tourists from all over the world. Chateau de Chenonceau is sometimes called the Ladies Castle by some historians due to feminine figures having greatly influenced the construction and development of this French Chateau over the centuries."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/france/chateaudeChenonceau.jpg", - "text2" : qsTr("Château de Chenonceau"), + "text2": qsTr("Château de Chenonceau"), "x": "0.449", "y": "0.464", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Eiffel Tower"), "text": qsTr("The world-famous metallic tower was built for the Paris International Exhibition in 1889 for the centenary of the French Revolution. At the time of its inauguration, it was the world’s tallest monument."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/france/eiffelTower.jpg", - "text2" : qsTr("Eiffel Tower"), + "text2": qsTr("Eiffel Tower"), "x": "0.538", "y": "0.304", "height": "0.07", "width": "0.07" }, ] - property var instructions : [ + property var instructions: [ { "text": qsTr("Monuments of France") }, { "text": qsTr("Click on location where the given monument is located.") } ] } diff --git a/src/activities/explore_monuments/resource/board/board4.qml b/src/activities/explore_monuments/resource/board/board4.qml index fc23862ac..d4dd5d62a 100644 --- a/src/activities/explore_monuments/resource/board/board4.qml +++ b/src/activities/explore_monuments/resource/board/board4.qml @@ -1,114 +1,114 @@ /* GCompris * * Copyright (C) 2015 Ayush Agrawal * * Authors: * Bruno Coudoin (GTK+ version) * Ayush Agrawal (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 backgroundImage: "qrc:/gcompris/src/activities/explore_monuments/resource/germany/germanybg.jpg" - property var tab : [ + property var tab: [ { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Neuschwanstein Castle"), "text": qsTr("The ultimate fairytale castle, Neuschwanstein is situated on a rugged hill near Füssen in southwest Bavaria. It was the inspiration for the Sleeping Beauty castles in the Disneyland parks. The castle was commissioned by King Ludwig II of Bavaria who was declared insane when the castle was almost completed in 1886 and found dead a few days later. Neuschwanstein is the most photographed building in the country and one of the most popular tourist attractions in Germany."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/germany/neuschwansteinCastle.jpg", - "text2" : qsTr("Neuschwanstein Castle"), + "text2": qsTr("Neuschwanstein Castle"), "x": "0.525", "y": "0.938", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Trier Imperial Baths"), "text": qsTr("The Trier Imperial Baths are a large Roman bath complex in Trier, Germany. It is designated as part of the Roman Monuments, Cathedral of St. Peter and Church of Our Lady in Trier UNESCO World Heritage Site."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/germany/trierImperialBaths.jpg", - "text2" : qsTr("Trier Imperial Baths"), + "text2": qsTr("Trier Imperial Baths"), "x": "0.205", "y": "0.721", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Brandenburg Gate"), "text": qsTr("The Brandenburg Gate is the only surviving city gate of Berlin and symbolizes the reunification of East and West Berlin. Built in the 18th century, the Brandenburg Gate is the entry to Unter den Linden, the prominent boulevard of linden trees which once led directly to the palace of the Prussian monarchs. It is regarded as one of the most famous landmarks in Europe."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/germany/brandenburgGate.jpg", - "text2" : qsTr("Brandenburg Gate"), + "text2": qsTr("Brandenburg Gate"), "x": "0.753", "y": "0.331", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Berlin Cathedral"), "text": qsTr("The Cathedral of Berlin is the largest church in the city, and it serves as a vital center for the Protestant church of Germany. Reaching out well beyond the borders of the parish and of Berlin, the cathedral attracts thousands of visitors, year after year, from Germany and abroad."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/germany/berlinCathedral.jpg", - "text2" : qsTr("Berlin Cathedral"), + "text2": qsTr("Berlin Cathedral"), "x": "0.736", "y": "0.255", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Schwerin Palace"), "text": qsTr("This romantic fairytale fortress, with all its many towers, domes and wings, is reflected in the waters of Lake Schwerin. It was completed in 1857 and symbolized the powerful dynasty of its founder, Friedrich Franz II."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/germany/schwerinPalace.jpg", - "text2" : qsTr("Schwerin Palace"), + "text2": qsTr("Schwerin Palace"), "x": "0.585", "y": "0.206", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Aula Palatina"), "text": qsTr("The long, high-ceilinged brick structure was the throne hall of the Roman emperor until the destruction of the city by Germanic tribes. The invaders built a settlement inside the roofless ruin. In the 12th century, the apse was converted into a tower to accommodate the Archbishop of Trier."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/germany/aulaPalatina.jpg", - "text2" : qsTr("Aula Palatina"), + "text2": qsTr("Aula Palatina"), "x": "0.245", "y": "0.655", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Worms Cathedral"), "text": qsTr("Worms Cathedral (Wormser Dom) also known as the Cathedral of St Peter is a Romanesque cathedral in the German city of Worms. A sandstone structure with distinctive conical towers, Worms Cathedral was constructed in phases throughout the twelfth century and mostly completed by 1181."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/germany/wormsCathedral.jpg", - "text2" : qsTr("Worms Cathedral"), + "text2": qsTr("Worms Cathedral"), "x": "0.332", "y": "0.697", "height": "0.07", "width": "0.07" }, ] - property var instructions : [ + property var instructions: [ { "text": qsTr("Monuments of Germany") }, { "text": qsTr("Click on location where the given monument is located.") } ] } diff --git a/src/activities/explore_monuments/resource/board/board5.qml b/src/activities/explore_monuments/resource/board/board5.qml index 1a8b860ad..3b97aafcc 100644 --- a/src/activities/explore_monuments/resource/board/board5.qml +++ b/src/activities/explore_monuments/resource/board/board5.qml @@ -1,147 +1,147 @@ /* GCompris * * Copyright (C) 2015 Ayush Agrawal * * Authors: * Bruno Coudoin (GTK+ version) * Ayush Agrawal (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 backgroundImage: "qrc:/gcompris/src/activities/explore_monuments/resource/usa/usbg.jpg" - property var tab : [ + property var tab: [ { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Cabrillo"), "text": qsTr("Situated on Point Loma in San Diego, California, Cabrillo National Monument commemorates the first European to land on the West Coast of the United States, Juan Rodriguez Cabrillo. Portuguese by birth, Cabrillo carried the Spanish flag in his conquests of the New World. He arrived at San Diego Bay in September 1542, three months after departing from Barra de Navidad on the west coast of Mexico."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/usa/cabrillo.jpg", - "text2" : qsTr("Cabrillo"), + "text2": qsTr("Cabrillo"), "x": "0.182", "y": "0.586", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Canyon de Chelly"), "text": qsTr("The stoic red ruins of Canyon de Chelly in northeastern Arizona are at once part of the National Park Service and the Navajo Nation, having been established as a national monument in 1931. A number of important early Native American sites are preserved in the nearly 84,000 acres of parkland, and Canyon de Chelly also offers an array of Southwestern geological formations, including Spider Rock, an 800-foot-tall sandstone spire that rises eerily from the bottom of the canyon floor."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/usa/canyondeChelly.jpg", - "text2" : qsTr("Canyon de Chelly"), + "text2": qsTr("Canyon de Chelly"), "x": "0.277", "y": "0.569", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Castillo de San Marcos"), "text": qsTr("Set on more than 20 acres in St. Augustine, Florida, the Castillo de San Marcos was completed as the city's defensive fort in 1695, when Florida was still a Spanish territory. Constructed out of the rare coquina limestone, the star-shaped Castillo also is the oldest masonry fort in the country."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/usa/castillodeSanMarcos.jpg", - "text2" : qsTr("Castillo de San Marcos"), + "text2": qsTr("Castillo de San Marcos"), "x": "0.759", "y": "0.668", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Castle Clinton"), "text": qsTr("This round, sandstone fort sitting at the bottom of Manhattan Island predates Ellis Island by about 50 years as the first U.S. immigration checkpoint. Castle Clinton (nps.gov/cacl) was originally built as a fort to protect New York from a British invasion during the War of 1812, and was dedicated as a national monument in 1946."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/usa/castleClinton.jpg", - "text2" : qsTr("Castle Clinton"), + "text2": qsTr("Castle Clinton"), "x": "0.841", "y": "0.390", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("George Washington Birthplace"), "text": qsTr("The George Washington Birthplace National Monument is in Westmoreland County, Virginia, United States. Originally settled by John Washington, George Washington's great-grandfather, George Washington was born here on February 22, 1732. He lived here until age three, returning later as a teenager."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/usa/georgeWashingtonBirthplace.jpg", - "text2" : qsTr("George Washington Birthplace"), + "text2": qsTr("George Washington Birthplace"), "x": "0.836", "y": "0.532", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Lincoln Memorial"), "text": qsTr("Built in white stone with 36 iconic columns, The Lincoln Memorial is one of the most recognized structures in the United States. The memorial is at the west end of the National Mall, in West Potomac Park, and is an example in Neoclassical architecture. It features a solitary, 19-foot-tall statue of Abraham Lincoln sitting in contemplation, which is flanked on both side chambers with inscriptions of Lincoln’s Second Inaugural Address and arguably his most famous speech, the Gettysburg Address."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/usa/lincolnMemorial.jpg", - "text2" : qsTr("Lincoln Memorial"), + "text2": qsTr("Lincoln Memorial"), "x": "0.791", "y": "0.456", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Mount Rushmore"), "text": qsTr("Mt. Rushmore stands as a shrine of democracy, a monument and memorial to George Washington, this country's birth, growth and ideals. Mount Rushmore symbolizes the greatness of this nation through the greatness of its leaders. The epic sculpture of Mount Rushmore depicts the faces of four exalted American presidents that symbolize this nation's rich history, rugged determination and lasting achievements."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/usa/mountRushmore.jpg", - "text2" : qsTr("Mount Rushmore"), + "text2": qsTr("Mount Rushmore"), "x": "0.492", "y": "0.399", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Navajo"), "text": qsTr("Navajo National Monument is a National Monument located within the northwest portion of the Navajo Nation territory in northern Arizona, which was established to preserve three-well preserved cliff dwellings of the Ancestral Puebloan People: Keet Seel (Kitsʼiil), Betatakin (Bitátʼahkin), and Inscription House (Tsʼah Biiʼ Kin). The monument is high on the Shonto plateau, overlooking the Tsegi Canyon system, west of Kayenta, Arizona. It features a visitor center with a museum, two short self-guided mesa top trails, two small campgrounds, and a picnic area. Rangers guide visitors on free tours of the Keet Seel and Betatakin cliff dwellings. The Inscription House site, further west, is currently closed to public access."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/usa/navajo.jpg", - "text2" : qsTr("Navajo"), + "text2": qsTr("Navajo"), "x": "0.300", "y": "0.498", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Statue of Liberty"), "text": qsTr("Perhaps the best-known monument and symbol of the United States is the Statue of Liberty, which sits on its own tiny island in New York City. The statue was a gift from the people of France and was dedicated in October 1886."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/usa/statueofLiberty.jpg", - "text2" : qsTr("Statue of Liberty"), + "text2": qsTr("Statue of Liberty"), "x": "0.860", "y": "0.309", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Fort Sumter"), "text": qsTr("Originally built as a defensive structure following the War of 1812, it was at this oceanfront fortification in Charleston Harbor, South Carolina, that the first shots of the Civil War were fired. Inside Fort Sumter, a number of exhibits offer perspectives on U.S. history, particularly the divisions between North and South that eventually resulted in the war."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/usa/fortSumter.jpg", - "text2" : qsTr("Fort Sumter"), + "text2": qsTr("Fort Sumter"), "x": "0.769", "y": "0.589", "height": "0.07", "width": "0.07" }, ] - property var instructions : [ + property var instructions: [ { "text": qsTr("Monuments of US") }, { "text": qsTr("Click on location where the given monument is located.") } ] } diff --git a/src/activities/explore_monuments/resource/board/board6.qml b/src/activities/explore_monuments/resource/board/board6.qml index 51a6bbe73..cd26fb161 100644 --- a/src/activities/explore_monuments/resource/board/board6.qml +++ b/src/activities/explore_monuments/resource/board/board6.qml @@ -1,80 +1,80 @@ /* GCompris * * Copyright (C) 2016 Ayush Agrawal * * Authors: * Ayush Agrawal (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 backgroundImage: "qrc:/gcompris/src/activities/explore_monuments/resource/egypt/egyptbg.jpg" - property var tab : [ + property var tab: [ { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Great Pyramid of Giza"), "text": qsTr("The Great Pyramid of Giza is also known as the Pyramid of Khufu or the Pyramid of Cheops. It is considered to be the oldest of all the Seven Wonders of the Ancient World. It is also the largest of all the three pyramids in the Giza. It is situated in Giza Necropolis of Egypt. The initial construction has been started by Egyptian Pharaoh Khufu then it was continued by his son Khafre and finally completed by Menkaure. It took almost 20 years to build the pyramid and approximately 2 million blocks of stone has been used in the construction. The height of the pyramid is approximately 139 meters making it the highest pyramid of Egypt."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/egypt/greatPyramidOfGiza.jpg", - "text2" : qsTr("Great Pyramid of Giza"), + "text2": qsTr("Great Pyramid of Giza"), "x": "0.627", "y": "0.141", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Bent Pyramid"), "text": qsTr("The Bent Pyramid located at Dahshur was the second pyramid built by pharaoh Sneferu. Mysteriously, this true pyramid rises from the desert at an angle of 55 degrees and then suddenly changes to a more gradual angle of 43 degrees. One theory holds that due to the steepness of the original angle the weight to be added above the inner chambers and passageways became too large, forcing the builders to adopt a shallower angle. Today, the Bent Pyramid is the only pyramid in Egypt of which the outer casing of polished limestone is still largely intact."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/egypt/bentPyramid.jpg", - "text2" : qsTr("Bent Pyramid"), + "text2": qsTr("Bent Pyramid"), "x": "0.596", "y": "0.200", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Pyramid of Meidum"), "text": qsTr("Five miles south of Saqqara in Egypt stands the mysterious tower-like pyramid of Meidum, which today scarcely resembles a typical pyramid at all. The pyramid was probably built during the reign of the 4th Dynasty pharaoh Sneferu, although it is believed by some that the pyramid may have been started by Sneferu’s predecessor, Huni. At some point during its construction the steps of the pyramid were filled with limestone encasing marking the first attempt by the ancient Egyptians at the construction of a true pyramid."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/egypt/meidumPyramid.jpg", - "text2" : qsTr("Pyramid of Meidum"), + "text2": qsTr("Pyramid of Meidum"), "x": "0.609", "y": "0.260", "height": "0.07", "width": "0.07" }, { "image": "qrc:/gcompris/src/activities/explore_monuments/resource/key.svg", "title": qsTr("Red Pyramid"), "text": qsTr("Red Pyramid was one of the finest and successful attempts by Pharaoh Sneferu in building world’s first ever smooth sided pyramid during the Ancient Egypt period. The height of the pyramid is 104 meters making it the world’s 4th largest pyramid in Egypt. The pyramid has been built with red limestone stones and hence the name. The local people of Egypt called it as el-heram el-watwaat meaning the Bat Pyramid."), "image2": "qrc:/gcompris/src/activities/explore_monuments/resource/egypt/redPyramid.jpg", - "text2" : qsTr("Red Pyramid"), + "text2": qsTr("Red Pyramid"), "x": "0.535", "y": "0.240", "height": "0.07", "width": "0.07" } ] - property var instructions : [ + property var instructions: [ { "text": qsTr("Egyptian pyramids") }, { "text": qsTr("Click on location where the given pyramid is located.") } ] } diff --git a/src/activities/gnumch-multiples/ActivityInfo.qml b/src/activities/gnumch-multiples/ActivityInfo.qml index 615d50fe2..d13bb17b5 100644 --- a/src/activities/gnumch-multiples/ActivityInfo.qml +++ b/src/activities/gnumch-multiples/ActivityInfo.qml @@ -1,45 +1,44 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Manuel Tondeur * * 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 -// Must be updated once GnumchEquality is reviewed ActivityInfo { name: "gnumch-multiples/GnumchMultiples.qml" difficulty: 3 icon: "gnumch-multiples/gnumch-multiples.svg" author: "Manuel Tondeur <manueltondeur@gmail.com>" demo: true //: Activity title title: qsTr("Gnumch Multiples") //: Help title description: qsTr("Guide the Number Muncher to all the multiples of the number at the bottom of the screen.") // intro: "Guide the number eater with the arrow keys to the multiples of the displayed number and press space to swallow them." //: Help goal goal: qsTr("Learn about multiples and factors.") //: Help prerequisite prerequisite: "" //: Help manual manual: qsTr("The multiples of a number are all the numbers that are equal to the original number times another number. For example, 24, 36, 48 and 60 are all multiples of 12. 25 is not a multiple of 12 because there isn't any number that can be multiplied by 12 to get 25. If one number is a factor of a second number, then the second number is a multiple of the first number. Again, you can think of multiples as families, and factors are the people who belong to those families. The factor 5, has parents 10, grandparents 15, great-grandparents 20, great-great-grandparents 25, and every extra step of 5 is another great- in front! But the number 5 does not belong in the 8 or 23 families. You can't fit any number of 5s into 8 or 23 with nothing left over. So 8 isn't a multiple of 5, nor is 23. Only 5, 10, 15, 20, 25 ... are multiples (or families or steps) of 5.") + "

" + qsTr("If you have a keyboard you can use the arrow keys to move and hit space to swallow a number. With a mouse you can click on the block next to your position to move and click again to swallow the number. With a touch screen you can do like with a mouse or swipe anywhere in the direction you want to move and tap to swallow the number.") + "

" + qsTr("Take care to avoid the Troggles.") credit: "" section: "math" createdInVersion: 0 } diff --git a/src/activities/guessnumber/Guessnumber.qml b/src/activities/guessnumber/Guessnumber.qml index f6f5f0f35..d4e757fdb 100644 --- a/src/activities/guessnumber/Guessnumber.qml +++ b/src/activities/guessnumber/Guessnumber.qml @@ -1,159 +1,159 @@ /* GCompris - guessnumber.qml * * Copyright (C) 2014 Thib ROMAIN * * Authors: * Clement Coudoin (GTK+ version) * Thib ROMAIN (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 "guessnumber.js" as Activity ActivityBase { id: activity onStart: focus = true onStop: {} pageComponent: Image { id: background - fillMode : Image.PreserveAspectCrop + fillMode: Image.PreserveAspectCrop source: "resource/cave.svg" anchors.fill: parent signal start signal stop onWidthChanged: helico.init() onHeightChanged: helico.init() 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 helico: helico property alias textArea: textArea property alias infoText: userInfo property alias answerArea: answerArea property alias numpad: numpad property int currentMax: 0 property int maxSize: 120 property int minSize: 80 property int barHeightAddon: ApplicationSettings.isBarHidden ? 1 : 3 property int size: Math.min(background.width / 9, background.height / (8 + barHeightAddon)) } onStart: { Activity.start(items) } onStop: { Activity.stop() } Helico { id: helico fillMode: "PreserveAspectFit" sourceSize.height: items.maxSize * ApplicationInfo.ratio height: (items.size>items.minSize) ? (items.size * * Authors: * Bruno Coudoin (GTK+ version) * Stephane Mankowski (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 "penalty.js" as Activity ActivityBase { id: activity onStart: focus = true onStop: {} pageComponent: Image { id: background source: Activity.url + "penalty_bg.svg" sourceSize.width: parent.width fillMode: Image.Stretch anchors.fill: parent signal start signal stop Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } // To enable tapping/clicking on left side of goal GoalZone { id: rectLeft state: "LEFT" progress: progressLeft anchors.right: player.left anchors.leftMargin: parent.width * 0.08 anchors.bottomMargin: parent.height * 0.45 } // To enable tapping/clicking on top of goal GoalZone { id: rectTop state: "CENTER" progress: progressTop anchors.left: player.left anchors.right: player.right anchors.bottom: player.top } // To enable tapping/clicking on right side of goal GoalZone { id: rectRight state: "RIGHT" progress: progressRight anchors.left: player.right anchors.rightMargin: parent.width * 0.06 anchors.bottomMargin: parent.height * 0.45 } // 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 ball: ball property alias progressLeft: progressLeft property alias progressRight: progressRight property alias progressTop: progressTop property alias bonus: bonus - property int duration : 0 - property int progressBarOpacity : 40 + property int duration: 0 + property int progressBarOpacity: 40 property string saveBallState: "INITIAL" property double ballX: ball.parent.width/2 - ball.width/2 property double ballY: ball.parent.height*0.77 - ball.height/2 } onStart: { Activity.start(items) } onStop: { Activity.stop() } /* Instruction */ Item { id: instruction z: 99 anchors { top: parent.top topMargin: 10 horizontalCenter: parent.horizontalCenter } width: parent.width * 0.9 property alias text: instructionTxt.text visible: bar.level === 1 && text != "" GCText { id: instructionTxt anchors { horizontalCenter: parent.horizontalCenter } fontSize: mediumSize color: "white" style: Text.Outline styleColor: "black" horizontalAlignment: Text.AlignHCenter width: parent.width wrapMode: TextEdit.WordWrap z: 2 } Rectangle { anchors.fill: instructionTxt z: 1 opacity: 0.8 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" } } } } /* The progress bars */ Progress { id: progressLeft anchors.left: parent.left anchors.leftMargin: parent.width / parent.implicitWidth * 62 } Progress { id: progressRight anchors.right: parent.right anchors.rightMargin: parent.width/parent.implicitWidth * 50 } Progress { id: progressTop anchors.topMargin: parent.width / parent.implicitWidth * 40 anchors.horizontalCenter: parent.horizontalCenter width: parent.height / parent.implicitHeight * 20 height: ratio / 100 * parent.width / parent.implicitWidth * 100 } /* The player */ Image { id: player source: Activity.url + "penalty_player.svg" fillMode: Image.PreserveAspectFit anchors.centerIn: parent sourceSize.width: 154 * ApplicationInfo.ratio } /* The 2 click icon */ Image { source: Activity.url + "click_icon.svg" sourceSize.width: 90 * ApplicationInfo.ratio anchors.bottom: bar.top anchors.right: parent.right anchors.bottomMargin: 10 * ApplicationInfo.ratio anchors.rightMargin: 10 * ApplicationInfo.ratio } /* The spot under the ball */ Rectangle { radius: 100 * ApplicationInfo.ratio color: "white" width: 50 * ApplicationInfo.ratio height: 33 * ApplicationInfo.ratio x: parent.width / 2 - width / 2 y: parent.height * 0.77 + width - height / 2 border.width: 1 border.color: "#b4b4b4" } /* The ball */ Image { id: ball source: Activity.url + "penalty_ball.svg" fillMode: Image.PreserveAspectFit sourceSize.width: 100 * ApplicationInfo.ratio Behavior on x { PropertyAnimation {easing.type: Easing.OutQuad; duration: 1000} } Behavior on y { PropertyAnimation {easing.type: Easing.OutQuad; duration: 1000} } Behavior on sourceSize.width { PropertyAnimation {easing.type: Easing.OutQuad; duration: 1000} } state: "INITIAL" states: [ State { name: "INITIAL" PropertyChanges { target: ball; sourceSize.width: 100 * ApplicationInfo.ratio x: parent.width/2 - width/2; y: parent.height*0.77 - height/2 } PropertyChanges { target: instruction text: qsTr("Double click or double tap on the side of the goal you want to put the ball in.") } }, State { name: "RIGHT" PropertyChanges { target: ball sourceSize.width: 75 * ApplicationInfo.ratio x: background.width * 0.7 y: background.height * 0.3 } }, State { name: "LEFT" PropertyChanges { target: ball sourceSize.width: 75 * ApplicationInfo.ratio x: background.width * 0.2 y: background.height * 0.3 } }, State { name: "CENTER" PropertyChanges { target: ball; sourceSize.width: 75 * ApplicationInfo.ratio x: parent.width/2 - width/2; y: background.height * 0.1 } }, State { name: "FAIL" PropertyChanges { target: ball sourceSize.width: 75 * ApplicationInfo.ratio x: parent.width/2 - width/2 y: player.y + player.height / 2 } PropertyChanges { target: instruction text: qsTr("Click or tap the ball to bring it back to its former position") } } ] MouseArea { anchors.fill: parent acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MidButton onClicked: { Activity.resetLevel() } } } Timer { id: timerBonus interval: 1500 onTriggered: { if (ball.state == "FAIL" || ball.state == "INITIAL") { bonus.bad("tux") ball.state = "FAIL" } else { bonus.good("tux") } } } 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 winSound: "qrc:/gcompris/src/activities/ballcatch/resource/tuxok.wav" looseSound: "qrc:/gcompris/src/activities/ballcatch/resource/youcannot.wav" Component.onCompleted: { win.connect(Activity.nextLevel) } } } } diff --git a/src/activities/renewable_energy/ActivityInfo.qml b/src/activities/renewable_energy/ActivityInfo.qml index 5ff129bcb..b1d757dd7 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. ") + 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" createdInVersion: 5000 } diff --git a/src/activities/renewable_energy/RenewableEnergy.qml b/src/activities/renewable_energy/RenewableEnergy.qml index 76885dc4e..0ee1889c9 100644 --- a/src/activities/renewable_energy/RenewableEnergy.qml +++ b/src/activities/renewable_energy/RenewableEnergy.qml @@ -1,574 +1,574 @@ /* 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 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 GCSfx 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() z: 100 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, " + + 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. There 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: tuxHouseOn source: activity.url + "tux_house_on.svg" sourceSize.width: parent.width sourceSize.height: parent.height anchors.fill: parent visible: tuxSwitch.on } 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) } } }