2 * Copyright 2014 Canonical Ltd.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 //! \brief This component loads the widgets based on widgetData["type"].
25 //! Identifier of the widget.
26 property string widgetId: ""
28 //! Type of the widget to display.
29 property string widgetType: ""
31 //! Widget data, forwarded to the widget as is.
32 property var widgetData: null
34 //! The ScopeStyle component.
35 property var scopeStyle: null
37 //! Should the widget show in expanded mode (For those that support it)
38 property bool expanded: widgetType !== "expandable"
40 //! Set to true if the parent preview is displayed.
41 property bool isCurrentPreview: false
43 //! Triggered signal forwarded from the widgets.
44 signal triggered(string widgetId, string actionId, var data)
49 property url widgetSource: {
51 case "actions": return "PreviewActions.qml";
52 case "audio": return "PreviewAudioPlayback.qml";
53 case "comment": return "PreviewComment.qml";
54 case "comment-input": return "PreviewCommentInput.qml";
55 case "expandable": return "PreviewExpandable.qml";
56 case "gallery": return "PreviewImageGallery.qml";
57 case "header": return "PreviewHeader.qml";
58 case "icon-actions": return "PreviewIconActions.qml";
59 case "image": return "PreviewZoomableImage.qml";
60 case "progress": return "PreviewProgress.qml";
61 case "payments": return "PreviewPayments.qml";
62 case "rating-input": return "PreviewRatingInput.qml";
63 case "rating-edit": return "PreviewRatingEdit.qml";
64 case "reviews": return "PreviewRatingDisplay.qml";
65 case "table": return "PreviewTable.qml";
66 case "text": return "PreviewTextSummary.qml";
67 case "video": return "PreviewVideoPlayback.qml";
74 item.widgetId = Qt.binding(function() { return root.widgetId } )
75 item.widgetData = Qt.binding(function() { return root.widgetData } )
76 item.isCurrentPreview = Qt.binding(function() { return root.isCurrentPreview } )
77 item.expanded = Qt.binding(function() { return root.expanded } )
78 item.scopeStyle = Qt.binding(function() { return root.scopeStyle } )
83 onTriggered: root.triggered(widgetId, actionId, data)