on 3c679be help sign in
unity8/Dash/Generic/GenericPreview.qml
84 lines 2.5 kB history raw
1/*
2 * Copyright (C) 2013 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 Ubuntu.Components 0.1
19import "../../Components"
20import "../../Components/ListItems" as ListItems
21import "../../Components/IconUtil.js" as IconUtil
22import ".."
24DashPreview {
25 id: genericPreview
26 property var previewData
28 title: previewData.title
29 url: IconUtil.from_gicon(previewData.image)
30 previewWidthRatio: 0.6
32 buttons: GridView {
33 id: buttons
34 model: genericPreview.previewData.actions
36 property int numOfRows: (count + 1) / 2
37 property int spacing: units.gu(1)
38 height: Math.max(units.gu(4), units.gu(4)*numOfRows + spacing*(numOfRows - 1))
40 cellWidth: Math.max(units.gu(9), width / 2)
41 cellHeight: buttonHeight + spacing
42 property int buttonWidth: Math.max(0, width / 2 - spacing)
43 property int buttonHeight: units.gu(4)
45 delegate: Button {
46 width: Math.max(units.gu(4), buttons.buttonWidth)
47 height: buttons.buttonHeight
48 color: "#dd4814"
49 text: modelData.displayName
50 iconSource: modelData.iconHint
51 iconPosition: "right"
52 visible: true
53 onClicked: {
54 genericPreview.previewData.execute(modelData.id, { })
55 }
56 }
57 focus: false
58 }
59 description: Column {
60 spacing: units.gu(2)
62 Label {
63 visible: text != ""
64 fontSize: "medium"
65 opacity: 0.6
66 color: "white"
67 text: previewData.subtitle
68 style: Text.Raised
69 styleColor: "black"
70 wrapMode: Text.WordWrap
71 }
73 Label {
74 visible: text != ""
75 fontSize: "small"
76 opacity: 0.6
77 color: "white"
78 text: previewData.description
79 style: Text.Raised
80 styleColor: "black"
81 wrapMode: Text.WordWrap
82 }
83 }