X-Git-Url: http://cgit.sxemacs.org/?p=harmattan%2Fcameraplus;a=blobdiff_plain;f=qml%2FPostCaptureItem.qml;h=f648a5f6d34dd69613def746e78a8319637c0259;hp=b2911fe67e1d103eca3eb286e50a7e48f8574f12;hb=c4d800d7ee31e65dadb24f3267660557fbb03c0f;hpb=9299fa292ded077de6e80532f3cfc79c523d7d8f diff --git a/qml/PostCaptureItem.qml b/qml/PostCaptureItem.qml index b2911fe..f648a5f 100644 --- a/qml/PostCaptureItem.qml +++ b/qml/PostCaptureItem.qml @@ -20,20 +20,27 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -@IMPORT_QT_QUICK@ +import QtQuick 2.0 import CameraPlus 1.0 Item { id: postCaptureItem - property bool isVideo: itemData.type.search("nmm#Video") > 0 + + property url itemUrl: url + property string itemTitle: title + property string itemMimeType: mimeType + property string itemCreated: created + property string itemFileName: fileName + + property bool isVideo: itemMimeType.search("video/") >= 0 property alias error: image.error - property variant itemData: item property bool playing: loader.source != "" signal clicked + clip: true function startPlayback() { loader.source = Qt.resolvedUrl("VideoPlayerPage.qml") - loader.item.source = itemData.url + loader.item.source = itemUrl if (!loader.item.play()) { showError(qsTr("Error playing video. Please try again.")) loader.source = "" @@ -56,22 +63,40 @@ Item { onFinished: loader.source = "" } -// TODO: rotation - QuillItem { + FullScreenThumbnail { id: image - width: parent.width - 10 - height: parent.height + source: itemUrl + mimeType: itemMimeType + rotation: calculateRotation(orientation.orientation) + width: isPortrait ? parent.height : parent.width - 10 + height: isPortrait ? parent.width - 10 : parent.height anchors.centerIn: parent - Component.onCompleted: initialize(itemData.url, itemData.mimetype) visible: loader.source == "" + property bool isPortrait: rotation == -90 - CameraLabel { - anchors.fill: parent - visible: image.error - text: qsTr("Failed to load preview") - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - font.pixelSize: 32 + Behavior on width { + PropertyAnimation { duration: 100 } + } + + Behavior on height { + PropertyAnimation { duration: 100 } + } + + Behavior on rotation { + PropertyAnimation { duration: 100 } + } + + function calculateRotation(orientation) { + switch (orientation) { + case CameraOrientation.InvertedLandscape: + case CameraOrientation.Landscape: + return 0 + case CameraOrientation.InvertedPortrait: + case CameraOrientation.Portrait: + return -90 + default: + return 0 + } } MouseArea { @@ -81,13 +106,27 @@ Item { onClicked: postCaptureItem.clicked() } - CameraToolIcon { - // TODO: this is overlapping with error. - id: playIcon + Column { anchors.centerIn: parent - iconSource: "image://theme/icon-s-music-video-play" - visible: isVideo - onClicked: startPlayback() + width: parent.width + + CameraLabel { + id: errorLabel + width: parent.width + visible: image.error + text: qsTr("Failed to load preview") + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + font.pixelSize: 32 + } + + CameraToolIcon { + id: playIcon + anchors.horizontalCenter: parent.horizontalCenter + iconSource: cameraTheme.videoPlayIconId + visible: isVideo + onClicked: startPlayback() + } } } }