Warning, /plasma/plasma-mobile/containments/homescreens/folio/package/contents/ui/delegate/DelegateFolderIcon.qml is written in an unsupported language. File is not indexed.

0001 // SPDX-FileCopyrightText: 2023 Devin Lin <devin@kde.org>
0002 // SPDX-License-Identifier: LGPL-2.0-or-later
0003 
0004 import QtQuick
0005 import QtQuick.Layouts
0006 import QtQuick.Controls as Controls
0007 import QtQuick.Effects
0008 
0009 import org.kde.kirigami 2.20 as Kirigami
0010 
0011 import org.kde.private.mobile.homescreen.folio 1.0 as Folio
0012 
0013 Item {
0014     id: root
0015 
0016     property Folio.FolioApplicationFolder folder
0017 
0018     property bool expandBackground: false
0019 
0020     height: Folio.FolioSettings.delegateIconSize
0021     width: Folio.FolioSettings.delegateIconSize
0022 
0023     Rectangle {
0024         id: rect
0025         radius: Kirigami.Units.largeSpacing
0026         color: Qt.rgba(255, 255, 255, 0.3)
0027         anchors.fill: parent
0028 
0029         property real scaleAmount: root.expandBackground ? 1.2 : 1.0
0030 
0031         Behavior on scaleAmount { NumberAnimation { duration: Kirigami.Units.longDuration; easing.type: Easing.InOutQuad } }
0032 
0033         transform: Scale {
0034             origin.x: root.width / 2
0035             origin.y: root.height / 2
0036             xScale: rect.scaleAmount
0037             yScale: rect.scaleAmount
0038         }
0039     }
0040 
0041     Grid {
0042         id: previewGrid
0043         anchors.fill: parent
0044         anchors.margins: Kirigami.Units.smallSpacing * 2
0045         columns: 2
0046         spacing: Kirigami.Units.smallSpacing
0047 
0048         property var previews: root.folder.appPreviews
0049 
0050         Repeater {
0051             model: previewGrid.previews
0052             delegate: Kirigami.Icon {
0053                 implicitWidth: Math.round((previewGrid.width - previewGrid.spacing) / 2)
0054                 implicitHeight: Math.round((previewGrid.width - previewGrid.spacing) / 2)
0055                 source: modelData.icon
0056             }
0057         }
0058     }
0059 }
0060