summaryrefslogtreecommitdiffstats
path: root/tests/CMakeLists.txt
AgeCommit message (Collapse)AuthorFilesLines
11 hoursfeat: add HTML builder and cid: scheme handlerDanilo M.1-0/+1
HtmlBuilder renders parsed messages (and whole threads, as one document, so newsletter threads don't spawn one Chromium process per message) into the HTML string the web view loads. Plain text is escaped and quote lines marked; the cid: rewrite is namespaced per message ("<prefix>!<id>") so two thread messages sharing a Content-ID don't collide. Hardened namespaceCids beyond the initial sketch after attacking it: handles unquoted cid: attribute values, background=/poster= (not just src/href), and CSS url(cid:...) in both style="" attributes and <style> blocks, all case-insensitively. Replaced the greedy [^"']+ capture with per-quote-style alternation so two cid: refs on one line can't bleed into each other. CidSchemeHandler serves cid: requests from the thread's inline-parts map, keyed by the same namespaced string, replaced wholesale per thread.
11 hoursfeat: add deny-by-default web request interceptorDanilo M.1-0/+1
11 hoursfeat: add MimeParser with GMime and safe attachment namingDanilo M.1-0/+3
11 hoursfeat: add Config with account, query, and sync parsingDanilo 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.
11 hoursfeat: add KeyMap with defaults and INI overridesDanilo 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().
11 hoursbuild: add CMake skeleton and dependency discoveryDanilo M.1-0/+6