Merge lp:~artmello/gallery-app/gallery-app-remove_album_transition into lp:gallery-app

Proposed by Arthur Mello
Status: Merged
Merged at revision: 995
Proposed branch: lp:~artmello/gallery-app/gallery-app-remove_album_transition
Merge into: lp:gallery-app
Diff against target: 523 lines (+86/-157)
9 files modified
rc/qml/AlbumEditor/AlbumEditor.qml (+5/-1)
rc/qml/AlbumViewer/AlbumViewer.qml (+29/-87)
rc/qml/AlbumViewer/AlbumViewerAnimated.qml (+10/-27)
rc/qml/AlbumsOverview.qml (+31/-2)
rc/qml/MainScreen.qml (+3/-2)
rc/qml/MediaViewer/PopupPhotoViewer.qml (+2/-33)
tests/autopilot/gallery_app/emulators/album_view.py (+5/-0)
tests/autopilot/gallery_app/tests/__init__.py (+0/-4)
tests/autopilot/gallery_app/tests/test_album_editor.py (+1/-1)
To merge this branch: bzr merge lp:~artmello/gallery-app/gallery-app-remove_album_transition
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Approve
Ubuntu Phablet Team Pending
Review via email: mp+222699@code.launchpad.net

Commit message

Remove album opening/closing transition to reduce load timer on devices.

Description of the change

Remove album opening/closing transition to reduce load timer on devices.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
1000. By Arthur Mello

Fix AP test check for AlbumViewer fully open

1001. By Arthur Mello

Fix AP test changing check for AlbumViewerAnimated close by AlbumViewer close

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Arthur Mello (artmello) wrote :

