@@ -40,13 +40,30 @@ Item {
4040 height: 1;
4141 hideSource: doShapeItem;
4242 }
43− UbuntuShape {
44− id: artShapeShape;
45− source: artShapeSource;
43+ Loader {
4644 anchors.fill: parent;
47− visible: doShapeItem;
48− radius: "medium";
49− aspect: root.artShapeStyle === "inset" ? UbuntuShape.Inset : UbuntuShape.Flat;
45+ visible: artShape.doShapeItem;
46+ sourceComponent: root.artShapeStyle === "icon" ? artShapeIconComponent : artShapeShapeComponent;
47+ Component {
48+ id: artShapeShapeComponent;
49+ UbuntuShape {
50+ source: artShapeSource;
51+ sourceFillMode: UbuntuShape.PreserveAspectCrop;
52+ radius: "medium";
53+ aspect: {
54+ switch (root.artShapeStyle) {
55+ case "inset": return UbuntuShape.Inset;
56+ case "shadow": return UbuntuShape.DropShadow;
57+ default:
58+ case "flat": return UbuntuShape.Flat;
59+ }
60+ }
61+ }
62+ }
63+ Component {
64+ id: artShapeIconComponent;
65+ UbuntuShapeIcon { source: artShapeSource; }
66+ }
5067 }
5168 readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1;
5269 readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : components !== undefined ? components["art"]["aspect-ratio"] : 1;
@@ -115,7 +132,7 @@ UbuntuShape {
115132 id: touchdown;
116133 objectName: "touchdown";
117134 anchors { fill: artShapeHolder }
118− visible: root.pressed;
135+ visible: root.artShapeStyle != "shadow" && root.artShapeStyle != "icon" && root.pressed;
119136 radius: "medium";
120137 borderSource: "radius_pressed.sci"
121138}