2 * Copyright (C) 2014,2015 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 QtQuick.Layouts 1.1
19 import Ubuntu.Components 1.3
20 import "../../Components"
22 /*! \brief Preview widget for table.
24 This widget shows two columns contained in widgetData["values"]
25 as arrays of label,value along with a title that comes from widgetData["title"].
27 In case the widget is collapsed it only shows 3 lines of values.
32 implicitHeight: column.implicitHeight
34 readonly property int maximumCollapsedRowCount: 3
44 objectName: "titleLabel"
49 height: visible ? implicitHeight : 0
51 font.weight: Font.Light
52 color: root.scopeStyle ? root.scopeStyle.foreground : theme.palette.normal.baseText
55 text: widgetData["title"] || ""
56 elide: Text.ElideRight
60 objectName: "gridLayout"
62 columnSpacing: units.gu(2)
65 model: widgetData["values"]
69 readonly property int rowIndex: index
70 model: widgetData["values"][index]
72 objectName: "label"+rowIndex+index
74 text: perRowRepeater.model[index]
75 visible: root.expanded || rowIndex < maximumCollapsedRowCount
76 color: root.scopeStyle ? root.scopeStyle.foreground : theme.palette.normal.baseText
77 font.weight: index == 0 ? Font.Normal : Font.Light
79 Layout.alignment: Qt.AlignTop
80 Layout.minimumHeight: Math.max(units.gu(2.75), contentHeight) // FIXME Reevaluate if we need this once we move away from Qt 5.4
81 Layout.maximumWidth: index == 0 ? column.width / 3 : column.width - x
82 Layout.minimumWidth: index == 0 ? column.width / 3 : -1
83 height: -1 // FIXME Qt 5.4 needs this otherwise wrapped columns
84 // get the height wrong and the next row looks weird
85 // remove once we stop supporting Qt 5.4 (if 5.5 doesn't need it)