Are there any related MPs required for this MP to build/function as expected? Please list: No
Is your branch in sync with latest trunk (e.g. bzr pull lp:trunk -> no changes): Yes
Did you perform an exploratory manual test run of your code change and any related functionality on device or emulator?: Yes
Did you successfully run all tests found in your component's Test Plan (https://wiki.ubuntu.com/Process/Merges/TestPlan/gallery-app) on device or emulator? Yes
If you changed the UI, was the change specified/approved by design? No UI changes.
If you changed the packaging (debian), did you subscribe a core-dev to this MP? No packaging changes.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'rc/qml/AlbumEditor/AlbumEditor.qml'
2--- rc/qml/AlbumEditor/AlbumEditor.qml 2014-05-20 09:34:10 +0000
3+++ rc/qml/AlbumEditor/AlbumEditor.qml 2014-06-10 19:01:57 +0000
4@@ -205,7 +205,11 @@
5 coverMenu.hide();
6 }
7
8- onAddPhotos: overview.pushPage(mediaSelectorComponent);
9+ onAddPhotos: {
10+ if (isTextEditing)
11+ cover.editingDone();
12+ overview.pushPage(mediaSelectorComponent);
13+ }
14 }
15 }
16
17
18=== modified file 'rc/qml/AlbumViewer/AlbumViewer.qml'
19--- rc/qml/AlbumViewer/AlbumViewer.qml 2014-05-22 07:35:58 +0000
20+++ rc/qml/AlbumViewer/AlbumViewer.qml 2014-06-10 19:01:57 +0000
21@@ -45,13 +45,20 @@
22 /*!
23 */
24 property bool animationRunning: albumSpreadViewer.isFlipping ||
25- removeCrossfadeAnimation.running ||
26- albumSpreadViewerForTransition.freeze ||
27 photoViewerLoader.animationRunning
28
29 property string mediaCurrentlyInView
30 StateSaver.properties: "mediaCurrentlyInView"
31
32+ /// Indicates if this view is open
33+ property bool isOpen: false
34+ /// Origin (rectangle) where this view is animated from when calling open()
35+ /// And where it is animated to when this view is closed
36+ property variant origin
37+ /// The preview item that was used to open the view, or null, if it was opend another way
38+ /// This item will be hidden when this view is opened. And shown again after closing this view
39+ property Item previewItem: null
40+
41 function reopenPicture() {
42 if (album && albumViewer.mediaCurrentlyInView !== "") {
43 for (var i in album.allMediaSources) {
44@@ -82,6 +89,25 @@
45 }
46 }
47
48+ onCloseRequested: {
49+ if (origin) {
50+ if (album)
51+ album.closed = !stayOpen || (viewingPage == 0);
52+ if (previewItem)
53+ previewItem.visible = true
54+ }
55+ visible = false
56+ overview.popPage();
57+ isOpen = false
58+ }
59+ onQuickCloseRequested: {
60+ visible = false
61+ overview.popPage();
62+ isOpen = false
63+ if (previewItem)
64+ previewItem.visible = true;
65+ }
66+
67 // When the user clicks the back button or pages back to the cover.
68 signal closeRequested(bool stayOpen, int viewingPage)
69 // When the user clicks the back button or pages back to the cover.
70@@ -94,15 +120,6 @@
71 source: "../../img/background-paper.png"
72 }
73
74- function crossfadeRemove() {
75- removeCrossfadeAnimation.restart();
76- }
77-
78- function fadeOutAndFlipRemove(flipToPage) {
79- fadeOutAnimation.flipToPage = flipToPage;
80- fadeOutAnimation.restart();
81- }
82-
83 /// Closes the view as stores the page number the page number currently viewed
84 function __close() {
85 closeRequested(album.containedCount > 0, albumSpreadViewer.viewingPage)
86@@ -113,51 +130,6 @@
87 quickCloseRequested()
88 }
89
90- FadeOutAnimation {
91- id: fadeOutAnimation
92-
93- property int flipToPage: 0
94-
95- target: isPortrait ? albumSpreadViewerForTransition.rightPageComponent :
96- albumSpreadViewerForTransition.leftPageComponent
97- duration: 200
98- easingType: Easing.Linear
99-
100- onRunningChanged: {
101- if (running)
102- return;
103-
104- flipTimer.restart()
105-
106- albumSpreadViewerForTransition.flipTo(flipToPage);
107- albumSpreadViewer.flipTo(flipToPage);
108- }
109- }
110-
111- Timer {
112- id: flipTimer
113-
114- interval: albumSpreadViewer.duration
115-
116- onTriggered: albumSpreadViewerForTransition.freeze = false
117- }
118-
119- DissolveAnimation {
120- id: removeCrossfadeAnimation
121-
122- duration: 200
123- fadeOutTarget: albumSpreadViewerForTransition
124- fadeInTarget: albumSpreadViewer
125- easingType: Easing.Linear
126-
127- onRunningChanged: {
128- if (running)
129- return;
130-
131- albumSpreadViewerForTransition.freeze = false;
132- }
133- }
134-
135 function resetView(album) {
136 albumViewer.album = album;
137
138@@ -172,31 +144,6 @@
139 overview.pushPage(component_mediaSelector);
140 }
141
142- // Used for the cross-fade transition.
143- AlbumSpreadViewer {
144- id: albumSpreadViewerForTransition
145-
146- anchors.fill: parent
147- album: albumViewer.album
148- z: 100
149- visible: freeze
150- load: parent.visible && freeze
151-
152- Connections {
153- target: albumSpreadViewer
154-
155- onViewingPageChanged: {
156- if (!albumSpreadViewerForTransition.freeze)
157- albumSpreadViewerForTransition.flipTo(albumSpreadViewer.viewingPage);
158- }
159- }
160-
161- onFreezeChanged: {
162- if (!freeze)
163- flipTo(albumSpreadViewer.viewingPage);
164- }
165- }
166-
167 AlbumSpreadViewer {
168 id: albumSpreadViewer
169 objectName: "spreadViewer"
170@@ -209,7 +156,7 @@
171 // Keyboard focus while visible and viewer is not visible
172 focus: visible
173
174- showCover: !albumSpreadViewerForTransition.freeze
175+ showCover: true
176
177 Keys.onPressed: {
178 if (event.key !== Qt.Key_Left && event.key !== Qt.Key_Right)
179@@ -223,8 +170,6 @@
180 albumSpreadViewer.isPopulatedContentPage(destination)) {
181 chrome.hide(true);
182
183- albumSpreadViewerForTransition.flipTo(destination);
184-
185 event.accepted = true;
186 }
187 }
188@@ -366,7 +311,6 @@
189
190 onOpened: {
191 overview.pushPage(target);
192- albumSpreadViewer.visible = false;
193 }
194 onCloseRequested: {
195 albumViewer.mediaCurrentlyInView = "";
196@@ -376,12 +320,10 @@
197 albumSpreadViewer.viewingPage = isPortrait? page : albumViewer.album.currentPage;
198 }
199
200- albumSpreadViewer.visible = true;
201 photoViewerLoader.item.fadeClosed();
202 }
203 onClosed: {
204 overview.popPage();
205- source = "";
206 }
207
208 }
209
210=== modified file 'rc/qml/AlbumViewer/AlbumViewerAnimated.qml'
211--- rc/qml/AlbumViewer/AlbumViewerAnimated.qml 2014-05-20 15:19:35 +0000
212+++ rc/qml/AlbumViewer/AlbumViewerAnimated.qml 2014-06-10 19:01:57 +0000
213@@ -36,10 +36,7 @@
214 /// This item will be hidden when this view is opened. And shown again after closing this view
215 property Item previewItem: null
216 /// Is true if the opne or close animation is running
217- property bool animationRunning: loader_albumViewer.status === Loader.Ready ?
218- loader_albumViewer.item.albumViewerTransition.animationRunning ||
219- loader_albumViewer.item.albumViewer.animationRunning
220- : false
221+ property bool animationRunning: false
222 /// Indicates if this view is open
223 property bool isOpen: false
224
225@@ -49,8 +46,10 @@
226 if (album.currentPage < 0)
227 album.currentPage = 1
228 loader_albumViewer.item.albumViewer.album = album
229- if (root.origin)
230- loader_albumViewer.item.albumViewerTransition.transitionToAlbumViewer(root.album, root.origin);
231+ if (root.origin) {
232+ loader_albumViewer.item.albumViewer.visible = true
233+ overview.pushPage(loader_albumViewer.item.albumViewer);
234+ }
235 else
236 loader_albumViewer.item.albumViewer.visible = true
237 if (previewItem)
238@@ -62,7 +61,6 @@
239 Item {
240 id: viewerItem
241 property alias albumViewer: inner_albumViewer
242- property alias albumViewerTransition: inner_albumViewerTransition
243
244 Rectangle {
245 id: overviewGlass
246@@ -80,8 +78,11 @@
247
248 onCloseRequested: {
249 if (root.origin) {
250- inner_albumViewerTransition.transitionFromAlbumViewer(
251- album, root.origin, stayOpen, viewingPage);
252+ if (album)
253+ album.closed = !stayOpen || (viewingPage == 0);
254+ if (previewItem)
255+ previewItem.visible = true
256+ loader_albumViewer.unload()
257 }
258 inner_albumViewer.visible = false
259 overview.popPage();
260@@ -96,24 +97,6 @@
261 loader_albumViewer.unload();
262 }
263 }
264-
265- AlbumViewerTransition {
266- id: inner_albumViewerTransition
267-
268- anchors.fill: inner_albumViewer
269- backgroundGlass: overviewGlass
270- isPortrait: application.isPortrait
271-
272- onTransitionToAlbumViewerCompleted: {
273- inner_albumViewer.visible = true
274- overview.pushPage(inner_albumViewer);
275- }
276- onTransitionFromAlbumViewerCompleted: {
277- if (previewItem)
278- previewItem.visible = true
279- loader_albumViewer.unload()
280- }
281- }
282 }
283 }
284 Loader {
285
286=== modified file 'rc/qml/AlbumsOverview.qml'
287--- rc/qml/AlbumsOverview.qml 2014-05-20 12:15:41 +0000
288+++ rc/qml/AlbumsOverview.qml 2014-06-10 19:01:57 +0000
289@@ -32,16 +32,31 @@
290 StateSaver.properties: "albumCurrentlyInView"
291
292 Component.onCompleted: {
293+ /* FIXME: Does not working after PageStack
294 if (albumCurrentlyInView != -1) {
295 for (var i = 0; i < albumCollectionModel.count; i++) {
296 if (albumCollectionModel.getAt(i).id == albumCurrentlyInView) {
297+ if (albumCollectionModel.getAt(i).currentPage < 0)
298+ albumCollectionModel.getAt(i).currentPage = 1
299+
300 albumViewer.album = albumCollectionModel.getAt(i);
301 root.visible = false;
302- albumViewer.open();
303+
304+ if (albumViewer.origin) {
305+ albumViewer.visible = true
306+ overview.pushPage(albumViewer);
307+ }
308+ else
309+ albumViewer.visible = true
310+
311+ if (albumViewer.previewItem)
312+ albumViewer.previewItem.visible = false
313+
314 return;
315 }
316 }
317 }
318+ */
319 }
320
321 onActiveChanged: {
322@@ -144,12 +159,26 @@
323 }
324
325 onActivated: {
326+ if (object.currentPage < 0)
327+ object.currentPage = 1
328+
329 albumCurrentlyInView = object.id
330 albumViewer.album = object
331 albumViewer.origin = root.getRectOfAlbumPreview(object, albumViewer)
332 albumViewer.previewItem = activatingItem
333 root.visible = false;
334- albumViewer.open()
335+
336+ if (albumViewer.origin) {
337+ if (header.visible)
338+ header.visible = false;
339+ albumViewer.visible = true;
340+ overview.pushPage(albumViewer);
341+ }
342+ else
343+ albumViewer.visible = true
344+
345+ if (albumViewer.previewItem)
346+ albumViewer.previewItem.visible = false
347 }
348
349 Rectangle {
350
351=== modified file 'rc/qml/MainScreen.qml'
352--- rc/qml/MainScreen.qml 2014-05-19 12:33:10 +0000
353+++ rc/qml/MainScreen.qml 2014-06-10 19:01:57 +0000
354@@ -184,10 +184,11 @@
355 }
356 }
357
358- AlbumViewerAnimated {
359+ AlbumViewer {
360 id: albumViewer
361- objectName: "albumViewerAnimated"
362+ objectName: "albumViewer"
363 anchors.fill: parent
364+ visible: false
365 onIsOpenChanged: if (!isOpen) albumsCheckerboardLoader.item.albumCurrentlyInView = -1
366 }
367
368
369=== modified file 'rc/qml/MediaViewer/PopupPhotoViewer.qml'
370--- rc/qml/MediaViewer/PopupPhotoViewer.qml 2014-05-19 12:33:10 +0000
371+++ rc/qml/MediaViewer/PopupPhotoViewer.qml 2014-06-10 19:01:57 +0000
372@@ -26,15 +26,9 @@
373 id: popupPhotoViewer
374
375 anchors.fill: parent
376- /*!
377- */
378 property alias model: viewer.model
379
380- /*!
381- */
382 property alias photo: viewer.media
383- /*!
384- */
385 property alias index: viewer.index
386
387 // Optional: set this when launching from an album view
388@@ -43,8 +37,6 @@
389 // Read-only
390 property bool animationRunning: transition.animationRunning ||
391 fadeIn.running || fadeOut.running
392- /*!
393- */
394 property bool isPoppedUp: popupPhotoViewer.visible && viewer.visible && !animationRunning
395
396 // updating active will automatically set the tools of the toolbar when activating.
397@@ -63,71 +55,48 @@
398
399 title: i18n.tr("Gallery")
400
401- /*!
402- */
403 function setCurrentPhoto(photo) {
404 viewer.setCurrentPhoto(photo);
405 }
406
407- /*!
408- */
409 function setCurrentIndex(index) {
410 viewer.setCurrentIndex(index);
411 }
412
413- /*!
414- */
415 signal opening()
416- /*!
417- */
418 signal opened() // The photo viewer's opening animation is finished.
419- /*!
420- */
421 signal closeRequested() // The user pressed the back button. Call animateClosed() or close().
422- /*!
423- */
424 signal closed() // The photo viewer's closing animation is finished.
425- /*!
426- */
427 signal editRequested(variant photo) // The user wants to edit this photo.
428
429- /*!
430- */
431 function animateOpen(photo, thumbnailRect) {
432 opening();
433 viewer.openCompleted = false;
434 transition.transitionToPhotoViewer(photo, thumbnailRect);
435 }
436
437- /*!
438- */
439 function animateClosed(thumbnailRect) {
440 transition.transitionFromPhotoViewer(photo, thumbnailRect);
441 viewer.visible = false;
442 }
443
444- /*!
445- */
446 function fadeOpen(photo) {
447 opening();
448 viewer.setCurrentPhoto(photo);
449 fadeIn.restart();
450 }
451
452- /*!
453- */
454 function fadeClosed() {
455 fadeOut.restart();
456 }
457
458- /*!
459- */
460 function close() {
461 viewer.visible = false;
462 closed();
463 }
464
465 tools: viewer.tools
466+
467 MediaViewer {
468 id: viewer
469
470@@ -163,8 +132,8 @@
471 onTransitionToPhotoViewerCompleted: {
472 setCurrentPhoto(forMediaSource);
473 viewer.openCompleted = true;
474- opened();
475 overview.pushPage(popupPhotoViewer);
476+ opened();
477 viewer.playVideo();
478 }
479
480
481=== modified file 'tests/autopilot/gallery_app/emulators/album_view.py'
482--- tests/autopilot/gallery_app/emulators/album_view.py 2014-05-01 15:27:13 +0000
483+++ tests/autopilot/gallery_app/emulators/album_view.py 2014-06-10 19:01:57 +0000
484@@ -73,6 +73,11 @@
485 animated_viewer.isOpen.wait_for(False)
486 animated_viewer.animationRunning.wait_for(False)
487
488+ def ensure_album_view_fully_closed(self):
489+ """Ensure the album view is fully closed"""
490+ view = self.get_album_view()
491+ view.visible.wait_for(False)
492+
493 def ensure_media_selector_is_fully_closed(self):
494 """Ensure media selector is fully closed"""
495 loader = self.media_selector_loader()
496
497=== modified file 'tests/autopilot/gallery_app/tests/__init__.py'
498--- tests/autopilot/gallery_app/tests/__init__.py 2014-05-20 15:19:35 +0000
499+++ tests/autopilot/gallery_app/tests/__init__.py 2014-06-10 19:01:57 +0000
500@@ -271,10 +271,6 @@
501 self.open_album_at(-1)
502
503 def ensure_view_is_fully_open(self):
504- animated_view = self.album_view.get_animated_album_view()
505- self.assertThat(animated_view.isOpen, Eventually(Equals(True)))
506- self.assertThat(animated_view.animationRunning,
507- Eventually(Equals(False)))
508 view = self.album_view.get_album_view()
509 self.assertThat(view.visible, Eventually(Equals(True)))
510
511
512=== modified file 'tests/autopilot/gallery_app/tests/test_album_editor.py'
513--- tests/autopilot/gallery_app/tests/test_album_editor.py 2014-05-21 06:38:11 +0000
514+++ tests/autopilot/gallery_app/tests/test_album_editor.py 2014-06-10 19:01:57 +0000
515@@ -95,7 +95,7 @@
516 num_photos_start = self.album_view.number_of_photos()
517 self.assertThat(num_photos_start, Equals(1))
518 self.main_view.open_toolbar().click_button("backButton")
519- self.album_view.ensure_animated_fully_closed()
520+ self.album_view.ensure_album_view_fully_closed()
521
522 # now open to add a photo
523 self.main_view.close_toolbar()

Subscribers

People subscribed via source and target branches