diff --git a/src/activities/watercycle/Message.qml b/src/activities/watercycle/Message.qml index c5fab935d..797bfbfc8 100644 --- a/src/activities/watercycle/Message.qml +++ b/src/activities/watercycle/Message.qml @@ -1,134 +1,147 @@ /*GCompris-Qt Message.qml -* -* +* Copyright (C) 2015 Siddhesh suthar * * 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.1 import "../../core" import GCompris 1.0 import "watercycle.js" as Activity Item{ id: message opacity: displayed ? 1 : 0 property bool displayed: index == 0 ? false : true // The message in the intro array, set to 0 to disable property int index: 1 property variant intro: [ "", - - ] + qsTr("The Water Cycle (also known as the hydrologic cycle) is the journey water takes " + +"as it circulates from the land to the sky and back again." + +" The Sun's heat provides energy to evaporate water from the Earth's surface (oceans, lakes,etc)."), + qsTr(" Plants also lose water to the air (this is called transpiration). The water vapor eventually condenses," + +" forming tiny droplets in clouds. When the clouds meet cool air over land, precipitation is triggered, " + +" and water returns to the land (or sea). Some of the precipitation soaks into the ground. " + ), + qsTr("Some of the underground water is trapped between rock or clay layers; this is called groundwater. " + +"But most of the water flows downhill as runoff (above ground or underground), eventually returning to the seas"), + qsTr("Your goal is to complete water cycle before Tux reaches home " + +"Click on the different components which make up the Water Cycle " + +"First click on sun,then cloud ,then motor near the river and" + +"at last regulate the switch to provide water to Tux's bath"), + qsTr("You can hover at each component to see their main functions. " + +"Learn and Enjoy") + ] Behavior on opacity { NumberAnimation {duration: 100 } } Rectangle { id: intro_textbg x: intro_text.x -4 y: intro_text.y -4 width: intro_text.width +4 height: intro_text.height +4 color: "#d8ffffff" border.color: "#2a2a2a" border.width: 2 radius: 8 } GCText { id: intro_text fontSize: regularSize font.weight: Font.DemiBold horizontalAlignment: Text.AlignHCenter anchors { top: parent.top topMargin: 10 *ApplicationInfo.ratio right: parent.right rightMargin: 5 * ApplicationInfo.ratio left: parent.left leftMargin: 5 * ApplicationInfo.ratio } width: parent.width wrapMode: Text.WordWrap text: parent.intro[parent.index] } Rectangle { // our inlined button ui id: button width: Math.max(skipText.width, nextText.width) * 1.2 height: Math.max(skipText.height, nextText.height) * 1.4 x: intro_textbg.x + (intro_textbg.width/2) + 20 y: intro_textbg.y + intro_textbg.height - button.height - 5 color: "#d8ffffff" border.color: "#2a2a2a" border.width: 3 radius: 8 z: 5 anchors.top : intro_textbg.bottom anchors.topMargin: 10 GCText { id: nextText anchors.centerIn: parent text: index != 4 ? qsTr("Next") : qsTr("Let's Go") } MouseArea { anchors.fill: parent onClicked: { if(index++ == 4) { index = 0 - + items.tux.start() } } } } Rectangle { // our inlined button ui id: skipButton width: button.width height: button.height x: intro_textbg.x + (intro_textbg.width/2) -20- skipButton.width y: intro_textbg.y + intro_textbg.height - skipButton.height - 5 color: "#d8ffffff" border.color: "#2a2a2a" border.width: 3 radius: 8 z: 5 anchors.top : intro_textbg.bottom anchors.topMargin: 10 GCText { id: skipText anchors.centerIn: parent text: qsTr("Skip Instruction") } MouseArea { anchors.fill: parent onClicked: { message.index = 0 - + items.tux.start() } } } } diff --git a/src/activities/watercycle/Message.qml b/src/activities/watercycle/Message.qml.autosave similarity index 68% copy from src/activities/watercycle/Message.qml copy to src/activities/watercycle/Message.qml.autosave index c5fab935d..797bfbfc8 100644 --- a/src/activities/watercycle/Message.qml +++ b/src/activities/watercycle/Message.qml.autosave @@ -1,134 +1,147 @@ /*GCompris-Qt Message.qml -* -* +* Copyright (C) 2015 Siddhesh suthar * * 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.1 import "../../core" import GCompris 1.0 import "watercycle.js" as Activity Item{ id: message opacity: displayed ? 1 : 0 property bool displayed: index == 0 ? false : true // The message in the intro array, set to 0 to disable property int index: 1 property variant intro: [ "", - - ] + qsTr("The Water Cycle (also known as the hydrologic cycle) is the journey water takes " + +"as it circulates from the land to the sky and back again." + +" The Sun's heat provides energy to evaporate water from the Earth's surface (oceans, lakes,etc)."), + qsTr(" Plants also lose water to the air (this is called transpiration). The water vapor eventually condenses," + +" forming tiny droplets in clouds. When the clouds meet cool air over land, precipitation is triggered, " + +" and water returns to the land (or sea). Some of the precipitation soaks into the ground. " + ), + qsTr("Some of the underground water is trapped between rock or clay layers; this is called groundwater. " + +"But most of the water flows downhill as runoff (above ground or underground), eventually returning to the seas"), + qsTr("Your goal is to complete water cycle before Tux reaches home " + +"Click on the different components which make up the Water Cycle " + +"First click on sun,then cloud ,then motor near the river and" + +"at last regulate the switch to provide water to Tux's bath"), + qsTr("You can hover at each component to see their main functions. " + +"Learn and Enjoy") + ] Behavior on opacity { NumberAnimation {duration: 100 } } Rectangle { id: intro_textbg x: intro_text.x -4 y: intro_text.y -4 width: intro_text.width +4 height: intro_text.height +4 color: "#d8ffffff" border.color: "#2a2a2a" border.width: 2 radius: 8 } GCText { id: intro_text fontSize: regularSize font.weight: Font.DemiBold horizontalAlignment: Text.AlignHCenter anchors { top: parent.top topMargin: 10 *ApplicationInfo.ratio right: parent.right rightMargin: 5 * ApplicationInfo.ratio left: parent.left leftMargin: 5 * ApplicationInfo.ratio } width: parent.width wrapMode: Text.WordWrap text: parent.intro[parent.index] } Rectangle { // our inlined button ui id: button width: Math.max(skipText.width, nextText.width) * 1.2 height: Math.max(skipText.height, nextText.height) * 1.4 x: intro_textbg.x + (intro_textbg.width/2) + 20 y: intro_textbg.y + intro_textbg.height - button.height - 5 color: "#d8ffffff" border.color: "#2a2a2a" border.width: 3 radius: 8 z: 5 anchors.top : intro_textbg.bottom anchors.topMargin: 10 GCText { id: nextText anchors.centerIn: parent text: index != 4 ? qsTr("Next") : qsTr("Let's Go") } MouseArea { anchors.fill: parent onClicked: { if(index++ == 4) { index = 0 - + items.tux.start() } } } } Rectangle { // our inlined button ui id: skipButton width: button.width height: button.height x: intro_textbg.x + (intro_textbg.width/2) -20- skipButton.width y: intro_textbg.y + intro_textbg.height - skipButton.height - 5 color: "#d8ffffff" border.color: "#2a2a2a" border.width: 3 radius: 8 z: 5 anchors.top : intro_textbg.bottom anchors.topMargin: 10 GCText { id: skipText anchors.centerIn: parent text: qsTr("Skip Instruction") } MouseArea { anchors.fill: parent onClicked: { message.index = 0 - + items.tux.start() } } } } diff --git a/src/activities/watercycle/ToolTip.qml b/src/activities/watercycle/ToolTip.qml new file mode 100644 index 000000000..dbdbcb766 --- /dev/null +++ b/src/activities/watercycle/ToolTip.qml @@ -0,0 +1,49 @@ +import QtQuick 2.0 +import QtQuick 2.1 +import GCompris 1.0 + +import "../../core" +import "." + +Rectangle { + id:tooltip + property alias text: textContainer.text + property int verticalPadding: 1 + property int horizontalPadding: 5 + width: textContainer.width + horizontalPadding + height: textContainer.height + verticalPadding + color: "#aa999999" + Text { + anchors.centerIn: parent + id:textContainer + text: "" + } + + NumberAnimation { + id: fadein + target: tooltip + property: "opacity" + easing.type: Easing.InOutQuad + duration: 300 + from: 0 + to: 1 + } + NumberAnimation { + id: fadeout + target: tooltip + property: "opacity" + easing.type: Easing.InOutQuad + from: 1 + to: 0 + onStopped: visible = false; + } + visible:false + onVisibleChanged: if(visible)fadein.start(); + function show(){ + visible = true; + fadein.start(); + } + function hide(){ + fadeout.start(); + } +} diff --git a/src/activities/watercycle/ToolTipArea.qml b/src/activities/watercycle/ToolTipArea.qml new file mode 100644 index 000000000..c4206f918 --- /dev/null +++ b/src/activities/watercycle/ToolTipArea.qml @@ -0,0 +1,33 @@ +import QtQuick 2.0 +import QtQuick 2.1 +import GCompris 1.0 + +import "../../core" +import "." + +MouseArea { + property alias tip: tip + property alias text: tip.text + property alias hideDelay: hideTimer.interval + property alias showDelay: showTimer.interval + id: mouseArea + acceptedButtons: Qt.NoButton + anchors.fill: parent + hoverEnabled: true + Timer { + id:showTimer + interval: 1000 + running: mouseArea.containsMouse && !tip.visible + onTriggered: tip.show(); + } + Timer { + id:hideTimer + interval: 100 + running: !mouseArea.containsMouse && tip.visible + onTriggered: tip.hide(); + } + ToolTip{ + id:tip + } +} + diff --git a/src/activities/watercycle/Watercycle.qml b/src/activities/watercycle/Watercycle.qml index 1db86e9bb..c4cca82c0 100755 --- a/src/activities/watercycle/Watercycle.qml +++ b/src/activities/watercycle/Watercycle.qml @@ -1,444 +1,565 @@ /* GCompris - watercycle.qml * * Copyright (C) 2015 Sagar Chand Agarwal * * Authors: * Bruno Coudoin (GTK+ version) * Sagar Chand Agarwal (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.1 import GCompris 1.0 import "../../core" import "." +import "watercycle.js" as Activity ActivityBase { id: activity onStart: focus = true onStop: {} pageComponent: Image { id: background source: "resource/background.svg" - width: parent.width - height: parent.height + sourceSize.width: parent.width + sourceSize.height: parent.height 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 tux: tux property alias bar: bar } + onStart: Activity.start(items,message) + onStop: Activity.stop() + + Message { + id: message + z: 20 + anchors { + top: parent.top + topMargin: 10 + right: parent.right + rightMargin: 5 + left: parent.left + leftMargin: 5 + } + } + + Timer{ + id:tux + onTriggered: anim.running=true + } Image { - id:tuxboat + id: tuxboat source:"resource/boat.svg" - sourceSize.width: parent.width*0.15 - sourceSize.height: parent.height*0.15 + sourceSize.width: root.width*0.15 + sourceSize.height: root.height*0.15 anchors{ - bottom:parent.bottom - left:parent.left - leftMargin:parent.width*0.10 - bottomMargin:15 + bottom: parent.bottom + bottomMargin: 15 + } + x:20 + + NumberAnimation on x{ + id: anim + running: false + to: root.width + duration: 10000 + onRunningChanged: { + if(!anim.running) + { + tuxparked.opacity=1 + tuxbath.visible= false + shower.visible=true + tuxoff.visible=true + check() + } + } } } Image { id:tuxparked source:"resource/boat_parked.svg" sourceSize.width:Math.min(120 * ApplicationInfo.ratio , parent.width*0.15) sourceSize.height:Math.min(120 * ApplicationInfo.ratio , parent.height*0.15) + opacity: 0 anchors{ - bottom:parent.bottom - right:parent.right - rightMargin:parent.width*0.01 - bottomMargin:15 + right: parent.right + bottom: parent.bottom + bottomMargin: 20 } - visible: false } - Image { id: sun source: "resource/sun.svg" width: background.width*0.05 height: sun.width anchors { left: parent.left top: parent.top leftMargin: parent.width*0.05 topMargin: parent.height*0.25 - } MouseArea{ - id:statechange anchors.fill:sun onClicked:{ - background.state="rise" - + background.state="up" sun.anchors.top=undefined sun.anchors.left=undefined vapor.anchors.top= undefined vapor.anchors.left= undefined cloud.anchors.top= undefined cloud.anchors.left= undefined - + } + } + ToolTipArea{ + tip { + text: "Sun heats up water" + x: sun.width + 10 + y: sun.height/2 - tip.height/2 } } } Image { id: mask source: "resource/mask.svg" width: sun.width height: sun.height/2 anchors{ left: parent.left top: cloud.bottom leftMargin: parent.width*0.05 - topMargin: parent.height*0.25 + topMargin: parent.height*0.20 } } Image { id:vapor + opacity: 0 state: "vapor" source: "resource/vapor.svg" height: sun.height width: sun.width anchors { top: mask.bottom left: parent.left leftMargin: parent.width*0.05 } - visible: true + + ToolTipArea{ + tip { + text: "Water vapors forms " + x: vapor.width + 10 + y: vapor.height/2 - tip.height/2 + } + } } Image { id: cloud + opacity: 0 source: "resource/cloud.svg" - height: sun.height*0.75 - width: sun.width*2 + height: sun.height + width: sun.width*3 anchors { left:parent.left top:parent.top leftMargin: 0.05*parent.width } + MouseArea{ + anchors.fill: cloud + onClicked:{ + rain.visible= true + river.visible= true + } + ToolTipArea{ + tip { + text: "Water vapor condense to form cloud" + x: cloud.width + y: cloud.height/2 - tip.height/2 + } + } + } - visible:true - } - - Image { - id: rain - source: "resource/rain.svg" - height:cloud.height*2 - width: cloud.width - anchors { - top:cloud.bottom - left:parent.left + Image { + id: rain + source: "resource/rain.svg" + height:cloud.height*2 + width: cloud.width + anchors{ + top: cloud.bottom + } + visible:false } - visible:false } Image { id:river source: "resource/river.svg" height: parent.height*0.745 width: parent.width*0.46 anchors { top: parent.top left: parent.left topMargin:parent.height*0.175 leftMargin: parent.width*0.250 } visible:false } Image { id: motor source:"resource/motor.svg" height: parent.width*0.05 width: parent.width*0.05 anchors { top:parent.top - right:river.right - rightMargin: parent.width*0.24 - topMargin: parent.height*0.34 + left: parent.left + leftMargin: parent.width*0.41 + topMargin: parent.height*0.35 } MouseArea{ anchors.fill:motor onClicked: { - fillwater.opacity= 1 + check(); + + } + } + ToolTipArea{ + tip { + text: "Power Station Motor" + x: motor.width + 10 + y: motor.height/2 - tip.height/2 } } } + function check(){ + if(river.visible==true) + { + fillwater.opacity=true + } + if(fillwater.opacity==1 && tuxparked.opacity==1) + { + knob.visible=true + } + } + Image{ id: tower source: "resource/watertower.svg" - height:parent.width*0.1 - width:parent.width*0.05 + height: parent.height*0.08 + width: motor.height anchors { top: parent.top - right:parent.right - topMargin: parent.height*0.20 - rightMargin:parent.width*0.18 + right: parent.right + topMargin: parent.height*0.27 + rightMargin: parent.width*0.18 + } + ToolTipArea{ + tip { + text: "Water Supply Tower" + x: tower.width + 10 + y: tower.height/2 - tip.height/2 + } } } Image { id: resident source:"resource/resident.svg" - height:parent.height*0.3 - width: parent.width*0.4 + height:parent.height*0.25 + width: parent.width*0.40 anchors { bottom:parent.bottom right:parent.right - rightMargin: parent.width*0.13 - bottomMargin: parent.height*0.295 + rightMargin: parent.width*0.16 + bottomMargin: parent.height*0.33 } } Image { id: shower source:"resource/shower.svg" height:parent.height*0.2 width: parent.width*0.15 anchors{ bottom: parent.bottom right: parent.right bottomMargin: parent.height* 0.32 - rightMargin: parent.width*0.01 + rightMargin: parent.width*0.012 } Image { id:tuxoff source:"resource/tuxoff.svg" height: shower.height*0.4 width: shower.width*0.2 anchors { horizontalCenter: shower.horizontalCenter verticalCenter: shower.verticalCenter verticalCenterOffset: shower.height*0.1 horizontalCenterOffset: -shower.width*0.05 } visible:false } Image { id:tuxbath source:"resource/tuxbath.svg" height: shower.height*0.5 width: shower.width*0.3 anchors { horizontalCenter: shower.horizontalCenter verticalCenter: shower.verticalCenter verticalCenterOffset: shower.height*0.1 horizontalCenterOffset: -shower.width*0.05 } visible:false } - visible:true + visible:false } Rectangle { id: knob color:"white" radius: 10 height: parent.height*0.05 width: parent.width*0.05 anchors{ bottom:parent.bottom right:shower.left bottomMargin: parent.height*0.35 } Image { id:showeroff source: "resource/showeroff.svg" anchors.horizontalCenter: knob.horizontalCenter anchors.verticalCenter: knob.verticalCenter MouseArea{ anchors.fill:showeroff onClicked: { tuxbath.visible=true tuxoff.visible= false showeron.visible= true showeroff.visible= false wastewater.opacity= 1 } } visible: true } Image{ id:showeron source: "resource/showeron.svg" anchors.horizontalCenter: knob.horizontalCenter anchors.verticalCenter: knob.verticalCenter MouseArea{ anchors.fill:showeron onClicked: { tuxoff.visible= true tuxbath.visible= false showeron.visible= false showeroff.visible= true } } visible:false } - visible: true + visible: false } Image { id: waste source: "resource/wastewater.svg" height:motor.height*2 width: motor.width*2 anchors{ - top:resident.bottom - right:resident.right - rightMargin: parent.width*0.1 - topMargin: parent.height*0.05 + bottom: parent.bottom + right: parent.right + rightMargin: parent.width*0.23 + bottomMargin: parent.height*0.10 + } + + ToolTipArea{ + tip { + text: "Waste Water Plant" + x: waste.width + 10 + y: waste.height/2 - tip.height/2 + } } } Image { id:fillwater source: "resource/fillwater.svg" height: parent.height*0.2 width :parent.width*0.4 anchors{ right: parent.right - top: parent.top - topMargin: parent.height*0.35 + top: tower.bottom rightMargin: parent.width*0.15 } opacity:0.1 + ToolTipArea{ + tip { + text: "Drinking Water" + x: fillwater.width + 10 + y: fillwater.height/2 - tip.height/2 + } + } } Image { id:wastewater source: "resource/waste.svg" - height: parent.height*0.13 + height: parent.height*0.1 width: parent.width*0.35 anchors { - bottom:parent.bottom + bottom:waste.top right:parent.right - bottomMargin: parent.height*0.24 - rightMargin: parent.width*0.1 + rightMargin: parent.width*0.12 } opacity: 0.1 + ToolTipArea{ + tip { + text: "Waste Water" + x: wastewater.width + 10 + y: wastewater.height/2 - tip.height/2 + } + } } states: [ State{ - name:"rise" - AnchorChanges{ - target: sun - anchors{ - left: parent.left - top: parent.top - } + name:"up" + AnchorChanges{ + target: sun + anchors{ + left: parent.left + top: parent.top } - PropertyChanges { - target: sun - anchors - { - leftMargin: parent.width*0.05 - topMargin: parent.height*0.05 - } + } + PropertyChanges { + target: sun + anchors + { + leftMargin: parent.width*0.05 + topMargin: parent.height*0.05 } - AnchorChanges{ - target:vapor - anchors{ - left:parent.left - top:parent.top - } + } + + AnchorChanges{ + target:vapor + anchors{ + left:parent.left + top:parent.top } - PropertyChanges { - target: vapor - anchors { - leftMargin: parent.width*0.05 - topMargin: parent.width*0.10 - } + } + PropertyChanges { + target: vapor + opacity:1 + anchors { + leftMargin: parent.width*0.05 + topMargin: parent.width*0.10 } - - }, - State { - name:"rainform" - AnchorChanges{ - target:cloud - anchors{ - top:parent.top - left:parent.left - } + } + AnchorChanges{ + target:cloud + anchors{ + top:parent.top + left:parent.left } - PropertyChanges { - target:cloud - anchors{ - leftMargin: parent.width*0.2 - } + } + PropertyChanges { + target:cloud + opacity: 1 + anchors{ + leftMargin: parent.width*0.35 } } - ] - transitions:[ - Transition { - to:"rise" - SequentialAnimation{ + } + ] + + transitions:[ + Transition { + to:"up" + SequentialAnimation { - AnchorAnimation{ + AnchorAnimation { targets: sun - duration:2000 + duration:3000 + } + NumberAnimation{ + target: vapor + property:"opacity" + duration:100 } - AnchorAnimation{ + AnchorAnimation { targets: vapor - duration:2000 + loops: 5 + duration:1000 + } + NumberAnimation { + target:cloud + property: "opacity" + duration:100 + } + AnchorAnimation { + targets:cloud + duration:3000 } } - }] + } + ] DialogHelp { id: dialogHelp onClose: home() } Bar { id: bar content: BarEnumContent { value: help | home } onHelpClicked: { displayDialog(dialogHelp) } onHomeClicked: activity.home() } } } diff --git a/src/activities/watercycle/resource/background.svg b/src/activities/watercycle/resource/background.svg index 484b6da64..1ac20ef4a 100755 --- a/src/activities/watercycle/resource/background.svg +++ b/src/activities/watercycle/resource/background.svg @@ -1,2137 +1,2137 @@ image/svg+xml - + 28/10/2008 Cabaraux Stéphane Cabaraux Stéphane Gnurps gcompris watercycle + transform="matrix(-0.33165675,0,0,0.36005639,228.95545,58.833203)"> diff --git a/src/activities/watercycle/resource/cloud.svg b/src/activities/watercycle/resource/cloud.svg index 956af16c3..fbdf96568 100755 --- a/src/activities/watercycle/resource/cloud.svg +++ b/src/activities/watercycle/resource/cloud.svg @@ -1,80 +1,100 @@ image/svg+xml + transform="translate(-132.42279,-693.20318)"> + + + + + diff --git a/src/activities/watercycle/resource/fillwater.svg b/src/activities/watercycle/resource/fillwater.svg index 25ef106d7..5921ce41a 100755 --- a/src/activities/watercycle/resource/fillwater.svg +++ b/src/activities/watercycle/resource/fillwater.svg @@ -1,66 +1,66 @@ + sodipodi:docname="New document 10"> + id="defs7359" /> + inkscape:window-width="470" + inkscape:window-height="411" + inkscape:window-x="683" + inkscape:window-y="0" + inkscape:window-maximized="0" /> + id="metadata7362"> image/svg+xml - + + transform="translate(-219.57269,-470.61719)"> + sodipodi:nodetypes="ccsccccccccccccccccccccccccccc" + inkscape:connector-curvature="0" /> diff --git a/src/activities/watercycle/resource/resident.svg b/src/activities/watercycle/resource/resident.svg index d2a1c4811..73901b011 100755 --- a/src/activities/watercycle/resource/resident.svg +++ b/src/activities/watercycle/resource/resident.svg @@ -1,3655 +1,3655 @@ + id="defs4738" /> + fit-margin-bottom="0" /> + id="metadata4741"> image/svg+xml + transform="translate(-196.46853,-811.8943)"> + transform="matrix(0.8122208,0,0,0.5707664,-125.08434,725.7851)"> diff --git a/src/activities/watercycle/resource/watertower.svg b/src/activities/watercycle/resource/watertower.svg index 93717496e..4e4a9944b 100755 --- a/src/activities/watercycle/resource/watertower.svg +++ b/src/activities/watercycle/resource/watertower.svg @@ -1,214 +1,214 @@ image/svg+xml diff --git a/src/activities/watercycle/watercycle.js b/src/activities/watercycle/watercycle.js index 640844fcd..e0786e736 100644 --- a/src/activities/watercycle/watercycle.js +++ b/src/activities/watercycle/watercycle.js @@ -1,37 +1,40 @@ /* GCompris - watercycle.qml * * Copyright (C) 2015 Sagar Chand Agarwal * * Authors: * Bruno Coudoin (GTK+ version) * Sagar Chand Agarwal (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ .pragma library .import QtQuick 2.0 as Quick .import GCompris 1.0 as GCompris var items var message function start(items_, message_) { items = items_; message = message_; } function stop(){ +} +function tux(){ } +