linux.x86.linphone/Linphone/view/Page/Layout/Settings/DisplaySettingsLayout.qml
data db7ce5ef4a Add dark theme, German translations and UI improvements
- Dark theme settings
- German language translations
- UI component improvements (ComboSetting, SwitchSetting)
- Display settings layout updates

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 06:14:53 +01:00

129 lines
3.3 KiB
QML

import QtQuick
import QtQuick.Layouts
import QtQuick.Controls.Basic as Control
import Linphone
import SettingsCpp 1.0
import UtilsCpp
import 'qrc:/qt/qml/Linphone/view/Style/buttonStyle.js' as ButtonStyle
import "qrc:/qt/qml/Linphone/view/Control/Tool/Helper/utils.js" as Utils
AbstractSettingsLayout {
id: mainItem
width: parent?.width
contentModel: [
{
//: Language
title: qsTr("settings_display_language_title"),
subTitle: "",
contentComponent: languageComponent
},
{
//: Appearance
title: qsTr("settings_display_appearance_title"),
subTitle: "",
contentComponent: appearanceComponent
}
]
onSave: {
SettingsCpp.save()
}
onUndo: SettingsCpp.undo()
// Language settings
////////////////////
Component {
id: languageComponent
ColumnLayout {
spacing: Utils.getSizeWithScreenRatio(20)
ComboSetting {
Layout.fillWidth: true
//: Language
titleText: qsTr("settings_display_language_select")
//: Select your preferred language
subTitleText: qsTr("settings_display_language_subtitle")
propertyName: "configLocale"
propertyOwner: SettingsCpp
model: [
{text: "English", value: "en"},
{text: "Deutsch", value: "de"},
{text: "Francais", value: "fr"},
{text: "Espanol", value: "es"},
{text: "Portugues", value: "pt"},
{text: "Italiano", value: "it"},
{text: "Nederlands", value: "nl"},
{text: "Polski", value: "pl"},
{text: "Cesky", value: "cs"},
{text: "Slovensky", value: "sk"},
{text: "Magyar", value: "hu"},
{text: "Suomi", value: "fi"},
{text: "Russkiy", value: "ru"},
{text: "Ukrayinska", value: "uk"},
{text: "Zhongwen", value: "zh_Hans"}
]
}
Text {
Layout.fillWidth: true
//: Restart required for language change
text: qsTr("settings_display_language_restart_hint")
color: DefaultStyle.main2_500main
font.pixelSize: Typography.p2.pixelSize
wrapMode: Text.WordWrap
}
}
}
// Appearance settings
//////////////////////
Component {
id: appearanceComponent
ColumnLayout {
spacing: Utils.getSizeWithScreenRatio(20)
SwitchSetting {
Layout.fillWidth: true
//: Dark mode
titleText: qsTr("settings_display_dark_mode_title")
//: Enable dark mode (or follows system theme like Breeze Dark)
subTitleText: qsTr("settings_display_dark_mode_subtitle")
propertyName: "darkModeAllowed"
propertyOwner: SettingsCpp
}
Text {
Layout.fillWidth: true
//: System dark theme is detected automatically
text: DefaultStyle.systemDarkMode
? qsTr("settings_display_system_dark_detected")
: qsTr("settings_display_system_light_detected")
color: DefaultStyle.main2_500main
font.pixelSize: Typography.p2.pixelSize
wrapMode: Text.WordWrap
}
ComboSetting {
Layout.fillWidth: true
//: Accent color
titleText: qsTr("settings_display_theme_color_title")
//: Choose the accent color for buttons and highlights
subTitleText: qsTr("settings_display_theme_color_subtitle")
propertyName: "themeMainColor"
propertyOwner: SettingsCpp
model: [
{text: "Orange", value: "orange"},
{text: "Green", value: "green"},
{text: "Blue", value: "blue"},
{text: "Red", value: "red"},
{text: "Purple", value: "purple"},
{text: "Pink", value: "pink"},
{text: "Yellow", value: "yellow"}
]
}
}
}
}