--- /dev/null
+// -*- qml -*-
+
+/*!
+ * This file is part of CameraPlus.
+ *
+ * Copyright (C) 2012 Mohammed Sameer <msameer@foolab.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+import QtQuick 1.1
+import com.nokia.meego 1.1
+import CameraPlus 1.0
+
+QuillItem {
+ id: item
+ source: url
+ mimeType: mimetype
+
+ Component.onCompleted: console.log("Created " + url)
+
+ function stop() {
+ // No-op
+ }
+
+ MouseArea {
+ id: mouse
+ anchors.fill: parent
+ enabled: true
+ onClicked: toolBar.visible = !toolBar.visible
+ }
+}
import CameraPlus 1.0
Item {
- width: PathView.view.width
- height: PathView.view.height
+ id: item
+ property bool isImage: mimetype.toLowerCase().search("video") < 0
+ property bool error: false
+ property bool currentItem: PathView.isCurrentItem
+ onCurrentItemChanged: {
+ if (currentItem) {
+ page.currentItem = item
+ }
+ }
+
+ function stop() {
+ if (loader.item) {
+ loader.item.stop();
+ }
+ }
Label {
anchors.fill: parent
- visible: item.error && page.status == PageStatus.Active
+ visible: (loader.status == Loader.Error || item.error) && page.status == PageStatus.Active
text: qsTr("Failed to load preview");
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
font.pixelSize: 32
}
- QuillItem {
- id: item
- source: url
- mimeType: mimetype
- width: view.width - 10
- height: view.height
- anchors.centerIn: parent
- visible: page.status == PageStatus.Activating || page.status == PageStatus.Active
-
- MouseArea {
- id: mouse
- anchors.fill: parent
- enabled: true
- onClicked: toolBar.visible = !toolBar.visible
- }
+ Loader {
+ id: loader
+ anchors.fill: parent
+ source: isImage ? Qt.resolvedUrl("PostCaptureImage.qml") : Qt.resolvedUrl("PostCaptureVideo.qml")
+ }
+
+ Binding {
+ target: loader.item
+ value: page.status == PageStatus.Activating || page.status == PageStatus.Active
+ property: "visible"
+ }
+
+ Binding {
+ target: item
+ value: loader.item ? loader.item.error : false
+ property: "error"
}
}
CameraPage {
id: page
+ property Item currentItem: null
+ property Item previousItem: null
+
controlsVisible: false
policyMode: CameraResources.PostCapture
needsPipeline: true
+ onCurrentItemChanged: {
+ if (previousItem) {
+ previousItem.stop();
+ }
+
+ previousItem = currentItem
+ }
+
onStatusChanged: {
if (status == PageStatus.Active) {
cam.stop();
anchors.fill: parent
}
+ function stop() {
+ if (currentItem) {
+ currentItem.stop();
+ }
+ }
+
PathView {
id: view
anchors.fill: parent
}
}
- delegate: PostCaptureItem {}
+ delegate: PostCaptureItem {
+ width: view.width - 10
+ height: view.height
+ }
}
ToolBar {
anchors.bottom: parent.bottom
tools: ToolBarLayout {
id: layout
- ToolIcon { iconId: "icon-m-toolbar-back"; onClicked: { cam.start(); pageStack.pop(); } }
+ ToolIcon { iconId: "icon-m-toolbar-back"; onClicked: { page.stop(); pageStack.pop(); } }
}
}
--- /dev/null
+// -*- qml -*-
+
+/*!
+ * This file is part of CameraPlus.
+ *
+ * Copyright (C) 2012 Mohammed Sameer <msameer@foolab.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+import QtQuick 1.1
+import QtMultimediaKit 1.1
+
+Video {
+ id: video
+ source: url
+
+ Component.onCompleted: console.log("Created " + url)
+ onError: console.log("ERROR");
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ video.play()
+ console.log("DDDDDDDDDDDDDDDDDDDDD " + url)
+ }
+ }
+}
break;
case CameraResources::PostCapture:
- *ok = updateSet(QList<ResourcePolicy::ResourceType>()
- << ResourcePolicy::VideoPlaybackType
- << ResourcePolicy::ScaleButtonType,
+ *ok = updateSet(QList<ResourcePolicy::ResourceType>(),
QList<ResourcePolicy::ResourceType>()
- << ResourcePolicy::AudioPlaybackType);
+ << ResourcePolicy::ScaleButtonType);
break;
default: