Warning, /education/gcompris/src/activities/family/Node.qml is written in an unsupported language. File is not indexed.

0001 /* GCompris - Node.qml
0002  *
0003  * SPDX-FileCopyrightText: 2016 Rajdeep Kaur <rajdeep.kaur@kde.org>
0004  *
0005  * Authors:
0006  *
0007  *   Rajdeep Kaur <rajdeep.kaur@kde.org>
0008  *   Rudra Nil Basu <rudra.nil.basu.1996@gmail.com>
0009  *
0010  *   SPDX-License-Identifier: GPL-3.0-or-later
0011  */
0012 import QtQuick 2.12
0013 import GCompris 1.0
0014 
0015 import "../../core"
0016 import "family.js" as Activity
0017 
0018 Item {
0019     id: node
0020     property int nodeWidth
0021     property int nodeHeight
0022     property string nodeImageSource
0023     property string borderColor
0024     property real borderWidth
0025     property string color
0026     property real radius
0027     property int weight
0028 
0029     function changeState(state_) {
0030         currentPointer.state = state_
0031     }
0032 
0033     Rectangle {
0034         id: content
0035         color: node.color
0036         width: 0.8 * nodeWidth
0037         height: 0.8 * nodeHeight
0038         border.color: borderColor
0039         border.width: borderWidth
0040         radius: node.radius
0041 
0042         Image {
0043             id: nodeImage
0044             source: nodeImageSource
0045             anchors.horizontalCenter: parent.horizontalCenter
0046             anchors.verticalCenter: parent.verticalCenter
0047             width: parent.width * 0.8
0048             height: parent.height * 0.8
0049             sourceSize.width: width
0050             sourceSize.height: height
0051 
0052             SequentialAnimation {
0053                 id: activeAnimation
0054                 running: currentPointer.state === "active" || currentPointer.state === "activeTo"
0055                 loops: Animation.Infinite
0056                 alwaysRunToEnd: true
0057                 NumberAnimation {
0058                     target: nodeImage
0059                     property: "rotation"
0060                     from: 0; to: 10
0061                     duration: 200
0062                     easing.type: Easing.OutQuad
0063                 }
0064                 NumberAnimation {
0065                     target: nodeImage
0066                     property: "rotation"
0067                     from: 10; to: -10
0068                     duration: 400
0069                     easing.type: Easing.InOutQuad
0070                 }
0071                 NumberAnimation {
0072                     target: nodeImage
0073                     property: "rotation"
0074                     from: -10; to: 0
0075                     duration: 200
0076                     easing.type: Easing.InQuad
0077                 }
0078             }
0079         }
0080 
0081         MouseArea {
0082             visible: activity.mode == "find_relative" ? true : false
0083             anchors.fill: parent
0084             onClicked: selectedPairs.selectNode(currentPointer)
0085         }
0086     }
0087 }