Files
illogical-impulse/dots/.config/quickshell/ii/modules/waffle/startMenu/searchPage/SearchEntryIcon.qml
T
2025-12-06 23:14:08 +01:00

49 lines
1.6 KiB
QML

import QtQuick
import QtQuick.Layouts
import Quickshell
import qs
import qs.services
import qs.modules.common
import qs.modules.common.models
import qs.modules.common.functions
import qs.modules.common.widgets
import qs.modules.waffle.looks
Item {
id: root
required property LauncherSearchResult entry
property int iconSize: 24
implicitWidth: Math.max(iconSize, textIconLoader.implicitWidth)
implicitHeight: iconSize
Loader {
anchors.centerIn: parent
active: root.entry.iconType === LauncherSearchResult.IconType.System && root.entry.iconName !== ""
sourceComponent: WAppIcon {
implicitSize: root.iconSize
iconName: root.entry.iconName
tryCustomIcon: false
animated: false
}
}
Loader {
id: textIconLoader
anchors.centerIn: parent
active: root.entry.iconType === LauncherSearchResult.IconType.Text
sourceComponent: WText {
text: root.entry.iconName
font.pixelSize: root.iconSize
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
}
Loader {
anchors.centerIn: parent
active: root.entry.iconType === LauncherSearchResult.IconType.Material || root.entry.iconType === LauncherSearchResult.IconType.None || root.entry.iconName === ""
sourceComponent: FluentIcon {
icon: root.entry.iconName ? WIcons.fluentFromMaterial(root.entry.iconName) : WIcons.guessIconForName(root.entry.name)
implicitSize: root.iconSize
animated: false
}
}
}