Recolor placeholder icon for packages/plugins correctly in dark-mode

As we don't want to recolor the icon if the package has a custom icon
a `Image` or `UM.RecolorImage` is shown conditionally.

CURA-8975
This commit is contained in:
casper 2022-03-09 12:10:49 +01:00
parent 0e2848796c
commit 70f66648f4

View file

@ -24,7 +24,7 @@ Item
height: UM.Theme.getSize("card").height height: UM.Theme.getSize("card").height
// card icon // card icon
Image Item
{ {
id: packageItem id: packageItem
anchors anchors
@ -35,19 +35,36 @@ Item
} }
width: UM.Theme.getSize("card_icon").width width: UM.Theme.getSize("card_icon").width
height: width height: width
property bool packageHasIcon: packageData.iconUrl != ""
Image
{
visible: parent.packageHasIcon
anchors.fill: parent
source: packageData.iconUrl
sourceSize.height: height sourceSize.height: height
sourceSize.width: width sourceSize.width: width
}
UM.RecolorImage
{
visible: !parent.packageHasIcon
anchors.fill: parent
sourceSize.height: height
sourceSize.width: width
color: UM.Theme.getColor("text")
source: source:
{ {
if (packageData.iconUrl != "")
{
return packageData.iconUrl
}
switch (packageData.packageType) switch (packageData.packageType)
{ {
case "plugin": return "../images/Plugin.svg"; case "plugin":
case "material": return "../images/Spool.svg"; return "../images/Plugin.svg";
default: return "../images/placeholder.svg"; case "material":
return "../images/Spool.svg";
default:
return "../images/placeholder.svg";
}
} }
} }
} }