From 72b56d0beca6d640c724eabc73a3ee45cf04bfea Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sun, 2 Aug 2026 17:21:47 +0200 Subject: 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. --- docs/superpowers/plans/2026-08-02-qtmaildir-v1.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'docs/superpowers/plans') 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(); -- cgit v1.2.3