@@ -18,6 +18,7 @@ import QtQuick 2.0
18import Ubuntu.Components 0.1
18import Ubuntu.Components 0.1
19import Unity 0.2
19import Unity 0.2
20import "../Components"
20import "../Components"
21+import "Previews" as Previews
23 property OpenEffect openEffect: null
24 property OpenEffect openEffect: null
@@ -28,7 +29,6 @@ Item {
28 property alias onScreen: previewListView.onScreen
29 property alias onScreen: previewListView.onScreen
29 property alias categoryId: previewListView.categoryId
30 property alias categoryId: previewListView.categoryId
30 property alias categoryDelegate: previewListView.categoryDelegate
31 property alias categoryDelegate: previewListView.categoryDelegate
31− property alias init: previewListView.init
32 property alias model: previewListView.model
32 property alias model: previewListView.model
33 property alias currentIndex: previewListView.currentIndex
33 property alias currentIndex: previewListView.currentIndex
34 property alias currentItem: previewListView.currentItem
34 property alias currentItem: previewListView.currentItem
@@ -83,11 +83,8 @@ Item {
83 // when the first preview is ready to be displayed.
83 // when the first preview is ready to be displayed.
84 property bool init: true
84 property bool init: true
86− PreviewDelegateMapper {
87− id: previewDelegateMapper
90 onCurrentIndexChanged: {
86 onCurrentIndexChanged: {
87+ if (currentIndex < 0) return;
91 var row = Math.floor(currentIndex / categoryDelegate.columns);
88 var row = Math.floor(currentIndex / categoryDelegate.columns);
92 if (categoryDelegate.collapsedRowCount <= row) {
89 if (categoryDelegate.collapsedRowCount <= row) {
93 categoryView.expandedCategoryId = categoryId
90 categoryView.expandedCategoryId = categoryId
@@ -97,9 +94,9 @@ Item {
97 categoryDelegate.highlightIndex = currentIndex
94 categoryDelegate.highlightIndex = currentIndex
100− if (!init && model !== undefined) {
97+ if (model !== undefined) {
101 var item = model.get(currentIndex)
98 var item = model.get(currentIndex)
102− scope.preview(item.uri, item.icon, item.category, 0, item.mimetype, item.title, item.comment, item.dndUri, item.metadata)
99+ previewListView.currentItem.previewModel = scope.preview(item.result)
105 // Adjust contentY in case we need to change to it to show the next row
102 // Adjust contentY in case we need to change to it to show the next row
@@ -154,58 +151,32 @@ Item {
157− delegate: Loader {
154+ delegate: Previews.Preview {
158− id: previewLoader
155+ id: preview
159− objectName: "previewLoader" + index
156+ objectName: "preview" + index
160 height: previewListView.height
157 height: previewListView.height
161 width: previewListView.width
158 width: previewListView.width
163− source: previewListView.onScreen ?
164− (previewData !== undefined ? previewDelegateMapper.map(previewData.rendererName) : "DashPreviewPlaceholder.qml") : ""
166− onPreviewDataChanged: {
160+ isCurrent: ListView.isCurrentItem
167− if (previewData !== undefined && source.toString().indexOf("DashPreviewPlaceholder.qml") != -1) {
168− previewLoader.opacity = 0;
172− onSourceChanged: {
162+ onPreviewModelChanged: preview.opacity = 0;
173− if (previewData !== undefined) {
174− fadeIn.start()
163+ onReadyChanged: if (ready) fadeIn.start()
165+// previewListView.open = false
178 PropertyAnimation {
168 PropertyAnimation {
179 id: fadeIn
169 id: fadeIn
180− target: previewLoader
170+ target: preview
181 property: "opacity"
171 property: "opacity"
182 from: 0.0
172 from: 0.0
184 duration: UbuntuAnimation.BriskDuration
174 duration: UbuntuAnimation.BriskDuration
187− property var previewData
177+ DashPreviewPlaceholder {
188− property bool valid: item !== null
178+ anchors.fill: parent
189−
179+ visible: !parent.ready
191− if (previewListView.onScreen && previewData !== undefined) {
192− item.previewData = Qt.binding(function() { return previewData })
193− item.isCurrent = Qt.binding(function() { return ListView.isCurrentItem })
198− ignoreUnknownSignals: true
201− previewListView.open = false
205− function closePreviewSpinner() {
207− item.showProcessingAction = false;