ColorSchemeTab: make discord toggle look better

This commit is contained in:
lysec
2025-10-17 15:32:22 +02:00
parent 87f4559764
commit d5360a7dde
+39 -21
View File
@@ -513,29 +513,47 @@ ColumnLayout {
}
}
// Show individual checkboxes for each detected Discord client
Repeater {
model: ProgramCheckerService.availableDiscordClients
delegate: NCheckbox {
label: modelData.name.charAt(0).toUpperCase() + modelData.name.slice(1)
description: I18n.tr("settings.color-scheme.templates.programs.discord.description", {
"client": modelData.name.charAt(0).toUpperCase() + modelData.name.slice(1),
"filepath": modelData.themePath
})
checked: Settings.data.templates["discord_" + modelData.name] || false
onToggled: checked => {
Settings.data.templates["discord_" + modelData.name] = checked
// Discord clients - single toggle with dynamic description
NCheckbox {
id: discordToggle
label: "Discord"
description: {
if (ProgramCheckerService.availableDiscordClients.length === 0) {
return I18n.tr("settings.color-scheme.templates.programs.discord.description-missing")
} else {
// Show detected clients
var clientInfo = []
for (var i = 0; i < ProgramCheckerService.availableDiscordClients.length; i++) {
var client = ProgramCheckerService.availableDiscordClients[i]
clientInfo.push(client.name.charAt(0).toUpperCase() + client.name.slice(1))
}
return "Detected: " + clientInfo.join(", ")
}
}
checked: {
// Check if any Discord client template is enabled
var anyEnabled = false
for (var i = 0; i < ProgramCheckerService.availableDiscordClients.length; i++) {
var client = ProgramCheckerService.availableDiscordClients[i]
if (Settings.data.templates["discord_" + client.name]) {
anyEnabled = true
break
}
}
return anyEnabled
}
enabled: ProgramCheckerService.availableDiscordClients.length > 0
opacity: ProgramCheckerService.availableDiscordClients.length > 0 ? 1.0 : 0.6
onToggled: checked => {
// Enable/disable all detected Discord clients
for (var i = 0; i < ProgramCheckerService.availableDiscordClients.length; i++) {
var client = ProgramCheckerService.availableDiscordClients[i]
Settings.data.templates["discord_" + client.name] = checked
}
if (ProgramCheckerService.availableDiscordClients.length > 0) {
AppThemeService.generate()
}
}
}
// Show message if no Discord clients detected
NText {
visible: ProgramCheckerService.availableDiscordClients.length === 0
text: I18n.tr("settings.color-scheme.templates.programs.discord.description-missing")
color: Color.mOnSurfaceVariant
pointSize: Style.fontSizeS
}
}
NCheckbox {