/*SPDX-FileCopyrightText: 2012-2013 Eike Hein <hein@kde.org>SPDX-License-Identifier: GPL-2.0-or-later*/import QtQuickimport QtQuick.Layoutsimport org.kde.plasma.plasmoidimport org.kde.plasma.core as PlasmaCoreimport plasma.applet.org.kde.plasma.taskmanager as TaskManagerAppletGridLayout {property bool animating: falserowSpacing: 0columnSpacing: 0property int animationsRunning: 0onAnimationsRunningChanged: {animating = animationsRunning > 0;}required property int countreadonly property bool vertical: Plasmoid.formFactor === PlasmaCore.Types.Verticalreadonly property real minimumWidth: children.filter(item => item.visible && item.width > 0).reduce((minimumWidth, item) => Math.min(minimumWidth, item.width), Infinity)readonly property int stripeCount: {if (Plasmoid.configuration.maxStripes === 1) {return 1;}if (Plasmoid.configuration.forceStripes) {return Plasmoid.configuration.maxStripes;}// The maximum number of stripes allowed by the applet's sizeconst stripeSizeLimit = vertical? Math.floor(parent.width / children[0].implicitWidth): Math.floor(parent.height / children[0].implicitHeight)const maxStripes = Math.min(Plasmoid.configuration.maxStripes, stripeSizeLimit)// The number of tasks that will fill a "stripe" before starting the next oneconst maxTasksPerStripe = vertical? Math.ceil(parent.height / TaskManagerApplet.LayoutMetrics.preferredMinHeight()): Math.ceil(parent.width / TaskManagerApplet.LayoutMetrics.preferredMinWidth())return Math.min(Math.ceil(count / maxTasksPerStripe), maxStripes)}readonly property int orthogonalCount: {return Math.ceil(count / stripeCount);}rows: vertical ? orthogonalCount : stripeCountcolumns: vertical ? stripeCount : orthogonalCount}