Warning, /education/gcompris/src/activities/fractions_create/PieChart.qml is written in an unsupported language. File is not indexed.
0001 /* GCompris - PieChart.qml 0002 * 0003 * SPDX-FileCopyrightText: 2022 Johnny Jazeix <jazeix@gmail.com> 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 import QtQuick 2.12 0007 import QtCharts 2.0 0008 0009 ChartView { 0010 id: chart 0011 backgroundColor: "transparent" 0012 legend.visible: false 0013 antialiasing: true 0014 property alias pieSeries: pieSeries 0015 PieSeries { 0016 id: pieSeries 0017 size: 0.95 0018 0019 PieSlice { 0020 value: 1 0021 color: gridContainer.unselectedColor 0022 borderColor: "white" 0023 borderWidth: 5 0024 } 0025 0026 onClicked: { 0027 if(items.buttonsBlocked || activity.mode === "findFraction") { 0028 return; 0029 } 0030 if(slice.color == gridContainer.selectedColor) { 0031 numeratorText.value --; 0032 slice.color = gridContainer.unselectedColor; 0033 } 0034 else { 0035 numeratorText.value ++; 0036 slice.color = gridContainer.selectedColor; 0037 } 0038 } 0039 0040 function setSliceStyle(sliceNumber, selected) { 0041 var slice = pieSeries.at(sliceNumber); 0042 slice.borderColor = "white"; 0043 slice.borderWidth = 5; 0044 slice.color = selected ? gridContainer.selectedColor : gridContainer.unselectedColor; 0045 } 0046 } 0047 0048 function initLevel(pieIndex) { 0049 var pieSeries = chart.pieSeries; 0050 pieSeries.clear(); 0051 var sizeOfOnePie = 1.0 / items.denominatorToFind; 0052 0053 for(var pieSliceIndex = 0 ; pieSliceIndex < items.denominatorToFind ; ++ pieSliceIndex) { 0054 pieSeries.append(1, sizeOfOnePie); 0055 // Select the good number of slices at the beginning 0056 var selectPie = (activity.mode === "findFraction" && (pieSliceIndex+pieIndex*items.denominatorToFind < items.numeratorToFind)); 0057 pieSeries.setSliceStyle(pieSeries.count-1, selectPie); 0058 } 0059 } 0060 0061 function countSelectedParts() { 0062 var selected = 0; 0063 for(var pieSliceIndex = 0 ; pieSliceIndex < pieSeries.count ; ++ pieSliceIndex) { 0064 if(pieSeries.at(pieSliceIndex).color == gridContainer.selectedColor) { 0065 selected ++; 0066 } 0067 } 0068 return selected; 0069 } 0070 }