@@ -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,11 +77,19 @@ 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
74− property var cardComponent: CardCreatorCache.getCardComponent(cardTool.template, cardTool.components, false, cardTool.artShapeStyle, cardTool.categoryLayout);
92+ readonly property var cardComponent: CardCreatorCache.getCardComponent(cardTool.template, cardTool.components, false, cardTool.artShapeStyle, cardTool.categoryLayout);
7593
7694 // FIXME: Saviq
7795 // Only way for the card below to actually be laid out completely.
@@ -85,7 +103,19 @@ Item {
85103
86104 If -1, should use implicit width of the actual card.
87105 */
88− property real cardWidth: {
106+ readonly property real cardWidth: {
107+ if (isAppLikeScopeAppCategory) {
108+ if (viewWidth > units.gu(45)) {
109+ if (viewWidth >= units.gu(70)) {
110+ return units.gu(11);
111+ } else {
112+ return units.gu(10);
113+ }
114+ } else {
115+ return units.gu(12);
116+ }
117+ }
118+
89119 switch (categoryLayout) {
90120 case "grid":
91121 case "vertical-journal":
@@ -142,12 +172,19 @@ Item {
142172 type:real \brief Height of the card's header.
143173 */
144174 readonly property int headerHeight: cardLoader.item ? cardLoader.item.headerHeight : 0
145− property size artShapeSize: cardLoader.item ? cardLoader.item.artShapeSize : Qt.size(0, 0)
175+
176+ readonly property size artShapeSize: {
177+ if (isAppLikeScopeAppCategory) {
178+ return Qt.size(units.gu(8), units.gu(7.5));
179+ } else {
180+ return cardLoader.item ? cardLoader.item.artShapeSize : Qt.size(0, 0)
181+ }
182+ }
146183
147184 QtObject {
148185 id: carouselTool
149186
150− property real minimumTileWidth: {
187+ readonly property real minimumTileWidth: {
151188 if (cardTool.viewWidth === undefined) return undefined;
152189 if (cardTool.viewWidth <= units.gu(40)) return units.gu(18);
153190 if (cardTool.viewWidth >= units.gu(128)) return units.gu(26);
@@ -156,7 +193,7 @@ Item {
156193
157194 readonly property real pathItemCount: 4.8457 /// (848 / 175) reference values
158195
159− property real realPathItemCount: {
196+ readonly property real realPathItemCount: {
160197 var scaledMinimumTileWidth = minimumTileWidth / cardTool.carouselSelectedItemScaleFactor;
161198 var tileWidth = Math.max(cardTool.viewWidth / pathItemCount, scaledMinimumTileWidth);
162199 return Math.min(cardTool.viewWidth / tileWidth, pathItemCount);