@@ -18,6 +18,7 @@ import QtQuick 2.4
18import QtMultimedia 5.0
18import QtMultimedia 5.0
19import Ubuntu.Components 1.3
19import Ubuntu.Components 1.3
20import Ubuntu.Thumbnailer 0.1
20import Ubuntu.Thumbnailer 0.1
21+import "PreviewSingleton"
21import "../../Components"
22import "../../Components"
22import "../../Components/MediaServices"
23import "../../Components/MediaServices"
@@ -36,6 +37,23 @@ PreviewWidget {
36 orientationLock: services.fullscreen
37 orientationLock: services.fullscreen
38 property alias rootItem: services.rootItem
39 property alias rootItem: services.rootItem
40+ readonly property string widgetExtraDataKey: services.source.toString()
43+ services.mediaPlayer.seek(services.initialPosition);
44+ services.initialPosition = -1;
47+ function storePlaybackState() {
48+ PreviewSingleton.widgetExtraData[widgetExtraDataKey] = services.mediaPlayer.position;
52+ function restorePlaybackState() {
53+ if (PreviewSingleton.widgetExtraData[widgetExtraDataKey] > 0) {
54+ services.initialPosition = PreviewSingleton.widgetExtraData[widgetExtraDataKey];
40 MediaServices {
58 MediaServices {
41 id: services
59 id: services
@@ -49,6 +67,30 @@ PreviewWidget {
50 onClose: fullscreen = false
68 onClose: fullscreen = false
70+ readonly property var mediaPlayer: footer.mediaPlayer
71+ readonly property url source: mediaPlayer.source
72+ readonly property int position: mediaPlayer.position
75+ root.restorePlaybackState();
79+ if (mediaPlayer.playbackState === MediaPlayer.StoppedState) return;
80+ root.storePlaybackState();
83+ property int initialPosition: -1
86+ target: services.mediaPlayer
87+ ignoreUnknownSignals: true
89+ // at the first playback of the file, do a seek()
90+ if (services.initialPosition > 0) root.seek();
53 id: sharingAction
95 id: sharingAction
54 iconName: "share"
96 iconName: "share"