diff --git a/src/app/settingsview/components/ChatviewSettings.qml b/src/app/settingsview/components/ChatviewSettings.qml index 0b635c2ed11dc92be178e98b20412c05165e9625..4d385666aa9768d827dcf125daa18e9c5531e871 100644 --- a/src/app/settingsview/components/ChatviewSettings.qml +++ b/src/app/settingsview/components/ChatviewSettings.qml @@ -90,6 +90,7 @@ ColumnLayout { tipText: JamiStrings.layout fontPointSize: JamiTheme.settingsFontSize comboModel: ListModel { + id: layoutModel Component.onCompleted: { append({ textDisplay: JamiStrings.horizontalViewOpt }) append({ textDisplay: JamiStrings.verticalViewOpt }) @@ -106,5 +107,17 @@ ColumnLayout { comboModel.get(modelIndex).textDisplay === JamiStrings.verticalViewOpt ) } + + Connections { + target: UtilsAdapter + + function onChangeLanguage() { + var idx = outputComboBoxSetting.modelIndex + layoutModel.clear() + layoutModel.append({ textDisplay: JamiStrings.horizontalViewOpt }) + layoutModel.append({ textDisplay: JamiStrings.verticalViewOpt }) + outputComboBoxSetting.modelIndex = idx + } + } } } diff --git a/src/app/settingsview/components/SystemSettings.qml b/src/app/settingsview/components/SystemSettings.qml index 9871f730f2c9be64eb1c8e6f619b6bdb4affcecd..a1d75222a20111e965405d14dcda6b54a18af5fb 100644 --- a/src/app/settingsview/components/SystemSettings.qml +++ b/src/app/settingsview/components/SystemSettings.qml @@ -76,6 +76,7 @@ ColumnLayout { fontPointSize: JamiTheme.settingsFontSize comboModel: ListModel { + id: themeModel Component.onCompleted: { append({ textDisplay: JamiStrings.dark }) append({ textDisplay: JamiStrings.light }) @@ -223,13 +224,22 @@ ColumnLayout { } } - Connections { target: UtilsAdapter function onChangeFontSize() { zoomSpinBox.valueField = Math.round(UtilsAdapter.getAppValue(Settings.BaseZoom) * 100.0) } + + function onChangeLanguage() { + var idx = themeComboBoxSettings.modelIndex + themeModel.clear() + themeModel.append({ textDisplay: JamiStrings.dark }) + themeModel.append({ textDisplay: JamiStrings.light }) + if (UtilsAdapter.hasNativeDarkTheme()) + themeModel.append({ textDisplay: JamiStrings.system }) + themeComboBoxSettings.modelIndex = idx + } } SettingSpinBox { diff --git a/src/app/utilsadapter.cpp b/src/app/utilsadapter.cpp index bb9d4937cbe4403373cbaf8a2732376e169bf7aa..f3cc9fa1432df1b09799fb936ad24a008b9ec769 100644 --- a/src/app/utilsadapter.cpp +++ b/src/app/utilsadapter.cpp @@ -367,9 +367,10 @@ UtilsAdapter::setAppValue(const Settings::Key key, const QVariant& value) } settingsManager_->setValue(key, value); // If we change the lang preference, reload the translations - if (key == Settings::Key::LANG) + if (key == Settings::Key::LANG) { settingsManager_->loadTranslations(); - else if (key == Settings::Key::BaseZoom) + Q_EMIT changeLanguage(); + } else if (key == Settings::Key::BaseZoom) Q_EMIT changeFontSize(); else if (key == Settings::Key::EnableExperimentalSwarm) Q_EMIT showExperimentalCallSwarm(); diff --git a/src/app/utilsadapter.h b/src/app/utilsadapter.h index dd2b2ac9281dd0f66a21eacc1a9a57ba01fee6d9..cd8aae2ecd4693dddf53547c5c2966bd675a969c 100644 --- a/src/app/utilsadapter.h +++ b/src/app/utilsadapter.h @@ -127,6 +127,7 @@ Q_SIGNALS: void chatviewPositionChanged(); void appThemeChanged(); void showExperimentalCallSwarm(); + void changeLanguage(); private: QClipboard* clipboard_;