Unity 8
 All Classes Functions
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.0
18 import Ubuntu.Components 0.1
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  LazyImage {
34  objectName: "screenshot"
35  anchors {
36  left: parent.left
37  right: parent.right
38  }
39  scaleTo: "width"
40  source: {
41  var screenshot = widgetData["screenshot"];
42  if (screenshot) return screenshot;
43 
44  var source = widgetData["source"];
45  if (source) {
46  if (source.toString().indexOf("file://") === 0) {
47  return "image://thumbnailer/" + source.toString().substr(7);
48  }
49  }
50 
51  return "";
52  }
53  initialHeight: width * 10 / 16
54 
55  Image {
56  objectName: "playButton"
57 
58  readonly property bool bigButton: parent.width > units.gu(40)
59 
60  anchors.centerIn: parent
61  width: bigButton ? units.gu(8) : units.gu(4.5)
62  height: width
63  source: "../graphics/play_button%1%2.png".arg(previewImageMouseArea.pressed ? "_active" : "").arg(bigButton ? "_big" : "")
64  visible: parent.state === "ready"
65  }
66 
67  MouseArea {
68  enabled: parent.state === "ready"
69  id: previewImageMouseArea
70  anchors.fill: parent
71  onClicked: Qt.openUrlExternally(widgetData["source"])
72  }
73  }
74 }