BugFix: Crash in video settings while in call

- Workaround : don't reload video devices if in call
- Show a warning message in settings panel
- Update english source language
This commit is contained in:
Julien Wadel 2020-06-16 10:51:38 +02:00
parent e4f9588c61
commit 3ee4a72d48
18 changed files with 89 additions and 1 deletions

View file

@ -1715,6 +1715,10 @@ Klik her: <a href="%1">%1</a>
<source>showVideoCodecsLabel</source>
<translation>Vis video codecs</translation>
</message>
<message>
<source>videoSettingsInCallWarning</source>
<translation>Videoopkald i gang: Nogle indstillinger er ikke tilgængelige.</translation>
</message>
</context>
<context>
<name>SettingsVideoPreview</name>

View file

@ -1715,6 +1715,10 @@ Klicken Sie hier: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>showVideoCodecsLabel</source>
<translation>Zeige Videocodecs</translation>
</message>
<message>
<source>videoSettingsInCallWarning</source>
<translation>Videoanruf wird ausgeführt: Einige Einstellungen sind nicht verfügbar.</translation>
</message>
</context>
<context>
<name>SettingsVideoPreview</name>

View file

@ -1717,6 +1717,10 @@ Click here: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>showVideoCodecsLabel</source>
<translation>Show video codecs</translation>
</message>
<message>
<source>videoSettingsInCallWarning</source>
<translation>Video call in progress: some settings are not available.</translation>
</message>
</context>
<context>
<name>SettingsVideoPreview</name>

View file

@ -1715,6 +1715,10 @@ Haga clic aquí: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<source>showVideoCodecsLabel</source>
<translation>Mostrar códecs de vídeo</translation>
</message>
<message>
<source>videoSettingsInCallWarning</source>
<translation>Videollamada en curso: algunos ajustes no están disponibles.</translation>
</message>
</context>
<context>
<name>SettingsVideoPreview</name>

View file

@ -1715,6 +1715,10 @@ Cliquez ici : &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>showVideoCodecsLabel</source>
<translation>Afficher les codecs vidéo</translation>
</message>
<message>
<source>videoSettingsInCallWarning</source>
<translation>Appel vidéo en cours: certains paramètres ne sont pas disponibles.</translation>
</message>
</context>
<context>
<name>SettingsVideoPreview</name>

View file

@ -1714,6 +1714,10 @@ Kattintson ide: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;</translation>
<source>showVideoCodecsLabel</source>
<translation>Videó kodekek megjelenítése</translation>
</message>
<message>
<source>videoSettingsInCallWarning</source>
<translation>Videohívás folyamatban: egyes beállítások nem állnak rendelkezésre.</translation>
</message>
</context>
<context>
<name>SettingsVideoPreview</name>

View file

@ -1715,6 +1715,10 @@ Clicca: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>showVideoCodecsLabel</source>
<translation>Mostra codec video</translation>
</message>
<message>
<source>videoSettingsInCallWarning</source>
<translation>Videochiamata in corso: alcune impostazioni non sono disponibili.</translation>
</message>
</context>
<context>
<name>SettingsVideoPreview</name>

View file

@ -1715,6 +1715,10 @@
<source>showVideoCodecsLabel</source>
<translation></translation>
</message>
<message>
<source>videoSettingsInCallWarning</source>
<translation>ビデオ通話中:一部の設定が使用できません</translation>
</message>
</context>
<context>
<name>SettingsVideoPreview</name>

View file

@ -1715,6 +1715,10 @@ Spustelėkite čia: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>showVideoCodecsLabel</source>
<translation>Rodyti vaizdo kodekus</translation>
</message>
<message>
<source>videoSettingsInCallWarning</source>
<translation>Vyksta vaizdo skambutis: kai kurie nustatymai negalimi.</translation>
</message>
</context>
<context>
<name>SettingsVideoPreview</name>

View file

@ -1714,6 +1714,10 @@ Clique aqui: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;</translation>
<source>showVideoCodecsLabel</source>
<translation>Mostrar codecs de vídeo</translation>
</message>
<message>
<source>videoSettingsInCallWarning</source>
<translation>Chamada de vídeo em andamento: algumas configurações não estão disponíveis.</translation>
</message>
</context>
<context>
<name>SettingsVideoPreview</name>

View file

@ -1715,6 +1715,10 @@
<source>showVideoCodecsLabel</source>
<translation>Показать Видео кодаки</translation>
</message>
<message>
<source>videoSettingsInCallWarning</source>
<translation>Видеозвонок выполняется: некоторые настройки недоступны.</translation>
</message>
</context>
<context>
<name>SettingsVideoPreview</name>

View file

@ -1715,6 +1715,10 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>showVideoCodecsLabel</source>
<translation>Visa videokodekar</translation>
</message>
<message>
<source>videoSettingsInCallWarning</source>
<translation>Videosamtal pågår: vissa inställningar är inte tillgängliga.</translation>
</message>
</context>
<context>
<name>SettingsVideoPreview</name>

View file

@ -1715,6 +1715,10 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>showVideoCodecsLabel</source>
<translation>Görüntü çözücüleri göster</translation>
</message>
<message>
<source>videoSettingsInCallWarning</source>
<translation>Görüntülü arama devam ediyor: bazı ayarlar mevcut değil.</translation>
</message>
</context>
<context>
<name>SettingsVideoPreview</name>

View file

@ -1715,6 +1715,10 @@
<source>showVideoCodecsLabel</source>
<translation>Показати Відео кодеки</translation>
</message>
<message>
<source>videoSettingsInCallWarning</source>
<translation>Відеодзвінок в процесі: деякі настройки недоступні.</translation>
</message>
</context>
<context>
<name>SettingsVideoPreview</name>

View file

@ -1715,6 +1715,10 @@
<source>showVideoCodecsLabel</source>
<translation></translation>
</message>
<message>
<source>videoSettingsInCallWarning</source>
<translation></translation>
</message>
</context>
<context>
<name>SettingsVideoPreview</name>

View file

@ -353,7 +353,8 @@ void SettingsModel::setShowAudioCodecs (bool status) {
//Force a call on the 'detect' method of all video filters, updating new or removed devices
void SettingsModel::accessVideoSettings() {
CoreManager::getInstance()->getCore()->reloadVideoDevices();
if(!getIsInCall())// TODO : This is a workaround to a crash when reloading video devices while in call. Spotted on Macos.
CoreManager::getInstance()->getCore()->reloadVideoDevices();
emit videoDevicesChanged(getVideoDevices());
}

View file

@ -1,4 +1,5 @@
import QtQuick 2.7
import QtQuick.Layouts 1.3
import Common 1.0
import Linphone 1.0
@ -22,6 +23,27 @@ TabContainer {
Form {
title: qsTr('videoCaptureTitle')
width: parent.width
//Warning if in call
FormLine {
visible: SettingsModel.isInCall
FormGroup {
RowLayout {
spacing: SettingsWindowStyle.video.warningMessage.iconSize
Icon {
icon: 'warning'
iconSize: SettingsWindowStyle.video.warningMessage.iconSize
anchors {
rightMargin: SettingsWindowStyle.video.warningMessage.iconSize
leftMargin: SettingsWindowStyle.video.warningMessage.iconSize
}
}
Text {
text: qsTr('videoSettingsInCallWarning')
}
}
}
}
FormLine {
FormGroup {

View file

@ -25,4 +25,9 @@ QtObject {
property int iconSize: 22
property int legendLineWidth: 280
}
property QtObject video: QtObject {
property QtObject warningMessage: QtObject {
property int iconSize: 20
}
}
}