| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 6 hours | feat: add deny-by-default web request interceptor | Danilo M. | 1 | -0/+1 | |
| 6 hours | feat: add MimeParser with GMime and safe attachment naming | Danilo M. | 1 | -0/+3 | |
| 6 hours | feat: add Config with account, query, and sync parsing | Danilo M. | 1 | -0/+1 | |
| 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. | |||||
| 6 hours | feat: add KeyMap with defaults and INI overrides | Danilo M. | 1 | -0/+2 | |
| Maps key sequences to action name strings, with hardcoded vim-style defaults and QSettings-based [keys] overrides. Unknown actions and unparseable sequences are collected as warnings rather than treated as fatal, so a typo in the config cannot silently misbind or crash. Note: QKeySequence::fromString() on Qt 6.11 does not return an empty sequence for unparseable input (e.g. "NotAKey++") -- it returns a non-empty sequence whose toString() is empty. Detection uses that instead of isEmpty(). | |||||
| 6 hours | build: add CMake skeleton and dependency discovery | Danilo M. | 1 | -0/+6 | |
