mirror of
https://github.com/noctalia-dev/noctalia-shell.git
synced 2026-05-11 17:08:27 +08:00
ColorSchemeTab: make discord toggle look better
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user