1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-07-25 01:45:35 +02:00

misc: av settings

+ remove "Preview unavailable" and only set preview as invisible if no video device
+ fix preview not starting after branching device
+ resets eudiometer if no videodevice.listsize changes
+ fix preview visibility in recorderbox
+ fix recorderbox closing when changing from conversation to settings

GitLab: #608
GitLab: #610
Change-Id: Ie7069934abdf5005ed8360fad20c0de20bdc1a43
This commit is contained in:
agsantos 2021-12-02 10:33:33 -05:00
parent f238b9d8ee
commit 218aa35e1e
5 changed files with 45 additions and 16 deletions

View file

@ -89,6 +89,11 @@ Rectangle {
visible: false
}
onVisibleChanged: {
if (!visible) {
recordBox.visible = false
}
}
EmojiPicker {
id: emojiPicker

View file

@ -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,13 @@ Rectangle {
maskSource: rectBox
}
}
onVisibleChanged: {
if (visible) {
openRecorder(true)
} else
VideoDevices.stopDevice(previewWidget.deviceId)
}
}
Label {
@ -269,11 +274,14 @@ Rectangle {
width: root.width
visible: (isVideo && !previewAvailable)
visible: (isVideo && VideoDevices.listSize === 0)
text: qsTr("Preview unavailable")
font.pointSize: 10
text: JamiStrings.previewUnavailable
font.pointSize: JamiTheme.settingsFontSize
font.kerning: true
color: JamiTheme.primaryForegroundColor
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
Timer {

View file

@ -30,6 +30,7 @@ ColumnLayout {
id:root
property int itemWidth
property int videoDevicesListSize: VideoDevices.listSize
enum Setting {
AUDIOINPUT,
@ -38,6 +39,19 @@ ColumnLayout {
AUDIOMANAGER
}
onVisibleChanged: {
if (visible)
populateAudioSettings()
}
onVideoDevicesListSizeChanged: {
AvAdapter.stopAudioMeter()
var selectedAudioManager = inputComboBoxSetting.comboModel.data(
inputComboBoxSetting.comboModel.index(inputComboBoxSetting.modelIndex, 0), AudioDeviceModel.RawDeviceName)
AVModel.setInputDevice(selectedAudioManager)
AvAdapter.startAudioMeter()
}
function populateAudioSettings() {
inputComboBoxSetting.modelIndex = inputComboBoxSetting.comboModel.getCurrentIndex()
outputComboBoxSetting.modelIndex = outputComboBoxSetting.comboModel.getCurrentIndex()

View file

@ -32,10 +32,6 @@ Rectangle {
property int contentWidth: avSettingsColumnLayout.width
property int preferredHeight: avSettingsColumnLayout.implicitHeight
function populateAVSettings() {
audioSettings.populateAudioSettings()
}
color: JamiTheme.secondaryBackgroundColor
ColumnLayout {

View file

@ -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
}
}
@ -196,7 +194,7 @@ ColumnLayout {
onSwitchToggled: {
AvAdapter.setHardwareAcceleration(checked)
startPreviewing(true)
startPreviewing()
}
}
@ -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
@ -243,6 +248,7 @@ ColumnLayout {
text: JamiStrings.previewUnavailable
font.pointSize: JamiTheme.settingsFontSize
font.kerning: true
color: JamiTheme.primaryForegroundColor
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter