on 436b607 help sign in
unity8/qml/Dash/Previews/PreviewTable.qml
86 lines 2.9 kB history raw
1/*
2 * Copyright (C) 2014 Canonical, Ltd.
3 *
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.
7 *
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.
12 *
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/>.
15 */
17import QtQuick 2.0
18import QtQuick.Layouts 1.1
19import Ubuntu.Components 0.1
20import "../../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.
28 */
30PreviewWidget {
31 id: root
32 implicitHeight: column.implicitHeight
34 readonly property int maximumCollapsedRowCount: 3
36 Column {
37 id: column
38 objectName: "column"
39 spacing: units.gu(1)
40 width: parent.width
42 Label {
43 id: titleLabel
44 objectName: "titleLabel"
45 anchors {
46 left: parent.left
47 right: parent.right
48 }
49 height: visible ? implicitHeight : 0
50 fontSize: "large"
51 color: root.scopeStyle ? root.scopeStyle.foreground : Theme.palette.normal.baseText
52 visible: text !== ""
53 opacity: .8
54 text: widgetData["title"] || ""
55 elide: Text.ElideRight
56 }
58 GridLayout {
59 objectName: "gridLayout"
60 columns: 2
61 columnSpacing: units.gu(2)
62 Repeater {
63 id: rowsRepeater
64 model: widgetData["values"]
66 delegate: Repeater {
67 id: perRowRepeater
68 readonly property int rowIndex: index
69 model: widgetData["values"][index]
70 delegate: Label {
71 objectName: "label"+rowIndex+index
72 fontSize: "small"
73 text: perRowRepeater.model[index]
74 visible: root.expanded || rowIndex < maximumCollapsedRowCount
75 color: root.scopeStyle ? root.scopeStyle.foreground : Theme.palette.normal.baseText
76 font.bold: index == 0
77 verticalAlignment: Text.AlignTop
78 wrapMode: Text.WordWrap
79 Layout.fillHeight: true
80 Layout.maximumWidth: column.width - x
81 }
82 }
83 }
84 }
85 }