X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=qml%2FPostCaptureItem.qml;h=abe6fa924d7d2c8d7a8625ba5aba2be167e68360;hb=13a75630aac35cbdd5751fd583329a790c1a8dfd;hp=f9c4a856acdc7c1fc4239e4b0a465bbbb4438b0d;hpb=bb079e0dff5557e811af63194a86a5d6548b4cfd;p=harmattan%2Fcameraplus diff --git a/qml/PostCaptureItem.qml b/qml/PostCaptureItem.qml index f9c4a85..abe6fa9 100644 --- a/qml/PostCaptureItem.qml +++ b/qml/PostCaptureItem.qml @@ -20,17 +20,18 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -@IMPORT_QT_QUICK@ -import com.nokia.meego 1.1 +import QtQuick 2.0 import CameraPlus 1.0 Item { id: postCaptureItem + property bool isVideo: itemData.type.search("nmm#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") @@ -57,21 +58,40 @@ Item { onFinished: loader.source = "" } - QuillItem { + FullScreenThumbnail { id: image - width: parent.width - 10 - height: parent.height + source: itemData.url + mimeType: itemData.mimeType + 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 - Label { - 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 +101,27 @@ Item { onClicked: postCaptureItem.clicked() } - ToolIcon { - // 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 + iconId: cameraTheme.videoPlayIconId + visible: isVideo + onClicked: startPlayback() + } } } }