Warning, /education/gcompris/src/activities/renewable_energy/Solar.qml is written in an unsupported language. File is not indexed.
0001 /* GCompris - solar.qml 0002 * 0003 * SPDX-FileCopyrightText: 2015 Sagar Chand Agarwal <atomsagar@gmail.com> 0004 * SPDX-FileCopyrightText: 2022 Timothée Giet <animtim@gmail.com> 0005 * 0006 * Authors: 0007 * Bruno Coudoin <bruno.coudoin@gcompris.net> (GTK+ version) 0008 * Sagar Chand Agarwal <atomsagar@gmail.com> (Qt Quick port) 0009 * Timothée Giet <animtim@gmail.com> (Big refactoring) 0010 * 0011 * SPDX-License-Identifier: GPL-3.0-or-later 0012 */ 0013 import QtQuick 2.12 0014 import GCompris 1.0 0015 import "../../core" 0016 0017 Item { 0018 id: solar 0019 property alias power: solarTransformer.power 0020 0021 function stop() { 0022 solarTransformer.started = false 0023 solarPanel.started = false 0024 } 0025 0026 Image { 0027 id: panelPower 0028 source: activity.url + "solar/" + (solarPanel.power ? "solar_wire_on.svg" : "solar_wire_off.svg") 0029 width: parent.width * 0.103 0030 sourceSize.width: width 0031 fillMode: Image.PreserveAspectFit 0032 anchors { 0033 top: parent.top 0034 left: parent.left 0035 topMargin: parent.width * 0.346 0036 leftMargin: parent.width * 0.783 0037 } 0038 } 0039 0040 Image { 0041 id: solarPower 0042 source: activity.url + "solar/" + (solarTransformer.power ? "solar_power_on.svg" : "solar_power_off.svg") 0043 width: parent.width * 0.098 0044 sourceSize.width: width 0045 fillMode: Image.PreserveAspectFit 0046 anchors { 0047 top: parent.top 0048 left: parent.left 0049 topMargin: parent.width * 0.448 0050 leftMargin: parent.width * 0.78 0051 } 0052 } 0053 0054 Image { 0055 id: solarTransformer 0056 source: activity.url + "transformer_off.svg" 0057 width: parent.width * 0.05 0058 sourceSize.width: width 0059 fillMode: Image.PreserveAspectFit 0060 anchors { 0061 top: parent.top 0062 left: parent.left 0063 topMargin: parent.width * 0.417 0064 leftMargin: parent.width * 0.866 0065 } 0066 property bool started: false 0067 property int power: started ? solarPanel.power : 0 0068 MouseArea { 0069 anchors.centerIn: parent 0070 // Size the area for a touch screen 0071 width: parent.width * 1.2 0072 height: parent.height * 1.2 0073 onClicked: parent.started = !parent.started 0074 } 0075 } 0076 0077 Image { 0078 id: solarTransformerOn 0079 visible: solarTransformer.started 0080 source: activity.url + "transformer_on.svg" 0081 anchors.fill: solarTransformer 0082 sourceSize.width: width 0083 fillMode: Image.PreserveAspectFit 0084 } 0085 0086 Rectangle { 0087 width: solar_info.width * 1.1 0088 height: solar_info.height * 1.1 0089 border.color: items.produceColorBorder 0090 radius: 5 0091 color: items.produceColor 0092 anchors { 0093 left: solarTransformer.horizontalCenter 0094 bottom: solarTransformer.top 0095 } 0096 GCText { 0097 id: solar_info 0098 fontSize: smallSize * 0.5 0099 anchors.centerIn: parent 0100 text: solar.power.toString() + "W" 0101 } 0102 } 0103 0104 Image { 0105 id: solarPanel 0106 source: activity.url + "solar/solar_panel_off.svg" 0107 width: parent.width * 0.093 0108 sourceSize.width: width 0109 fillMode: Image.PreserveAspectFit 0110 anchors { 0111 top: parent.top 0112 left: parent.left 0113 topMargin: parent.height * 0.326 0114 leftMargin: parent.width * 0.771 0115 } 0116 property bool started: false 0117 property int power: started && items.sunIsUp ? 1000 : 0 0118 MouseArea { 0119 anchors.fill: parent 0120 onClicked: parent.started = !parent.started 0121 } 0122 } 0123 0124 Image { 0125 id: solarPanelOn 0126 visible: solarPanel.power 0127 source: activity.url + "solar/solar_panel_on.svg" 0128 anchors.fill: solarPanel 0129 sourceSize.width: width 0130 fillMode: Image.PreserveAspectFit 0131 } 0132 }