on xenial help sign in
lp:~unity-team/unity8/newscopes-preview
commitb781598cdaef06c0280c0795025e9da7a34289d6 authorMichał Sawicz <michal.sawicz@canonical.com> dateFri 7 Feb 2014, 17:31 (13 years ago) parentd8c12f15115bba
5 files changed+25−75
qml/Dash/DashPreviewPlaceholder.qml+1−1 qml/Dash/GenericScopeView.qml−26 qml/Dash/PreviewListView.qml+17−46 qml/Dash/Previews/Preview.qml+6−1 tests/qmltests/Dash/Previews/tst_Preview.qml+1−1
qml/Dash/DashPreviewPlaceholder.qml+1−1
@@ -20,6 +20,6 @@ import Ubuntu.Components 0.1
2020DashPreview {
2121 ActivityIndicator {
2222 anchors.centerIn: parent
23− running: true
23+ running: visible
2424 }
2525}
qml/Dash/GenericScopeView.qml−26
@@ -193,7 +193,6 @@ FocusScope {
193193 previewListView.categoryId = categoryId
194194 previewListView.categoryDelegate = rendererLoader.item
195195 previewListView.model = target.model;
196− previewListView.init = true;
197196 previewListView.currentIndex = index;
198197
199198 var item = target.model.get(index);
@@ -203,8 +202,6 @@ FocusScope {
203202 scopeView.scope.activate(item.result)
204203 } else {
205204 previewListView.open = true
206−
207− scopeView.scope.preview(item.result)
208205 }
209206 }
210207 onPressAndHold: {
@@ -212,13 +209,8 @@ FocusScope {
212209 previewListView.categoryId = categoryId
213210 previewListView.categoryDelegate = rendererLoader.item
214211 previewListView.model = target.model;
215− previewListView.init = true;
216212 previewListView.currentIndex = index;
217213 previewListView.open = true
218−
219− var item = target.model.get(index)
220− scopeView.scope.preview(item.uri, item.icon, item.category, 0, item.mimetype, item.title,
221− item.comment, item.dndUri, item.metadata)
222214 }
223215 }
224216 Connections {
@@ -335,24 +327,6 @@ FocusScope {
335327 }
336328 }
337329
338− Connections {
339− target: scopeView.scope
340− onPreviewReady: {
341− if (previewListView.init) {
342− // Preview was triggered because of a click on the item. Need to expand now.
343− if (!previewListView.open) {
344− previewListView.open = true
345− }
346−
347− var index = previewListView.currentIndex
348− previewListView.currentIndex = -1
349− previewListView.currentIndex = index
350− previewListView.init = false
351− }
352− previewListView.currentItem.previewData = preview
353− }
354− }
355−
356330 // TODO: Move as InverseMouseArea to DashPreview
357331 MouseArea {
358332 objectName: "closePreviewMouseArea"
qml/Dash/PreviewListView.qml+17−46
@@ -18,6 +18,7 @@ import QtQuick 2.0
1818import Ubuntu.Components 0.1
1919import Unity 0.2
2020import "../Components"
21+import "Previews" as Previews
2122
2223Item {
2324 property OpenEffect openEffect: null
@@ -28,7 +29,6 @@ Item {
2829 property alias onScreen: previewListView.onScreen
2930 property alias categoryId: previewListView.categoryId
3031 property alias categoryDelegate: previewListView.categoryDelegate
31− property alias init: previewListView.init
3232 property alias model: previewListView.model
3333 property alias currentIndex: previewListView.currentIndex
3434 property alias currentItem: previewListView.currentItem
@@ -83,11 +83,8 @@ Item {
8383 // when the first preview is ready to be displayed.
8484 property bool init: true
8585
86− PreviewDelegateMapper {
87− id: previewDelegateMapper
88− }
89−
9086 onCurrentIndexChanged: {
87+ if (currentIndex < 0) return;
9188 var row = Math.floor(currentIndex / categoryDelegate.columns);
9289 if (categoryDelegate.collapsedRowCount <= row) {
9390 categoryView.expandedCategoryId = categoryId
@@ -97,9 +94,9 @@ Item {
9794 categoryDelegate.highlightIndex = currentIndex
9895 }
9996
100− if (!init && model !== undefined) {
97+ if (model !== undefined) {
10198 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)
103100 }
104101
105102 // Adjust contentY in case we need to change to it to show the next row
@@ -154,58 +151,32 @@ Item {
154151 z: -1
155152 }
156153
157− delegate: Loader {
158− id: previewLoader
159− objectName: "previewLoader" + index
154+ delegate: Previews.Preview {
155+ id: preview
156+ objectName: "preview" + index
160157 height: previewListView.height
161158 width: previewListView.width
162− asynchronous: true
163− source: previewListView.onScreen ?
164− (previewData !== undefined ? previewDelegateMapper.map(previewData.rendererName) : "DashPreviewPlaceholder.qml") : ""
165159
166− onPreviewDataChanged: {
167− if (previewData !== undefined && source.toString().indexOf("DashPreviewPlaceholder.qml") != -1) {
168− previewLoader.opacity = 0;
169− }
170− }
160+ isCurrent: ListView.isCurrentItem
171161
172− onSourceChanged: {
173− if (previewData !== undefined) {
174− fadeIn.start()
175− }
176− }
162+ onPreviewModelChanged: preview.opacity = 0;
163+ onReadyChanged: if (ready) fadeIn.start()
164+// onClose: {
165+// previewListView.open = false
166+// }
177167
178168 PropertyAnimation {
179169 id: fadeIn
180− target: previewLoader
170+ target: preview
181171 property: "opacity"
182172 from: 0.0
183173 to: 1.0
184174 duration: UbuntuAnimation.BriskDuration
185175 }
186176
187− property var previewData
188− property bool valid: item !== null
189−
190− onLoaded: {
191− if (previewListView.onScreen && previewData !== undefined) {
192− item.previewData = Qt.binding(function() { return previewData })
193− item.isCurrent = Qt.binding(function() { return ListView.isCurrentItem })
194− }
195− }
196−
197− Connections {
198− ignoreUnknownSignals: true
199− target: item
200− onClose: {
201− previewListView.open = false
202− }
203− }
204−
205− function closePreviewSpinner() {
206− if (item) {
207− item.showProcessingAction = false;
208− }
177+ ActivityIndicator {
178+ anchors.centerIn: parent
179+ running: visible
209180 }
210181 }
211182 }
qml/Dash/Previews/Preview.qml+6−1
@@ -36,10 +36,14 @@ Item {
3636 //! \brief Should be set to true if this preview is currently displayed.
3737 property bool isCurrent: false
3838
39+ //! \brief Will be changed to true when the initial preview widgets are in.
40+ property bool ready: false
41+
3942 clip: true
4043
4144 Connections {
42− target: shell.applicationManager
45+ target: shell.applicationManager || null
46+ ignoreUnknownSignals: true
4347 onMainStageFocusedApplicationChanged: {
4448 root.close();
4549 }
@@ -71,6 +75,7 @@ Item {
7175 bottomMargin: Qt.inputMethod.visible ? Qt.inputMethod.keyboardRectangle.height : 0
7276
7377 model: previewModel
78+ onCountChanged: if (count > 0) root.ready = true
7479
7580 Behavior on contentY { UbuntuNumberAnimation { } }
7681
tests/qmltests/Dash/Previews/tst_Preview.qml+1−1
@@ -18,7 +18,7 @@ import QtQuick 2.0
1818import QtTest 1.0
1919import "../../../../qml/Dash/Previews"
2020import Unity.Test 0.1 as UT
21−import Unity 0.1 as Unity
21+import Unity 0.2 as Unity
2222
2323Rectangle {
2424 id: root