Unity 8
PreviewVideoPlayback.qml
1 /*
2  * Copyright (C) 2014 Canonical, Ltd.
3  *
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.
7  *
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.
12  *
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/>.
15  */
16 
17 import QtQuick 2.4
18 import Ubuntu.Components 1.3
19 import Ubuntu.Thumbnailer 0.1
20 import "../../Components"
21 
22 /*! \brief Preview widget for video.
23 
24  This widget shows video contained in widgetData["source"],
25  with a placeholder screenshot specified by widgetData["screenshot"].
26  */
27 
28 PreviewWidget {
29  id: root
30  implicitWidth: units.gu(35)
31  implicitHeight: childrenRect.height
32 
33  widgetMargins: -units.gu(1)
34 
35  LazyImage {
36  objectName: "screenshot"
37  anchors {
38  left: parent.left
39  right: parent.right
40  }
41  scaleTo: "width"
42  source: {
43  var screenshot = widgetData["screenshot"];
44  if (screenshot) return screenshot;
45 
46  var source = widgetData["source"];
47  if (source) {
48  if (source.toString().indexOf("file://") === 0) {
49  return "image://thumbnailer/" + source.toString().substr(7);
50  }
51  }
52 
53  return "";
54  }
55  initialHeight: width * 10 / 16
56  useUbuntuShape: false
57 
58  Image {
59  objectName: "playButton"
60 
61  readonly property bool bigButton: parent.width > units.gu(40)
62 
63  anchors.centerIn: parent
64  width: bigButton ? units.gu(8) : units.gu(4.5)
65  height: width
66  source: "../graphics/play_button%1%2.png".arg(previewImageMouseArea.pressed ? "_active" : "").arg(bigButton ? "_big" : "")
67  visible: parent.state === "ready"
68  }
69 
70  MouseArea {
71  enabled: parent.state === "ready"
72  id: previewImageMouseArea
73  anchors.fill: parent
74  onClicked: Qt.openUrlExternally(widgetData["source"])
75  }
76 
77  PreviewMediaToolbar {
78  id: toolbar
79  anchors {
80  left: parent.left
81  right: parent.right
82  bottom: parent.bottom
83  }
84  shareData: widgetData["shareData"]
85  }
86  }
87 }