Unity 8
PreviewRatingDisplay.qml
1 /*
2  * Copyright (C) 2014,2015 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  */
16 
17 import QtQuick 2.4
18 import Ubuntu.Components 1.3
19 import "../../Components"
20 
21 /*! \brief Preview widget for rating display.
22 
23  The widget can show a rating widget and a field showing a comment.
24  The icons used in the rating widget can be customised with
25  widgetData["rating-icon-empty"], widgetData["rating-icon-full"]
26  and widgetData["rating-icon-half"].
27 
28  This widget shows reviews contained in widgetData["reviews"], each of which should be of the form:
29 
30  \code{.json}
31  {
32  "rating": null,
33  "review": null,
34  "author": null
35  }
36  \endcode
37  */
38 
39 PreviewWidget {
40  id: root
41  implicitHeight: childrenRect.height
42 
43  Column {
44  anchors { left: parent.left; right: parent.right; }
45  visible: reviewsRepeater.count > 0
46 
47  Repeater {
48  id: reviewsRepeater
49  objectName: "reviewsRepeater"
50  model: root.widgetData["reviews"]
51 
52  delegate: PreviewRatingSingleDisplay {
53  objectName: "reviewItem" + index
54 
55  anchors { left: parent.left; right: parent.right; }
56 
57  rating: modelData["rating"] || -1
58  author: modelData["author"] || ""
59  review: modelData["review"] || ""
60  urlIconEmpty: widgetData["rating-icon-empty"]
61  urlIconFull: widgetData["rating-icon-full"]
62  urlIconHalf: widgetData["rating-icon-half"]
63  labelColor: scopeStyle ? scopeStyle.foreground : theme.palette.normal.baseText
64  }
65  }
66  }
67 }