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

0001 /* GCompris - CardContainer.qml
0002  *
0003  * SPDX-FileCopyrightText: 2022 Samarth Raj <mailforsamarth@gmail.com>
0004  * SPDX-FileCopyrightText: 2022 Timothée Giet <animtim@gmail.com>
0005  * SPDX-License-Identifier: GPL-3.0-or-later
0006  */
0007 import QtQuick 2.12
0008 import "../../core"
0009 
0010 Item {
0011     readonly property string correctAnswerImage: "qrc:/gcompris/src/core/resource/apply.svg"
0012     readonly property string wrongAnswerImage:  "qrc:/gcompris/src/core/resource/cancel.svg"
0013 
0014     Rectangle {
0015         id: cardContainer
0016         color: "#EBEBEB"
0017         height: items.isHorizontal ? parent.height - background.layoutMargins :
0018                                     (parent.height - background.layoutMargins) * 0.67
0019         width: parent.width
0020         anchors.centerIn: parent
0021         radius: 15
0022 
0023         property int cardWidth: cardContainer.width / numberOfItemsInModel()
0024 
0025         // add 1 for numberCard or resultCard, else add 0.5
0026         function numberOfItemsInModel() {
0027             var numberOfItems = 0;
0028             if(listmodel) {
0029                 for (var i = 0; i < listmodel.count; i++) {
0030                     if (listmodel.get(i).type == "symbolCard") {
0031                         numberOfItems += 0.5;
0032                     } else {
0033                         numberOfItems += 1;
0034                     }
0035                 }
0036                 return numberOfItems;
0037             } else {
0038                 return 1;
0039             }
0040         }
0041 
0042         ListView {
0043             height: parent.height
0044             width: parent.width
0045             interactive: false
0046             orientation: ListView.Horizontal
0047             model: listmodel
0048             delegate: Card {
0049                 height: cardContainer.height
0050                 width: type == "symbolCard" ? cardContainer.cardWidth * 0.5 : cardContainer.cardWidth
0051             }
0052         }
0053     }
0054 
0055     Image {
0056         id: validationImage
0057         visible: isValidationImageVisible
0058         height: cardContainer.height
0059         width: height
0060         sourceSize.height: height
0061         source: isGood === true ? correctAnswerImage : wrongAnswerImage
0062         states: [
0063             State {
0064                 name: "horizontalLayout"
0065                 when: items.isHorizontal
0066                 PropertyChanges {
0067                     target: validationImage
0068                     height: cardContainer.height
0069                     anchors.margins: background.layoutMargins * 0.5
0070                 }
0071                 AnchorChanges {
0072                     target: validationImage
0073                     anchors {
0074                         left: cardContainer.right
0075                         verticalCenter: cardContainer.verticalCenter
0076                         right: undefined
0077                         top: undefined
0078                     }
0079                 }
0080             },
0081             State {
0082                 name: "verticaleLayout"
0083                 when: !items.isHorizontal
0084                 PropertyChanges {
0085                     target: validationImage
0086                     height: cardContainer.height * 0.5
0087                     anchors.margins: -background.layoutMargins * 0.5
0088                 }
0089                 AnchorChanges {
0090                     target: validationImage
0091                     anchors {
0092                         left: undefined
0093                         verticalCenter: undefined
0094                         right: cardContainer.right
0095                         top: cardContainer.bottom
0096                     }
0097                 }
0098             }
0099         ]
0100     }
0101 }