Unverified Commit 142beec4 authored by Gus Grubba's avatar Gus Grubba Committed by GitHub

Merge pull request #7970 from olliw42/pr-canshootphotoidle

CameraManager: Remove two bugs, resolve issue #7689
parents ca2a9db5 0dcf712d
...@@ -42,13 +42,15 @@ Column { ...@@ -42,13 +42,15 @@ Column {
property real _labelFieldWidth: ScreenTools.defaultFontPixelWidth * 30 property real _labelFieldWidth: ScreenTools.defaultFontPixelWidth * 30
property real _editFieldWidth: ScreenTools.defaultFontPixelWidth * 30 property real _editFieldWidth: ScreenTools.defaultFontPixelWidth * 30
property bool _communicationLost: activeVehicle ? activeVehicle.connectionLost : false property bool _communicationLost: activeVehicle ? activeVehicle.connectionLost : false
property bool _streamingEnabled: false //TODO: determine what it should be, VideoPageWidget.qml does QGroundControl.settingsManager.videoSettings.streamConfigured
property bool _hasModes: _camera && _camera.hasModes property bool _hasModes: _camera && _camera.hasModes
property bool _videoRecording: _camera && _camera.videoStatus === QGCCameraControl.VIDEO_CAPTURE_STATUS_RUNNING property bool _videoRecording: _camera && _camera.videoStatus === QGCCameraControl.VIDEO_CAPTURE_STATUS_RUNNING
property bool _photoIdle: _camera && _camera.photoStatus === QGCCameraControl.PHOTO_CAPTURE_IDLE property bool _photoIdle: _camera && (_camera.photoStatus === QGCCameraControl.PHOTO_CAPTURE_IDLE || _camera.photoStatus >= QGCCameraControl.PHOTO_CAPTURE_LAST)
property bool _storageReady: _camera && _camera.storageStatus === QGCCameraControl.STORAGE_READY property bool _storageReady: _camera && _camera.storageStatus === QGCCameraControl.STORAGE_READY
property bool _batteryReady: _camera && _camera.batteryRemaining >= 0 property bool _batteryReady: _camera && _camera.batteryRemaining >= 0
property bool _storageIgnored: _camera && _camera.storageStatus === QGCCameraControl.STORAGE_NOT_SUPPORTED property bool _storageIgnored: _camera && _camera.storageStatus === QGCCameraControl.STORAGE_NOT_SUPPORTED
property bool _canShoot: !_cameraModeUndefined && !_videoRecording && _photoIdle && ((_storageReady && _camera.storageFree > 0) || _storageIgnored) property bool _canShoot: !_cameraModeUndefined && ((_storageReady && _camera.storageFree > 0) || _storageIgnored)
property bool _isShooting: (_cameraVideoMode && _videoRecording) || (_cameraPhotoMode && !_photoIdle)
function showSettings() { function showSettings() {
mainWindow.showComponentDialog(cameraSettings, _cameraVideoMode ? qsTr("Video Settings") : qsTr("Camera Settings"), 70, StandardButton.Ok) mainWindow.showComponentDialog(cameraSettings, _cameraVideoMode ? qsTr("Video Settings") : qsTr("Camera Settings"), 70, StandardButton.Ok)
...@@ -113,7 +115,7 @@ Column { ...@@ -113,7 +115,7 @@ Column {
color: _cameraVideoMode ? qgcPal.colorGreen : qgcPal.text color: _cameraVideoMode ? qgcPal.colorGreen : qgcPal.text
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
enabled: _cameraPhotoMode enabled: _cameraPhotoMode && !_isShooting
onClicked: { onClicked: {
_camera.setVideoMode() _camera.setVideoMode()
} }
...@@ -140,7 +142,7 @@ Column { ...@@ -140,7 +142,7 @@ Column {
color: _cameraPhotoMode ? qgcPal.colorGreen : qgcPal.text color: _cameraPhotoMode ? qgcPal.colorGreen : qgcPal.text
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
enabled: _cameraVideoMode enabled: _cameraVideoMode && !_isShooting
onClicked: { onClicked: {
_camera.setPhotoMode() _camera.setPhotoMode()
} }
...@@ -161,9 +163,9 @@ Column { ...@@ -161,9 +163,9 @@ Column {
border.width: 3 border.width: 3
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
Rectangle { Rectangle {
width: parent.width * (_videoRecording || (_cameraPhotoMode && !_photoIdle && _cameraElapsedMode) ? 0.5 : 0.75) width: parent.width * (_isShooting ? 0.5 : 0.75)
height: width height: width
radius: _videoRecording || (_cameraPhotoMode && !_photoIdle && _cameraElapsedMode) ? 0 : width * 0.5 radius: _isShooting ? 0 : width * 0.5
color: _canShoot ? qgcPal.colorRed : qgcPal.colorGrey color: _canShoot ? qgcPal.colorRed : qgcPal.colorGrey
anchors.centerIn: parent anchors.centerIn: parent
} }
...@@ -183,6 +185,7 @@ Column { ...@@ -183,6 +185,7 @@ Column {
} }
} }
} }
//-- Timer/Counter
Item { width: 1; height: ScreenTools.defaultFontPixelHeight * 0.75; visible: _camera; } Item { width: 1; height: ScreenTools.defaultFontPixelHeight * 0.75; visible: _camera; }
QGCLabel { QGCLabel {
text: (_cameraVideoMode && _camera.videoStatus === QGCCameraControl.VIDEO_CAPTURE_STATUS_RUNNING) ? _camera.recordTimeStr : "00:00:00" text: (_cameraVideoMode && _camera.videoStatus === QGCCameraControl.VIDEO_CAPTURE_STATUS_RUNNING) ? _camera.recordTimeStr : "00:00:00"
...@@ -196,6 +199,7 @@ Column { ...@@ -196,6 +199,7 @@ Column {
visible: _cameraPhotoMode visible: _cameraPhotoMode
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
} }
//-- Settings
Item { width: 1; height: ScreenTools.defaultFontPixelHeight; visible: _camera; } Item { width: 1; height: ScreenTools.defaultFontPixelHeight; visible: _camera; }
Component { Component {
id: cameraSettings id: cameraSettings
...@@ -234,7 +238,7 @@ Column { ...@@ -234,7 +238,7 @@ Column {
//-- Stream Selector //-- Stream Selector
Row { Row {
spacing: ScreenTools.defaultFontPixelWidth spacing: ScreenTools.defaultFontPixelWidth
visible: _isCamera && _camera.streamLabels.length > 1 visible: _camera && _camera.streamLabels.length > 1
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
QGCLabel { QGCLabel {
text: qsTr("Stream Selector:") text: qsTr("Stream Selector:")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment