AvengeMedia / AvengeMedia/DankMaterialShell
StringSetting: add password/echoMode support
- Dominant language
- QML
- Stars
- 8.1k
- Forks
- 515
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 102
Description
## Feature Request
`StringSetting` in `qs.Modules.Plugins` does not support password masking. When a plugin sets `password: true` on a `StringSetting`, QML treats it as an undeclared property, causing a load-time error. Because `PluginListItem.qml` loads settings via a dynamic `Loader`, this error is swallowed silently and the entire settings panel fails to render with no feedback.
## Proposed Change
Add an optional `password` property (or `echoMode`) to `StringSetting.qml` that sets `echoMode: TextInput.Password` on the underlying `DankTextField`.
Something like:
```qml
property bool password: false
```
And on the DankTextField:
```qml
echoMode: root.password ? TextInput.Password : TextInput.Normal
```
## Context
Discovered in [DankCalendar](https://github.com/alcxyz/DankCalendar) where a CalDAV password field needed masking. The workaround is to remove the property and show the field as plaintext.
See: alcxyz/DankCalendar#19
Contributor guide
Research direction
Start with StringSetting.qml and inspect how its underlying DankTextField is configured; PluginListItem.qml is the loading context for the settings panel. Add the optional password or echoMode support described in the issue, then verify that password fields are masked while normal StringSetting fields remain unchanged and the settings panel renders successfully.
Written by the indexing model from the issue text.
Assessment
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 85/100