AvengeMedia / AvengeMedia/DankMaterialShell

StringSetting: add password/echoMode support

Open Beginner friendly
#2,295 0 comments 0 reactions 0 assignees View on GitHub
feature request
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.