@@ -0,0 +1,72 @@
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 "../../Components"
20+
21+/*! \brief Preview widget for video.
22+
23+ This widget shows video contained in widgetData["source"],
24+ with a placeholder screenshot specified by widgetData["screenshot"].
25+ */
26+
27+PreviewWidget {
28+ id: root
29+ implicitWidth: units.gu(35)
30+ implicitHeight: childrenRect.height
31+
32+ LazyImage {
33+ objectName: "screenshot"
34+ anchors {
35+ left: parent.left
36+ right: parent.right
37+ }
38+ scaleTo: "width"
39+ visible: state === "ready"
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+ }
65+
66+ MouseArea {
67+ id: previewImageMouseArea
68+ anchors.fill: parent
69+ onClicked: Qt.openUrlExternally(widgetData["source"])
70+ }
71+ }
72+}