diff --git a/src/mainview/components/ChatViewFooter.qml b/src/mainview/components/ChatViewFooter.qml index b0f58069d21f3b8f2b43fda570477b7a73225a0a..ea520b3b293d643f250ac2da117a337c1aac120e 100644 --- a/src/mainview/components/ChatViewFooter.qml +++ b/src/mainview/components/ChatViewFooter.qml @@ -84,7 +84,7 @@ Rectangle { } } - RecordBox{ + RecordBox { id: recordBox visible: false diff --git a/src/mainview/components/RecordBox.qml b/src/mainview/components/RecordBox.qml index 0d2b0e0fe18bbfdf3f4c673e441fef82c625eca2..ccfcc6feb7b0ff577ce0305428790ab5ea83ecca 100644 --- a/src/mainview/components/RecordBox.qml +++ b/src/mainview/components/RecordBox.qml @@ -41,7 +41,6 @@ Rectangle { property int duration: 0 property int state: RecordBox.States.INIT property bool isVideo: false - property bool previewAvailable: false property int preferredWidth: 320 property int preferredHeight: 240 property int btnSize: 40 @@ -61,7 +60,6 @@ Rectangle { if (isVideo) { previewWidget.deviceId = VideoDevices.getDefaultDevice() previewWidget.rendererId = VideoDevices.startDevice(previewWidget.deviceId) - previewAvailable = true } } @@ -243,7 +241,7 @@ Rectangle { anchors.fill: parent - visible: (isVideo && previewAvailable) + visible: (isVideo && VideoDevices.listSize !== 0) color: JamiTheme.blackColor radius: 5 @@ -262,6 +260,14 @@ Rectangle { maskSource: rectBox } } + + onVisibleChanged: { + if (visible) { + previewWidget.deviceId = VideoDevices.getDefaultDevice() + previewWidget.rendererId = VideoDevices.startDevice(previewWidget.deviceId) + } else + VideoDevices.stopDevice(previewWidget.deviceId) + } } Label { @@ -269,7 +275,13 @@ Rectangle { width: root.width - visible: (isVideo && !previewAvailable) + visible: (isVideo && VideoDevices.listSize === 0) + + onVisibleChanged: { + if (visible) { + closeRecorder() + } + } text: JamiStrings.previewUnavailable font.pointSize: JamiTheme.settingsFontSize diff --git a/src/settingsview/components/VideoSettings.qml b/src/settingsview/components/VideoSettings.qml index f15840bbdd2e3268d79c3009e298acd849e9dce7..a9c813af3ac6cfebb3e73a2506118319ca67f1ab 100644 --- a/src/settingsview/components/VideoSettings.qml +++ b/src/settingsview/components/VideoSettings.qml @@ -32,14 +32,12 @@ ColumnLayout { id: root property real aspectRatio: 0.75 - property bool previewAvailable: false property int itemWidth function startPreviewing(force = false) { if (root.visible) { previewWidget.deviceId = VideoDevices.getDefaultDevice() previewWidget.rendererId = VideoDevices.startDevice(previewWidget.deviceId, force) - previewAvailable = true } } @@ -230,11 +228,18 @@ ColumnLayout { maskSource: rectBox } } + + onVisibleChanged: { + if (visible) { + VideoDevices.stopDevice(previewWidget.deviceId) + startPreviewing(true) + } else + VideoDevices.stopDevice(previewWidget.deviceId) + } } Label { - // TODO: proper use of previewAvailable - visible: !previewAvailable + visible: VideoDevices.listSize === 0 Layout.fillWidth: true Layout.preferredHeight: JamiTheme.preferredFieldHeight