Warning, /education/gcompris/src/activities/magic-hat-minus/StarsBar.qml is written in an unsupported language. File is not indexed.

0001 /* GCompris - MagicHat.qml
0002  *
0003  * SPDX-FileCopyrightText: 2014 Thibaut ROMAIN <thibrom@gmail.com>
0004  *
0005  * Authors:
0006  *   <Bruno Coudoin> (GTK+ version)
0007  *   Thibaut ROMAIN <thibrom@gmail.com> (Qt Quick port)
0008  *
0009  *   SPDX-License-Identifier: GPL-3.0-or-later
0010  */
0011 import QtQuick 2.12
0012 import "magic-hat.js" as Activity
0013 import "../../core"
0014 
0015 Item {
0016     id: item
0017     height: starsSize
0018     property int barGroupIndex
0019     property int barIndex
0020     property int nbStarsOn: 0
0021     property bool authorizeClick: false
0022     property int coefficient: 1
0023     property bool coefficientVisible: false
0024     property int starsSize
0025     property string backgroundColor
0026     property string starsColor: "1"
0027     property Item theHat
0028     property alias repeaterStars: repeaterStars
0029 
0030     Row {
0031         id: rowlayout
0032         height: item.height
0033         spacing: 5
0034         GCText {
0035             id: text
0036             visible: item.coefficientVisible
0037             //: text displaying coefficient with which the set of stars is to be multiplied along with multiplication symbol.
0038             text: qsTr("%1x").arg(item.coefficient)
0039             fontSizeMode: Text.HorizontalFit
0040             width: rowlayout.width / 10
0041             color: "white"
0042             anchors.rightMargin: 20
0043             fontSize: tinySize
0044         }
0045         Repeater {
0046             id: repeaterStars
0047             model: item.opacity == 1 ? 10 : 0
0048             Item {
0049                 id: star
0050                 width: item.starsSize
0051                 height: item.starsSize
0052                 property alias starFixed: starFixed
0053                 property alias starToMove: starToMove
0054                 Star {
0055                     id: starFixed
0056                     barGroupIndex: item.barGroupIndex
0057                     barIndex: item.barIndex
0058                     backgroundColor: item.backgroundColor
0059                     wantedColor: coefficientVisible ? "1" : starsColor
0060                     selected: index < nbStarsOn ? true : false
0061                     width: item.starsSize
0062                     height: item.starsSize
0063                     displayBounds: true
0064                     isClickable: item.authorizeClick
0065                 }
0066                 Star {
0067                     id: starToMove
0068                     barGroupIndex: item.barGroupIndex
0069                     backgroundColor: item.backgroundColor
0070                     wantedColor: coefficientVisible ? "1" : starsColor
0071                     selected: index < nbStarsOn ? true : false
0072                     width: item.starsSize
0073                     height: item.starsSize
0074                     displayBounds: false
0075                     isClickable: false
0076                     enabled: selected ? true : false
0077                     initialParent: star
0078                     theHat: item.theHat.target
0079                 }
0080             }
0081         }
0082     }
0083 
0084     function moveStars() {
0085         activity.audioEffects.play("qrc:/gcompris/src/core/resource/sounds/smudge.wav")
0086         for(var i=0; i<nbStarsOn; i++) {
0087             repeaterStars.itemAt(i).starToMove.state = "MoveUnderHat"
0088         }
0089     }
0090 
0091     function moveBackMinusStars(newRootItem, nbStars) {
0092         for(var i=0; i<nbStars; i++) {
0093             repeaterStars.itemAt(i).starToMove.newTarget =
0094                     newRootItem.repeaterStars.itemAt(i)
0095             repeaterStars.itemAt(i).starToMove.state = "MoveToTarget"
0096         }
0097     }
0098 
0099     function initStars() {
0100         for(var i=0; i<repeaterStars.count; i++) {
0101             repeaterStars.itemAt(i).starToMove.state = "Init"
0102         }
0103     }
0104 
0105     function resetStars() {
0106         for(var i=0; i<repeaterStars.count; i++) {
0107             repeaterStars.itemAt(i).starFixed.selected = i < nbStarsOn ? true : false
0108         }
0109     }
0110 }