diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-02 17:21:47 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-04 12:52:19 +0200 |
| commit | 72b56d0beca6d640c724eabc73a3ee45cf04bfea (patch) | |
| tree | da54a55abd573f0c9457ddceafdb38bb327cebb1 /docs/superpowers/plans | |
| parent | d56d9c35352bec0f1492395f657f2c0b9b0f04a1 (diff) | |
| download | qtmaildir-72b56d0beca6d640c724eabc73a3ee45cf04bfea.tar.gz qtmaildir-72b56d0beca6d640c724eabc73a3ee45cf04bfea.zip | |
feat: add Config with account, query, and sync parsing
Accounts use [account.work] rather than [account/work]: QSettings' INI
backend treats "/" as its own hierarchical group separator, so a literal
slash in a section header parses as a nested group and trips
QSettings::FormatError, silently breaking childGroups() enumeration. A
dot carries no such meaning and keeps the format flat.
Saved-query order is alphabetical (QSettings::childKeys() sorts), not
file order; documented in code and tests rather than left to a false
assumption.
Diffstat (limited to 'docs/superpowers/plans')
| -rw-r--r-- | docs/superpowers/plans/2026-08-02-qtmaildir-v1.md | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/docs/superpowers/plans/2026-08-02-qtmaildir-v1.md b/docs/superpowers/plans/2026-08-02-qtmaildir-v1.md index 2defcc5..b264986 100644 --- a/docs/superpowers/plans/2026-08-02-qtmaildir-v1.md +++ b/docs/superpowers/plans/2026-08-02-qtmaildir-v1.md @@ -544,13 +544,13 @@ void TestConfig::parsesAccounts() { QTemporaryDir dir; const QString path = writeIni(dir, QStringLiteral( - "[account/work]\n" + "[account.work]\n" "name=Test User\n" "address=user@example.org\n" "maildir=work-mail\n" "drafts=Drafts\n" "\n" - "[account/personal]\n" + "[account.personal]\n" "name=Test User\n" "address=me@example.net\n" "maildir=personal\n" @@ -610,7 +610,7 @@ void TestConfig::accountWithoutMaildirIsRejected() { QTemporaryDir dir; const QString path = writeIni(dir, QStringLiteral( - "[account/broken]\n" + "[account.broken]\n" "name=No Maildir\n" "address=x@example.org\n" )); @@ -666,7 +666,7 @@ Expected: FAIL, `config.h: No such file or directory`. /// identity. struct Account { - QString key; ///< INI group suffix, e.g. "work" from [account/work]. + QString key; ///< INI group suffix, e.g. "work" from [account.work]. QString name; QString address; QString maildir; ///< Relative to notmuch's database.path. @@ -762,11 +762,11 @@ void Config::load(const QString &path) } for (const QString &group : settings.childGroups()) { - if (!group.startsWith(QStringLiteral("account/"))) + if (!group.startsWith(QStringLiteral("account."))) continue; Account account; - account.key = group.mid(QStringLiteral("account/").size()); + account.key = group.mid(QStringLiteral("account.").size()); settings.beginGroup(group); account.name = settings.value(QStringLiteral("name")).toString(); |
