2
* Copyright (C) 2014 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 Ubuntu.Components 0.1
20
/*! \brief This component constructs the Preview UI.
22
* Currently it displays all the widgets in a flickable column.
28
/*! \brief Model containing preview widgets.
30
* The model should expose "widgetId", "type" and "properties" roles, as well as
31
* have a triggered(QString widgetId, QString actionId, QVariantMap data) method,
32
* that's called when actions are executed in widgets.
34
property var previewModel
36
//! \brief Should be set to true if this preview is currently displayed.
37
property bool isCurrent: false
42
target: shell.applicationManager
43
onMainStageFocusedApplicationChanged: {
46
onSideStageFocusedApplicationChanged: {
51
onPreviewModelChanged: processingMouseArea.enabled = false
61
anchors { fill: parent; margins: spacing }
68
anchors { top: parent.top; bottom: parent.bottom }
71
bottomMargin: Qt.inputMethod.visible ? Qt.inputMethod.keyboardRectangle.height : 0
74
cacheBuffer: units.gu(40)
76
Behavior on contentY { UbuntuNumberAnimation { } }
78
delegate: PreviewWidgetFactory {
79
widgetId: model.widgetId
80
widgetType: model.type
81
widgetData: model.properties
82
isCurrentPreview: root.isCurrent
83
anchors { left: parent.left; right: parent.right }
86
processingMouseArea.enabled = true;
87
previewModel.triggered(widgetId, actionId, data);
90
onFocusChanged: if (focus) column.positionViewAtIndex(index, ListView.Contain)
92
onHeightChanged: if (focus) column.positionViewAtIndex(index, ListView.Contain)
99
id: processingMouseArea
100
objectName: "processingMouseArea"