2 * Copyright (C) 2013 Canonical, Ltd.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 3.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 import "../Components"
23 readonly property int collapsedRows: {
24 if (!cardTool || !cardTool.template || typeof cardTool.template["collapsed-rows"] != "number") return 2;
25 return cardTool.template["collapsed-rows"];
28 expandedHeight: grid.totalContentHeight
29 collapsedHeight: Math.min(grid.contentHeightForRows(collapsedRows, grid.cellHeight), expandedHeight)
30 collapsedItemCount: collapsedRows * grid.columns
33 function cardPosition(index) {
35 var row = Math.floor(index / grid.columns);
36 var column = index % grid.columns;
37 // Bit sad this is not symmetrical
38 pos.x = column * grid.cellWidth + grid.margins;
39 pos.y = row * grid.cellHeight;
46 minimumHorizontalSpacing: units.gu(1)
47 delegateWidth: cardTool.cardWidth
48 delegateHeight: cardTool.cardHeight
49 verticalSpacing: units.gu(1)
51 displayMarginBeginning: root.displayMarginBeginning
52 displayMarginEnd: root.displayMarginEnd
53 cacheBuffer: root.cacheBuffer
57 height: grid.cellHeight
60 sourceComponent: cardTool.cardComponent
61 anchors.horizontalCenter: parent.horizontalCenter
63 item.objectName = "delegate" + index;
64 item.width = Qt.binding(function() { return cardTool.cardWidth; });
65 item.height = Qt.binding(function() { return cardTool.cardHeight; });
66 item.fixedHeaderHeight = Qt.binding(function() { return cardTool.headerHeight; });
67 item.fixedArtShapeSize = Qt.binding(function() { return cardTool.artShapeSize; });
68 item.cardData = Qt.binding(function() { return model; });
69 item.components = Qt.binding(function() { return cardTool.components; });
70 item.titleAlignment = Qt.binding(function() { return cardTool.titleAlignment; });
71 item.scopeStyle = root.scopeStyle;
75 onClicked: root.clicked(index, result, loader.item, model)
76 onPressAndHold: root.pressAndHold(index, result, model)