Files
dms-chat/settings/IrcSettingsPanel.qml
SalastilandClaude Sonnet 5 7f3a1d36cd Restructure QML into views/settings/forms, add popout IPC command
- Move the ~17 top-level QML files into views/, settings/, and forms/
  subdirectories, grouped so cross-directory type references stay minimal
  (only 3 files need an added `import` line). Root now only holds the
  four surfaces plugin.json points at directly.
- Add a `dms ipc call dankChat popout` IPC target to open the floating
  window directly, alongside the existing `toggle`, and document both in
  the README along with the new directory layout.
- Add one line of breathing room between the last message and the
  composer bar via the message ListView's bottomMargin (measured with
  FontMetrics rather than a guessed pixel value).

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-09 23:41:07 -04:00

114 lines
3.1 KiB
QML

import QtQuick
import qs.Common
import qs.Widgets
import qs.Modules.Plugins
// IRC's own settings area, loaded by ChatSettings.qml's protocol rail.
// Its own PluginSettings instance scoped to just these fields - future
// services get their own equally self-contained ProtocolSettingsPanel.qml
// (e.g. MatrixSettingsPanel.qml) loaded the same way, without touching
// this file or ChatSettings.qml's rail/Loader plumbing.
PluginSettings {
id: root
pluginId: "dankChat"
StyledText {
width: parent.width
text: "Message filters"
font.weight: Font.Medium
color: Theme.surfaceVariantText
}
ToggleSetting {
settingKey: "irc.showJoinMessages"
label: "Show join messages"
description: "\"X entered the room\" when someone joins a channel"
defaultValue: true
}
ToggleSetting {
settingKey: "irc.showPartMessages"
label: "Show part/quit messages"
description: "\"X left the room\" when someone leaves a channel or disconnects - IRC's PART and QUIT read identically once libpurple turns them into text, so this covers both"
defaultValue: true
}
ToggleSetting {
settingKey: "irc.showNickChanges"
label: "Show nick changes"
description: "\"X is now known as Y\""
defaultValue: true
}
ToggleSetting {
settingKey: "irc.showTopicChanges"
label: "Show topic changes"
defaultValue: true
}
ToggleSetting {
settingKey: "irc.showModeChanges"
label: "Show mode changes"
description: "Channel/user mode notices (+o, +m, etc.) - often noisy on busy channels"
defaultValue: true
}
Rectangle {
width: parent.width
height: 1
color: Theme.outlineMedium
}
StyledText {
width: parent.width
text: "Connection defaults for new accounts"
font.weight: Font.Medium
color: Theme.surfaceVariantText
}
StyledText {
width: parent.width
text: "Applied when you connect a new IRC account. SASL, autojoin, and NickServ auto-identify are set per-account instead, from that account's own entry in the Accounts pane."
wrapMode: Text.WordWrap
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
ToggleSetting {
settingKey: "irc.defaultSsl"
label: "Use SSL/TLS"
defaultValue: true
}
StringSetting {
settingKey: "irc.defaultEncoding"
label: "Encoding"
defaultValue: "UTF-8"
}
ToggleSetting {
settingKey: "irc.autodetectUtf8"
label: "Auto-detect incoming UTF-8"
defaultValue: false
}
StringSetting {
settingKey: "irc.quitMessage"
label: "Quit message"
defaultValue: "Leaving."
}
StringSetting {
settingKey: "irc.ratelimitInterval"
label: "Seconds between sending messages"
description: "Flood control"
defaultValue: "2"
}
StringSetting {
settingKey: "irc.ratelimitBurst"
label: "Maximum messages to send at once"
defaultValue: "5"
}
}