@@ -41,11 +41,6 @@ Item {
4141 */
4242 property real viewWidth
4343
44− /*!
45− \brief Scaling factor of selected Carousel item.
46− */
47− readonly property real carouselSelectedItemScaleFactor: 1.38 // XXX assuming 1.38 carousel scaling factor for cards
48−
4944 /*!
5045 \brief Template supplied for the category.
5146 */
@@ -56,10 +51,25 @@ Item {
5651 */
5752 property var components
5853
54+ /*!
55+ \brief The Scope this cardTool is representing
56+ */
57+ property string scopeId
58+
59+ /*!
60+ \brief The Scope category this cardTool is representing
61+ */
62+ property string categoryId
63+
64+ /*!
65+ \brief Scaling factor of selected Carousel item.
66+ */
67+ readonly property real carouselSelectedItemScaleFactor: 1.38 // XXX assuming 1.38 carousel scaling factor for cards
68+
5969 /*!
6070 \brief The category layout for this card tool.
6171 */
62− property string categoryLayout: {
72+ readonly property string categoryLayout: {
6373 var layout = template["category-layout"];
6474
6575 // carousel fallback mode to grid
@@ -67,9 +77,17 @@ Item {
6777 return layout;
6878 }
6979
80+ readonly property bool isAppLikeScope: scopeId === "clickscope" || scopeId === "libertine-scope.ubuntu_libertine-scope"
81+ readonly property bool isAppLikeScopeAppCategory: ((scopeId === "clickscope" && (categoryId === "predefined" || categoryId === "local"))
82+ || (scopeId === "libertine-scope.ubuntu_libertine-scope" && categoryId !== "hint"))
7083
71− // Not readonly because gets overwritten from GenericScopeView in some cases
72− property string artShapeStyle: categoryLayout === "carousel" ? "shadow" : "inset"
84+ readonly property string artShapeStyle: {
85+ if (isAppLikeScope) {
86+ return isAppLikeScopeAppCategory ? "icon" : "flat";
87+ } else {
88+ return categoryLayout === "carousel" ? "shadow" : "inset"
89+ }
90+ }
7391
7492 // FIXME ? This seems like it should not be needed, but on Qt 5.4 + phone
7593 // we are doing unneeded calls to getCardComponent with artShapeStyle and categoryLayout being empty
@@ -90,12 +108,31 @@ Item {
90108 height: 0
91109 clip: true
92110
111+ // We have 3 view "widths"
112+ // narrow <= 45gu
113+ // normal
114+ // wide >= 70gu
115+ readonly property bool isWideView: viewWidth >= units.gu(70)
116+ readonly property bool isNarrowView: viewWidth <= units.gu(45)
117+
93118 /*!
94119 type:real \brief Width to be enforced on the card in this configuration.
95120
96121 If -1, should use implicit width of the actual card.
97122 */
98− property real cardWidth: {
123+ readonly property real cardWidth: {
124+ if (isAppLikeScopeAppCategory) {
125+ if (!isNarrowView) {
126+ if (isWideView) {
127+ return units.gu(11);
128+ } else {
129+ return units.gu(10);
130+ }
131+ } else {
132+ return units.gu(12);
133+ }
134+ }
135+
99136 switch (categoryLayout) {
100137 case "grid":
101138 case "vertical-journal":
@@ -103,16 +140,16 @@ Item {
103140 if (template["card-layout"] === "horizontal") size = "large";
104141 switch (size) {
105142 case "small": {
106− if (viewWidth <= units.gu(45)) return units.gu(12);
143+ if (isNarrowView) return units.gu(12);
107144 else return units.gu(14);
108145 }
109146 case "large": {
110− if (viewWidth >= units.gu(70)) return units.gu(42);
147+ if (isWideView) return units.gu(42);
111148 else return viewWidth - units.gu(2);
112149 }
113150 }
114− if (viewWidth <= units.gu(45)) return units.gu(18);
115− else if (viewWidth >= units.gu(70)) return units.gu(20);
151+ if (isNarrowView) return units.gu(18);
152+ else if (isWideView) return units.gu(20);
116153 else return units.gu(23);
117154 case "carousel":
118155 case "horizontal-list":
@@ -152,12 +189,19 @@ Item {
152189 type:real \brief Height of the card's header.
153190 */
154191 readonly property int headerHeight: cardLoader.item ? cardLoader.item.headerHeight : 0
155− property size artShapeSize: cardLoader.item ? cardLoader.item.artShapeSize : Qt.size(0, 0)
192+
193+ readonly property size artShapeSize: {
194+ if (isAppLikeScopeAppCategory) {
195+ return Qt.size(units.gu(8), units.gu(7.5));
196+ } else {
197+ return cardLoader.item ? cardLoader.item.artShapeSize : Qt.size(0, 0)
198+ }
199+ }
156200
157201 QtObject {
158202 id: carouselTool
159203
160− property real minimumTileWidth: {
204+ readonly property real minimumTileWidth: {
161205 if (cardTool.viewWidth === undefined) return undefined;
162206 if (cardTool.viewWidth <= units.gu(40)) return units.gu(18);
163207 if (cardTool.viewWidth >= units.gu(128)) return units.gu(26);
@@ -166,7 +210,7 @@ Item {
166210
167211 readonly property real pathItemCount: 4.8457 /// (848 / 175) reference values
168212
169− property real realPathItemCount: {
213+ readonly property real realPathItemCount: {
170214 var scaledMinimumTileWidth = minimumTileWidth / cardTool.carouselSelectedItemScaleFactor;
171215 var tileWidth = Math.max(cardTool.viewWidth / pathItemCount, scaledMinimumTileWidth);
172216 return Math.min(cardTool.viewWidth / tileWidth, pathItemCount);