summaryrefslogtreecommitdiffstats
path: root/docs/superpowers/plans/2026-08-02-qtmaildir-v1.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-02 17:21:47 +0200
committerDanilo M. <danix@danix.xyz>2026-08-04 12:52:19 +0200
commit72b56d0beca6d640c724eabc73a3ee45cf04bfea (patch)
treeda54a55abd573f0c9457ddceafdb38bb327cebb1 /docs/superpowers/plans/2026-08-02-qtmaildir-v1.md
parentd56d9c35352bec0f1492395f657f2c0b9b0f04a1 (diff)
downloadqtmaildir-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/2026-08-02-qtmaildir-v1.md')
-rw-r--r--docs/superpowers/plans/2026-08-02-qtmaildir-v1.md12
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();