Merge branch 'fix/6.1' into 'release/6.1'

Fixes

See merge request BC/public/linphone-desktop!1654
This commit is contained in:
Gaëlle Braud 2026-01-22 13:42:16 +00:00
commit 756cdcc436
10 changed files with 248 additions and 130 deletions

View file

@ -434,6 +434,8 @@ void App::setSelf(QSharedPointer<App>(me)) {
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
if (CoreModel::getInstance()->mConfigStatus == linphone::ConfiguringState::Successful) {
bool accountConnected = account && account->getState() == linphone::RegistrationState::Ok;
// update settings if case config contains changes
if (mSettings) mSettings->reloadSettings();
mCoreModelConnection->invokeToCore([this, accountConnected]() {
mustBeInMainThread(log().arg(Q_FUNC_INFO));
// There is an account added by a remote provisioning, force switching to main page
@ -443,6 +445,9 @@ void App::setSelf(QSharedPointer<App>(me)) {
Q_ARG(QVariant, accountConnected));
}
mPossiblyLookForAddedAccount = false;
// setLocale(mSettings->getConfigLocale());
// setAutoStart(mSettings->getAutoStart());
// setQuitOnLastWindowClosed(mSettings->getExitOnClose());
});
}
});
@ -640,7 +645,7 @@ void App::initCore() {
lDebug() << log().arg("Creating SettingsModel");
SettingsModel::create();
lDebug() << log().arg("Creating SettingsCore");
if (!settings) settings = SettingsCore::create();
settings = SettingsCore::create();
lDebug() << log().arg("Checking downloaded codecs updates");
Utils::checkDownloadedCodecsUpdates();
lDebug() << log().arg("Setting Video Codec Priority Policy");
@ -722,30 +727,30 @@ void App::initCore() {
}
});
if (!mSettings) {
mSettings = settings;
setLocale(settings->getConfigLocale());
setAutoStart(settings->getAutoStart());
setQuitOnLastWindowClosed(settings->getExitOnClose());
mEngine->setObjectOwnership(mSettings.get(), QQmlEngine::CppOwnership);
// if (!mSettings) {
mSettings = settings;
setLocale(settings->getConfigLocale());
setAutoStart(settings->getAutoStart());
setQuitOnLastWindowClosed(settings->getExitOnClose());
mEngine->setObjectOwnership(mSettings.get(), QQmlEngine::CppOwnership);
connect(mSettings.get(), &SettingsCore::exitOnCloseChanged, this, &App::onExitOnCloseChanged,
Qt::UniqueConnection);
QObject::connect(mSettings.get(), &SettingsCore::autoStartChanged, [this]() {
mustBeInMainThread(log().arg(Q_FUNC_INFO));
setAutoStart(mSettings->getAutoStart());
});
QObject::connect(mSettings.get(), &SettingsCore::configLocaleChanged, [this]() {
mustBeInMainThread(log().arg(Q_FUNC_INFO));
if (mSettings) setLocale(mSettings->getConfigLocale());
});
connect(mSettings.get(), &SettingsCore::exitOnCloseChanged, this, &App::onExitOnCloseChanged,
Qt::UniqueConnection);
} else {
setLocale(settings->getConfigLocale());
setAutoStart(settings->getAutoStart());
setQuitOnLastWindowClosed(settings->getExitOnClose());
}
connect(mSettings.get(), &SettingsCore::exitOnCloseChanged, this, &App::onExitOnCloseChanged,
Qt::UniqueConnection);
QObject::connect(mSettings.get(), &SettingsCore::autoStartChanged, [this]() {
mustBeInMainThread(log().arg(Q_FUNC_INFO));
setAutoStart(mSettings->getAutoStart());
});
QObject::connect(mSettings.get(), &SettingsCore::configLocaleChanged, [this]() {
mustBeInMainThread(log().arg(Q_FUNC_INFO));
if (mSettings) setLocale(mSettings->getConfigLocale());
});
connect(mSettings.get(), &SettingsCore::exitOnCloseChanged, this, &App::onExitOnCloseChanged,
Qt::UniqueConnection);
// } else {
// setLocale(settings->getConfigLocale());
// setAutoStart(settings->getAutoStart());
// setQuitOnLastWindowClosed(settings->getExitOnClose());
// }
const QUrl url("qrc:/qt/qml/Linphone/view/Page/Window/Main/MainWindow.qml");
QObject::connect(
mEngine, &QQmlApplicationEngine::objectCreated, this,

View file

@ -210,6 +210,7 @@ void ChatCore::setSelf(QSharedPointer<ChatCore> me) {
&ChatModel::newEvent, [this](const std::shared_ptr<linphone::ChatRoom> &chatRoom,
const std::shared_ptr<const linphone::EventLog> &eventLog) {
if (mChatModel->getMonitor() != chatRoom) return;
if (!eventLog) return;
lDebug() << "EVENT LOG RECEIVED IN CHATROOM" << mChatModel->getTitle();
auto event = EventLogCore::create(eventLog, chatRoom);
if (event->isHandled()) {

View file

@ -177,6 +177,10 @@ void ChatList::setSelf(QSharedPointer<ChatList> me) {
[this, addChatToList](const std::shared_ptr<linphone::Core> &core,
const std::shared_ptr<linphone::ChatRoom> &chatRoom, linphone::ChatRoom::State state) {
if (state == linphone::ChatRoom::State::Created) {
if (chatRoom->getConferenceInfo()) {
qWarning() << log().arg("Chatroom created during a conference, return");
return;
}
auto chatAccount = chatRoom->getAccount();
auto defaultAccount = core->getDefaultAccount();
if (!chatAccount || !defaultAccount) return;

View file

@ -126,7 +126,6 @@ SettingsCore::SettingsCore(QObject *parent) : QObject(parent) {
INIT_CORE_MEMBER(HideAccountSettings, settingsModel)
INIT_CORE_MEMBER(DisableCallRecordings, settingsModel)
INIT_CORE_MEMBER(AssistantHideCreateAccount, settingsModel)
INIT_CORE_MEMBER(AssistantHideCreateAccount, settingsModel)
INIT_CORE_MEMBER(AssistantDisableQrCode, settingsModel)
INIT_CORE_MEMBER(AssistantHideThirdPartyAccount, settingsModel)
@ -239,6 +238,110 @@ SettingsCore::SettingsCore(const SettingsCore &settingsCore) {
SettingsCore::~SettingsCore() {
}
void SettingsCore::reloadSettings() {
mustBeInLinphoneThread(getClassName());
auto settingsModel = SettingsModel::getInstance();
assert(settingsModel);
// Security
setVfsEnabled(settingsModel->getVfsEnabled());
// Call
setVideoEnabled(settingsModel->getVideoEnabled());
setEchoCancellationEnabled(settingsModel->getEchoCancellationEnabled());
setAutoDownloadReceivedFiles(settingsModel->getAutoDownloadReceivedFiles());
setAutomaticallyRecordCallsEnabled(settingsModel->getAutomaticallyRecordCallsEnabled());
setRingtone(settingsModel->getRingtone());
// Network
setIpv6Enabled(settingsModel->getIpv6Enabled());
// Advanced
setAutoStart(settingsModel->getAutoStart());
setHideFps(settingsModel->getHideFps());
// Audio
setCaptureDevices(settingsModel->getCaptureDevices());
setPlaybackDevices(settingsModel->getPlaybackDevices());
setRingerDevices(settingsModel->getRingerDevices());
setCaptureDevice(settingsModel->getCaptureDevice());
setPlaybackDevice(settingsModel->getPlaybackDevice());
setRingerDevice(settingsModel->getRingerDevice());
setConferenceLayout(
LinphoneEnums::toVariant(LinphoneEnums::fromLinphone(settingsModel->getDefaultConferenceLayout())));
setMediaEncryption(
LinphoneEnums::toVariant(LinphoneEnums::fromLinphone(settingsModel->getDefaultMediaEncryption())));
setMediaEncryptionMandatory(settingsModel->getMediaEncryptionMandatory());
setCreateEndToEndEncryptedMeetingsAndGroupCalls(settingsModel->getCreateEndToEndEncryptedMeetingsAndGroupCalls());
setCaptureGain(settingsModel->getCaptureGain());
setPlaybackGain(settingsModel->getPlaybackGain());
// Video
setVideoDevice(settingsModel->getVideoDevice());
setVideoDevices(settingsModel->getVideoDevices());
// Logs
setLogsEnabled(settingsModel->getLogsEnabled());
setFullLogsEnabled(settingsModel->getFullLogsEnabled());
setCrashReporterEnabled(settingsModel->getCrashReporterEnabled());
setLogsFolder(settingsModel->getLogsFolder());
mLogsEmail = settingsModel->getLogsEmail();
// DND
setDndEnabled(settingsModel->dndEnabled());
mDefaultDomain = settingsModel->getDefaultDomain();
auto currentAccount = CoreModel::getInstance()->getCore()->getDefaultAccount();
if (currentAccount) {
auto accountDomain = Utils::coreStringToAppString(currentAccount->getParams()->getDomain());
setShowAccountDevices(accountDomain == mDefaultDomain);
}
// Chat
mEmojiFont = settingsModel->getEmojiFont();
mTextMessageFont = settingsModel->getTextMessageFont();
// Check for update
mIsCheckForUpdateAvailable = settingsModel->isCheckForUpdateAvailable();
setDisableChatFeature(settingsModel->getDisableChatFeature());
setDisableMeetingsFeature(settingsModel->getDisableMeetingsFeature());
setDisableBroadcastFeature(settingsModel->getDisableBroadcastFeature());
setHideSettings(settingsModel->getHideSettings());
setHideAccountSettings(settingsModel->getHideAccountSettings());
setDisableCallRecordings(settingsModel->getDisableCallRecordings());
setAssistantHideCreateAccount(settingsModel->getAssistantHideCreateAccount());
setAssistantDisableQrCode(settingsModel->getAssistantDisableQrCode());
setAssistantHideThirdPartyAccount(settingsModel->getAssistantHideThirdPartyAccount());
setHideSipAddresses(settingsModel->getHideSipAddresses());
setDarkModeAllowed(settingsModel->getDarkModeAllowed());
setMaxAccount(settingsModel->getMaxAccount());
setAssistantGoDirectlyToThirdPartySipAccountLogin(
settingsModel->getAssistantGoDirectlyToThirdPartySipAccountLogin());
setAssistantGoDirectlyToThirdPartySipAccountLogin(
settingsModel->getAssistantGoDirectlyToThirdPartySipAccountLogin());
setAssistantThirdPartySipAccountDomain(settingsModel->getAssistantThirdPartySipAccountDomain());
setAssistantThirdPartySipAccountTransport(settingsModel->getAssistantThirdPartySipAccountTransport());
setAutoStart(settingsModel->getAutoStart());
setExitOnClose(settingsModel->getExitOnClose());
setSyncLdapContacts(settingsModel->getSyncLdapContacts());
setConfigLocale(settingsModel->getConfigLocale());
setDownloadFolder(settingsModel->getDownloadFolder());
setCallToneIndicationsEnabled(settingsModel->getCallToneIndicationsEnabled());
setCommandLine(settingsModel->getCommandLine());
setDisableCommandLine(settingsModel->getDisableCommandLine());
setCallForwardToAddress(settingsModel->getCallForwardToAddress());
setThemeMainColor(settingsModel->getThemeMainColor());
setThemeAboutPictureUrl(settingsModel->getThemeAboutPictureUrl());
}
void SettingsCore::setSelf(QSharedPointer<SettingsCore> me) {
mustBeInLinphoneThread(getClassName());
mSettingsModelConnection = SafeConnection<SettingsCore, SettingsModel>::create(me, SettingsModel::getInstance());

View file

@ -91,7 +91,8 @@ public:
Q_PROPERTY(bool logsEnabled READ getLogsEnabled WRITE setLogsEnabled NOTIFY logsEnabledChanged)
Q_PROPERTY(bool fullLogsEnabled READ getFullLogsEnabled WRITE setFullLogsEnabled NOTIFY fullLogsEnabledChanged)
Q_PROPERTY(bool crashReporterEnabled READ getCrashReporterEnabled WRITE setCrashReporterEnabled NOTIFY crashReporterEnabledChanged)
Q_PROPERTY(bool crashReporterEnabled READ getCrashReporterEnabled WRITE setCrashReporterEnabled NOTIFY
crashReporterEnabledChanged)
Q_PROPERTY(QString logsEmail READ getLogsEmail)
Q_PROPERTY(QString logsFolder READ getLogsFolder)
Q_PROPERTY(QString ringtoneName READ getRingtoneFileName NOTIFY ringtoneChanged)
@ -108,6 +109,8 @@ public:
SettingsCore(const SettingsCore &settingsCore);
virtual ~SettingsCore();
void reloadSettings();
void setSelf(QSharedPointer<SettingsCore> me);
void reset(const SettingsCore &settingsCore);

View file

@ -681,134 +681,134 @@
</message>
<message>
<location filename="../../core/App.cpp" line="425"/>
<location filename="../../core/App.cpp" line="498"/>
<location filename="../../core/App.cpp" line="785"/>
<location filename="../../core/App.cpp" line="503"/>
<location filename="../../core/App.cpp" line="790"/>
<source>info_popup_error_title</source>
<extracomment>Error</extracomment>
<translation>Fehler</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="426"/>
<location filename="../../core/App.cpp" line="787"/>
<location filename="../../core/App.cpp" line="792"/>
<source>info_popup_configuration_failed_message</source>
<extracomment>Remote provisioning failed : %1</extracomment>
<translation>Remote-Provisionierung fehlgeschlagen: %1</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="501"/>
<location filename="../../core/App.cpp" line="506"/>
<source>info_popup_error_checking_update</source>
<extracomment>An error occured while trying to check update. Please try again later or contact support team.</extracomment>
<translation>Fehler bei der Update-Prüfung. Bitte später erneut versuchen oder Support-Team kontaktieren.</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="508"/>
<location filename="../../core/App.cpp" line="513"/>
<source>info_popup_new_version_download_label</source>
<translation>Herunterladen!</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="511"/>
<location filename="../../core/App.cpp" line="516"/>
<source>info_popup_new_version_available_title</source>
<extracomment>New version available !</extracomment>
<translation>Neue Version verfügbar!</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="513"/>
<location filename="../../core/App.cpp" line="518"/>
<source>info_popup_new_version_available_message</source>
<extracomment>A new version of Linphone (%1) is available. %2</extracomment>
<translation>Eine neue Version von Linphone (%1) ist unter %1 verfügbar</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="519"/>
<location filename="../../core/App.cpp" line="524"/>
<source>info_popup_version_up_to_date_title</source>
<translation>Auf dem neuesten Stand</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="521"/>
<location filename="../../core/App.cpp" line="526"/>
<source>info_popup_version_up_to_date_message</source>
<extracomment>Your version is up to date</extracomment>
<translation>Ihre Version ist auf dem neuesten Stand</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="781"/>
<location filename="../../core/App.cpp" line="786"/>
<source>configuration_error_detail</source>
<extracomment>not reachable</extracomment>
<translation>nicht erreichbar</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1072"/>
<location filename="../../core/App.cpp" line="1077"/>
<source>application_description</source>
<extracomment>&quot;A free and open source SIP video-phone.&quot;</extracomment>
<translation>Ein kostenloses Open-Source SIP Video-Telefon.</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1074"/>
<location filename="../../core/App.cpp" line="1079"/>
<source>command_line_arg_order</source>
<extracomment>&quot;Send an order to the application towards a command line&quot;</extracomment>
<translation>Kommandozeilen-Befehl an die Anwendung schicken</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1078"/>
<location filename="../../core/App.cpp" line="1083"/>
<source>command_line_option_show_help</source>
<translation>Zeige Hilfe</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1083"/>
<location filename="../../core/App.cpp" line="1088"/>
<source>command_line_option_show_app_version</source>
<translation>App-Version anzeigen</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1091"/>
<location filename="../../core/App.cpp" line="1096"/>
<source>command_line_option_config_to_fetch</source>
<extracomment>&quot;Specify the linphone configuration file to be fetched. It will be merged with the current configuration.&quot;</extracomment>
<translation>Abzurufende Linphone-Konfigurationsdatei angeben. Sie wird mit der aktuellen Konfiguration zusammengeführt.</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1093"/>
<location filename="../../core/App.cpp" line="1098"/>
<source>command_line_option_config_to_fetch_arg</source>
<extracomment>&quot;URL, path or file&quot;</extracomment>
<translation>URL, Pfad oder Datei</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1098"/>
<location filename="../../core/App.cpp" line="1103"/>
<source>command_line_option_minimized</source>
<translation>Minimieren</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1101"/>
<location filename="../../core/App.cpp" line="1106"/>
<source>command_line_option_log_to_stdout</source>
<translation>Debug-Informationen auf der Standardausgabe ausgeben</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1104"/>
<location filename="../../core/App.cpp" line="1109"/>
<source>command_line_option_print_app_logs_only</source>
<extracomment>&quot;Print only logs from the application&quot;</extracomment>
<translation>Nur Anwendungs-Logs ausgeben</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1560"/>
<location filename="../../core/App.cpp" line="1565"/>
<source>hide_action</source>
<extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment>
<translation>Ausblenden</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1560"/>
<location filename="../../core/App.cpp" line="1565"/>
<source>show_action</source>
<translation>Zeigen</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1575"/>
<location filename="../../core/App.cpp" line="1580"/>
<source>quit_action</source>
<extracomment>&quot;Quitter&quot;</extracomment>
<translation>Beenden</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1593"/>
<location filename="../../core/App.cpp" line="1598"/>
<source>check_for_update</source>
<extracomment>Check for update</extracomment>
<translation>Auf Updates prüfen</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1716"/>
<location filename="../../core/App.cpp" line="1721"/>
<source>mark_all_read_action</source>
<translation>Alle als gelesen markieren</translation>
</message>
@ -6050,49 +6050,49 @@ Um sie in einem kommerziellen Projekt zu aktivieren, kontaktieren Sie uns bitte.
<context>
<name>ToolModel</name>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="329"/>
<location filename="../../model/tool/ToolModel.cpp" line="331"/>
<source>call_error_uninterpretable_sip_address</source>
<extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment>
<translation>Die Anrufadresse ist keine interpretierbare SIP-Adresse: %1</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="404"/>
<location filename="../../model/tool/ToolModel.cpp" line="406"/>
<source>group_call_error_no_account</source>
<translation>Kein Standardkonto gefunden, Gruppengespräch kann nicht erstellt werden</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="434"/>
<location filename="../../model/tool/ToolModel.cpp" line="436"/>
<source>group_call_error_participants_invite</source>
<translation>Teilnehmer konnten nicht zum Gruppengespräch eingeladen werden</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="438"/>
<location filename="../../model/tool/ToolModel.cpp" line="440"/>
<source>group_call_error_creation</source>
<translation>Gruppengespräch konnte nicht erstellt werden</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="538"/>
<location filename="../../model/tool/ToolModel.cpp" line="540"/>
<source>voice_recording_duration</source>
<extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment>
<translation>Sprachnachricht (%1)</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="546"/>
<location filename="../../model/tool/ToolModel.cpp" line="548"/>
<source>conference_invitation</source>
<translation>Meeting-Einladung</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="548"/>
<location filename="../../model/tool/ToolModel.cpp" line="550"/>
<source>conference_invitation_updated</source>
<translation>Meeting-Änderung</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="550"/>
<location filename="../../model/tool/ToolModel.cpp" line="552"/>
<source>conference_invitation_cancelled</source>
<translation>Meeting-Absage</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="612"/>
<location filename="../../model/tool/ToolModel.cpp" line="614"/>
<source>unknown_audio_device_name</source>
<translation>Unbekannter Gerätename</translation>
</message>

View file

@ -662,134 +662,134 @@
</message>
<message>
<location filename="../../core/App.cpp" line="425"/>
<location filename="../../core/App.cpp" line="498"/>
<location filename="../../core/App.cpp" line="785"/>
<location filename="../../core/App.cpp" line="503"/>
<location filename="../../core/App.cpp" line="790"/>
<source>info_popup_error_title</source>
<extracomment>Error</extracomment>
<translation>Error</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="426"/>
<location filename="../../core/App.cpp" line="787"/>
<location filename="../../core/App.cpp" line="792"/>
<source>info_popup_configuration_failed_message</source>
<extracomment>Remote provisioning failed : %1</extracomment>
<translation>Remote provisioning failed : %1</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="501"/>
<location filename="../../core/App.cpp" line="506"/>
<source>info_popup_error_checking_update</source>
<extracomment>An error occured while trying to check update. Please try again later or contact support team.</extracomment>
<translation>An error occured while trying to check update. Please try again later or contact support team.</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="508"/>
<location filename="../../core/App.cpp" line="513"/>
<source>info_popup_new_version_download_label</source>
<translation>Download it !</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="511"/>
<location filename="../../core/App.cpp" line="516"/>
<source>info_popup_new_version_available_title</source>
<extracomment>New version available !</extracomment>
<translation>New version available !</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="513"/>
<location filename="../../core/App.cpp" line="518"/>
<source>info_popup_new_version_available_message</source>
<extracomment>A new version of Linphone (%1) is available. %2</extracomment>
<translation>A new version of Linphone (%1) is available at %1</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="519"/>
<location filename="../../core/App.cpp" line="524"/>
<source>info_popup_version_up_to_date_title</source>
<translation>Up to date</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="521"/>
<location filename="../../core/App.cpp" line="526"/>
<source>info_popup_version_up_to_date_message</source>
<extracomment>Your version is up to date</extracomment>
<translation>Up to date Your version is up to date</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="781"/>
<location filename="../../core/App.cpp" line="786"/>
<source>configuration_error_detail</source>
<extracomment>not reachable</extracomment>
<translation>not reachable</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1072"/>
<location filename="../../core/App.cpp" line="1077"/>
<source>application_description</source>
<extracomment>&quot;A free and open source SIP video-phone.&quot;</extracomment>
<translation>A free and open source SIP video-phone.</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1074"/>
<location filename="../../core/App.cpp" line="1079"/>
<source>command_line_arg_order</source>
<extracomment>&quot;Send an order to the application towards a command line&quot;</extracomment>
<translation>Send an order to the application towards a command line</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1078"/>
<location filename="../../core/App.cpp" line="1083"/>
<source>command_line_option_show_help</source>
<translation>Show this help</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1083"/>
<location filename="../../core/App.cpp" line="1088"/>
<source>command_line_option_show_app_version</source>
<translation>Show app version</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1091"/>
<location filename="../../core/App.cpp" line="1096"/>
<source>command_line_option_config_to_fetch</source>
<extracomment>&quot;Specify the linphone configuration file to be fetched. It will be merged with the current configuration.&quot;</extracomment>
<translation>Specify the linphone configuration file to be fetched. It will be merged with the current configuration.</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1093"/>
<location filename="../../core/App.cpp" line="1098"/>
<source>command_line_option_config_to_fetch_arg</source>
<extracomment>&quot;URL, path or file&quot;</extracomment>
<translation>URL, path or file</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1098"/>
<location filename="../../core/App.cpp" line="1103"/>
<source>command_line_option_minimized</source>
<translation>Minimize</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1101"/>
<location filename="../../core/App.cpp" line="1106"/>
<source>command_line_option_log_to_stdout</source>
<translation>Log to stdout some debug information while running</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1104"/>
<location filename="../../core/App.cpp" line="1109"/>
<source>command_line_option_print_app_logs_only</source>
<extracomment>&quot;Print only logs from the application&quot;</extracomment>
<translation>Print only logs from the application</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1560"/>
<location filename="../../core/App.cpp" line="1565"/>
<source>hide_action</source>
<extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment>
<translation>Hide</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1560"/>
<location filename="../../core/App.cpp" line="1565"/>
<source>show_action</source>
<translation>Show</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1575"/>
<location filename="../../core/App.cpp" line="1580"/>
<source>quit_action</source>
<extracomment>&quot;Quitter&quot;</extracomment>
<translation>Quit</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1593"/>
<location filename="../../core/App.cpp" line="1598"/>
<source>check_for_update</source>
<extracomment>Check for update</extracomment>
<translation>Check for update</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1716"/>
<location filename="../../core/App.cpp" line="1721"/>
<source>mark_all_read_action</source>
<translation>Marquer tout comme lu</translation>
</message>
@ -5915,49 +5915,49 @@ To enable them in a commercial project, please contact us.</translation>
<context>
<name>ToolModel</name>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="329"/>
<location filename="../../model/tool/ToolModel.cpp" line="331"/>
<source>call_error_uninterpretable_sip_address</source>
<extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment>
<translation>The calling address is not an interpretable SIP address : %1</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="404"/>
<location filename="../../model/tool/ToolModel.cpp" line="406"/>
<source>group_call_error_no_account</source>
<translation>No default account found, can&apos;t create group call</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="434"/>
<location filename="../../model/tool/ToolModel.cpp" line="436"/>
<source>group_call_error_participants_invite</source>
<translation>Couldn&apos;t invite participants to group call</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="438"/>
<location filename="../../model/tool/ToolModel.cpp" line="440"/>
<source>group_call_error_creation</source>
<translation>Group call couldn&apos;t be created</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="538"/>
<location filename="../../model/tool/ToolModel.cpp" line="540"/>
<source>voice_recording_duration</source>
<extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment>
<translation>Voice recording (%1)</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="612"/>
<location filename="../../model/tool/ToolModel.cpp" line="614"/>
<source>unknown_audio_device_name</source>
<translation>Unknown device name</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="546"/>
<location filename="../../model/tool/ToolModel.cpp" line="548"/>
<source>conference_invitation</source>
<translation>Meeting invitation</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="550"/>
<location filename="../../model/tool/ToolModel.cpp" line="552"/>
<source>conference_invitation_cancelled</source>
<translation>Meeting cancellation</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="548"/>
<location filename="../../model/tool/ToolModel.cpp" line="550"/>
<source>conference_invitation_updated</source>
<translation>Meeting modification</translation>
</message>

View file

@ -657,134 +657,134 @@
</message>
<message>
<location filename="../../core/App.cpp" line="425"/>
<location filename="../../core/App.cpp" line="498"/>
<location filename="../../core/App.cpp" line="785"/>
<location filename="../../core/App.cpp" line="503"/>
<location filename="../../core/App.cpp" line="790"/>
<source>info_popup_error_title</source>
<extracomment>Error</extracomment>
<translation>Erreur</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="426"/>
<location filename="../../core/App.cpp" line="787"/>
<location filename="../../core/App.cpp" line="792"/>
<source>info_popup_configuration_failed_message</source>
<extracomment>Remote provisioning failed : %1</extracomment>
<translation>La configuration distante a échoué : %1</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="501"/>
<location filename="../../core/App.cpp" line="506"/>
<source>info_popup_error_checking_update</source>
<extracomment>An error occured while trying to check update. Please try again later or contact support team.</extracomment>
<translation>Une erreur est survenue lors de la recherche de mise à jour. Merci de réessayer plus tard ou de contacter l&apos;équipe de support.</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="508"/>
<location filename="../../core/App.cpp" line="513"/>
<source>info_popup_new_version_download_label</source>
<translation>Téléchargez-&#x202f;!</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="511"/>
<location filename="../../core/App.cpp" line="516"/>
<source>info_popup_new_version_available_title</source>
<extracomment>New version available !</extracomment>
<translation>Nouvelle version disponible !</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="513"/>
<location filename="../../core/App.cpp" line="518"/>
<source>info_popup_new_version_available_message</source>
<extracomment>A new version of Linphone (%1) is available. %2</extracomment>
<translation>Une nouvelle version de Linphone (%1) est disponible. %2</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="519"/>
<location filename="../../core/App.cpp" line="524"/>
<source>info_popup_version_up_to_date_title</source>
<translation>À jour</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="521"/>
<location filename="../../core/App.cpp" line="526"/>
<source>info_popup_version_up_to_date_message</source>
<extracomment>Your version is up to date</extracomment>
<translation>Votre version est à jour</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="781"/>
<location filename="../../core/App.cpp" line="786"/>
<source>configuration_error_detail</source>
<extracomment>not reachable</extracomment>
<translation>indisponible</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1072"/>
<location filename="../../core/App.cpp" line="1077"/>
<source>application_description</source>
<extracomment>&quot;A free and open source SIP video-phone.&quot;</extracomment>
<translation>A free and open source SIP video-phone.</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1074"/>
<location filename="../../core/App.cpp" line="1079"/>
<source>command_line_arg_order</source>
<extracomment>&quot;Send an order to the application towards a command line&quot;</extracomment>
<translation>Send an order to the application towards a command line</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1078"/>
<location filename="../../core/App.cpp" line="1083"/>
<source>command_line_option_show_help</source>
<translation>Show this help</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1083"/>
<location filename="../../core/App.cpp" line="1088"/>
<source>command_line_option_show_app_version</source>
<translation>Afficher la version de l&apos;application</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1091"/>
<location filename="../../core/App.cpp" line="1096"/>
<source>command_line_option_config_to_fetch</source>
<extracomment>&quot;Specify the linphone configuration file to be fetched. It will be merged with the current configuration.&quot;</extracomment>
<translation>Specify the linphone configuration file to be fetched. It will be merged with the current configuration.</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1093"/>
<location filename="../../core/App.cpp" line="1098"/>
<source>command_line_option_config_to_fetch_arg</source>
<extracomment>&quot;URL, path or file&quot;</extracomment>
<translation>URL, path or file</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1098"/>
<location filename="../../core/App.cpp" line="1103"/>
<source>command_line_option_minimized</source>
<translation>Minimiser</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1101"/>
<location filename="../../core/App.cpp" line="1106"/>
<source>command_line_option_log_to_stdout</source>
<translation>Log to stdout some debug information while running</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1104"/>
<location filename="../../core/App.cpp" line="1109"/>
<source>command_line_option_print_app_logs_only</source>
<extracomment>&quot;Print only logs from the application&quot;</extracomment>
<translation>Print only logs from the application</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1560"/>
<location filename="../../core/App.cpp" line="1565"/>
<source>hide_action</source>
<extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment>
<translation>Cacher</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1560"/>
<location filename="../../core/App.cpp" line="1565"/>
<source>show_action</source>
<translation>Afficher</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1575"/>
<location filename="../../core/App.cpp" line="1580"/>
<source>quit_action</source>
<extracomment>&quot;Quitter&quot;</extracomment>
<translation>Quitter</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1593"/>
<location filename="../../core/App.cpp" line="1598"/>
<source>check_for_update</source>
<extracomment>Check for update</extracomment>
<translation>Rechercher une mise à jour</translation>
</message>
<message>
<location filename="../../core/App.cpp" line="1716"/>
<location filename="../../core/App.cpp" line="1721"/>
<source>mark_all_read_action</source>
<translation>Marquer tout comme lu</translation>
</message>
@ -5886,49 +5886,49 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
<context>
<name>ToolModel</name>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="329"/>
<location filename="../../model/tool/ToolModel.cpp" line="331"/>
<source>call_error_uninterpretable_sip_address</source>
<extracomment>&quot;The calling address is not an interpretable SIP address : %1</extracomment>
<translation>L&apos;adresse n&apos;est pas interprétable comme une adresse SIP</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="404"/>
<location filename="../../model/tool/ToolModel.cpp" line="406"/>
<source>group_call_error_no_account</source>
<translation>Impossible de créer l&apos;appel de groupe, le compte par défaut n&apos;est pas défini</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="434"/>
<location filename="../../model/tool/ToolModel.cpp" line="436"/>
<source>group_call_error_participants_invite</source>
<translation>Impossible d&apos;inviter les participants à l&apos;appel de groupe</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="438"/>
<location filename="../../model/tool/ToolModel.cpp" line="440"/>
<source>group_call_error_creation</source>
<translation>L&apos;appel de groupe n&apos;a pas pu être créé</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="538"/>
<location filename="../../model/tool/ToolModel.cpp" line="540"/>
<source>voice_recording_duration</source>
<extracomment>&quot;Voice recording (%1)&quot; : %1 is the duration formated in mm:ss</extracomment>
<translation>Message vocal (%1)</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="612"/>
<location filename="../../model/tool/ToolModel.cpp" line="614"/>
<source>unknown_audio_device_name</source>
<translation>Appareil inconnu</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="546"/>
<location filename="../../model/tool/ToolModel.cpp" line="548"/>
<source>conference_invitation</source>
<translation>Invitation à une réunion</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="550"/>
<location filename="../../model/tool/ToolModel.cpp" line="552"/>
<source>conference_invitation_cancelled</source>
<translation>Annulation d&apos;une réunion</translation>
</message>
<message>
<location filename="../../model/tool/ToolModel.cpp" line="548"/>
<location filename="../../model/tool/ToolModel.cpp" line="550"/>
<source>conference_invitation_updated</source>
<translation>Modification d&apos;une réunion</translation>
</message>

View file

@ -160,11 +160,13 @@ QString ToolModel::encodeTextToQmlRichFormat(const QString &text,
for (int i = 0; i < iriParsed.size(); ++i) {
QString iri = iriParsed[i]
.second.replace('&', "&amp;")
.second
// .replace('&', "&amp;")
.replace('<', "\u2063&lt;")
.replace('>', "\u2063&gt;")
.replace('"', "&quot;")
.replace('\'', "&#039;");
.replace('\n', "<br>");
// .replace('>', "\u2063&gt;")
// .replace('"', "&quot;")
// .replace('\'', "&#039;");
if (!iriParsed[i].first) {
if (lastWasUrl) {
lastWasUrl = false;

View file

@ -31,7 +31,7 @@ TextEdit {
contentGui.core.setSearchedTextPart(searchedTextPart)
}
textFormat: Text.AutoText // To supports links and imgs.
textFormat: Text.RichText // To supports links and imgs.
wrapMode: TextEdit.Wrap
onLinkActivated: (link) => {