X-Git-Url: http://cgit.sxemacs.org/?p=harmattan%2Fcameraplus;a=blobdiff_plain;f=qml%2FVideoOverlay.qml;h=185d0791d8086e1992ab720b63710d050cd2d246;hp=3e46aaa968adddba9ed459d0d8c549140e9d98e4;hb=c344ab7dbf5500f06dbc201b8c461d09f7869078;hpb=8648b39e483ca7365ed0842c98046182264c88c9 diff --git a/qml/VideoOverlay.qml b/qml/VideoOverlay.qml index 3e46aaa..185d079 100644 --- a/qml/VideoOverlay.qml +++ b/qml/VideoOverlay.qml @@ -23,7 +23,6 @@ import QtQuick 2.0 import QtCamera 1.0 import CameraPlus 1.0 -import "data.js" as Data Item { id: overlay @@ -80,7 +79,7 @@ Item { anchors.right: parent.right anchors.rightMargin: 20 anchors.verticalCenter: parent.verticalCenter - iconId: overlay.recording ? cameraTheme.captureButtonRecordingIconId : cameraTheme.captureButtonVideoIconId + iconSource: overlay.recording ? cameraTheme.captureButtonRecordingIconId : cameraTheme.captureButtonVideoIconId width: 75 height: 75 opacity: 0.5 @@ -151,19 +150,25 @@ Item { id: resolutionIndicator property string videoResolution: settings.device == 1 ? settings.secondaryVideoResolution : settings.primaryVideoResolution property string videoRatio: settings.device == 1 ? settings.secondaryVideoAspectRatio : settings.primaryVideoAspectRatio - source: "image://theme/" + cameraTheme.videoIcon(videoRatio, videoResolution, settings.device) + source: cameraTheme.videoIcon(videoRatio, videoResolution, settings.device) } Indicator { id: wbIndicator - source: visible ? "image://theme/" + Data.wbIcon(settings.videoWhiteBalance) + "-screen" : "" - visible: settings.videoWhiteBalance != WhiteBalance.Auto + source: visible ? cameraTheme.whiteBalanceIcon(settings.videoWhiteBalance) : "" + visible: settings.videoWhiteBalance != WhiteBalance.Auto && !toolBar.expanded } Indicator { id: cfIndicator - source: "image://theme/" + Data.cfIcon(settings.videoColorFilter) + "-screen" - visible: settings.videoColorFilter != ColorTone.Normal + source: visible ? cameraTheme.colorFilterIcon(settings.videoColorFilter) : "" + visible: settings.videoColorFilter != ColorTone.Normal && !toolBar.expanded + } + + Indicator { + id: sceneIndicator + visible: settings.videoSceneMode != Scene.Auto && (!toolBar.expanded || overlay.recording) + source: visible ? cameraTheme.videoSceneModeIcon(settings.videoSceneMode) : "" } Indicator { @@ -210,7 +215,7 @@ Item { if (duration == 3600) { overlay.stopRecording() showError(qsTr("Maximum recording time reached.")) - } else if (!checkDiskSpace()) { + } else if (!fileSystem.hasFreeSpace(fileNaming.temporaryVideoPath)) { page.stopRecording() showError(qsTr("Not enough space to continue recording.")) } @@ -236,23 +241,34 @@ Item { metaData.setMetaData() - if (!mountProtector.lock()) { - showError(qsTr("Failed to lock images directory.")) + if (!mountProtector.lock(fileNaming.temporaryVideoPath)) { + showError(qsTr("Failed to lock temporary videos directory.")) overlay.recording = false return } + if (!mountProtector.lock(fileNaming.videoPath)) { + showError(qsTr("Failed to lock videos directory.")) + overlay.recording = false + mountProtector.unlockAll() + return + } + var file = fileNaming.videoFileName() var tmpFile = fileNaming.temporaryVideoFileName() if (!videoMode.startRecording(file, tmpFile)) { showError(qsTr("Failed to record video. Please restart the camera.")) - mountProtector.unlock() + mountProtector.unlockAll() overlay.recording = false return } trackerStore.storeVideo(file); + + if (toolBar.depth() > 1) { + toolBar.pop() + } } function startRecording() { @@ -260,7 +276,7 @@ Item { showError(qsTr("Camera cannot record videos in mass storage mode.")) } else if (!checkBattery()) { showError(qsTr("Not enough battery to record video.")) - } else if (!checkDiskSpace()) { + } else if (!fileSystem.hasFreeSpace(fileNaming.videoPath) || !fileSystem.hasFreeSpace(fileNaming.temporaryVideoPath)) { showError(qsTr("Not enough space to record video.")) } else { recordingDuration.duration = 0 @@ -271,7 +287,7 @@ Item { function stopRecording() { videoMode.stopRecording(true) - mountProtector.unlock() + mountProtector.unlockAll() overlay.recording = false }