diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-04 10:13:00 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-04 12:54:37 +0200 |
| commit | 7ecdd3fe942a02b80cf4e7cf351aa15d44b48934 (patch) | |
| tree | 7d4d623cc84e3402bc29204512879e4ecb92ceb4 | |
| parent | cf75b8ecf7d27fda217023507b8ed4df1f198613 (diff) | |
| download | qtmaildir-0396374d9b280845a0ca52017b2fa9d89bd1ad40.tar.gz qtmaildir-0396374d9b280845a0ca52017b2fa9d89bd1ad40.zip | |
release: 0.5.0v0.5.0
Query completion is a new feature, so this takes the minor slot rather
than a patch, the accompanying bug fixes notwithstanding.
The SlackBuild's MD5SUM is left at the 0.4.1 value on purpose: it can
only be computed once the 0.5.0 snapshot tarball exists, which is after
the tag is pushed. Update it with sbodl before the package is built.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
| -rw-r--r-- | CHANGELOG.md | 54 | ||||
| -rw-r--r-- | CMakeLists.txt | 2 | ||||
| -rwxr-xr-x | assets/slackbuild/qtmaildir.SlackBuild | 2 | ||||
| -rw-r--r-- | assets/slackbuild/qtmaildir.info | 4 |
4 files changed, 58 insertions, 4 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 291576b..f37aa45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,60 @@ point at which they are stable. Nothing yet. +## [0.5.0] - 2026-08-04 + +Completion in the query bar. The point is not to save typing but to make the +notmuch query language discoverable: every candidate carries a description, so +the bar teaches the syntax to someone who has never written a notmuch query. + +### Added + +- **Query prefixes** complete with a description each: `tag:`, `is:`, `from:`, + `to:`, `subject:`, `date:`, `attachment:`, `mimetype:`, `folder:`, `path:`, + `thread:`, `id:`, and the `and` / `or` / `not` operators. The list is + hardcoded, since notmuch exposes no way to enumerate its own prefixes. +- **Tag names** after `tag:` and `is:`, which notmuch treats as synonyms. The + list is the real set of tags in the database, refreshed at startup, after a + sync, and whenever a tag mutation introduces one that was not there before. +- **Dates** after `date:`, symbolic and relative, completing each bound of a + `..` range independently. Entries that are themselves open-ended ranges, + like `1week..`, are withheld once a range is already underway, since they + would produce malformed queries inside one. +- **Content types** after `mimetype:`, from a built-in list extensible through + the new `[completion] extra_mimetypes` key. Entries are appended to the + built-ins rather than replacing them, so a typo cannot leave you with fewer + completions than the defaults. +- **Account directories** after `path:`, in both the plain and the recursive + `<maildir>/**` form. +- `complete_query`, bound to **Ctrl+Space**, opens the popup on demand. +- `[general] completion_on_focus`, off by default, opens it as soon as an empty + query bar takes focus. +- Accepting a prefix chains straight into its values, so taking `tag:` offers + the tag list without a second keystroke. + +### Fixed + +- Return in the query bar ran nothing and moved focus to the thread list. + Return is bound to `open_thread` as a window shortcut, and a shortcut is + dispatched before the focused widget sees the key; Qt withholds plain-letter + shortcuts from editable widgets, but Return is not a letter and got no such + protection. The query bar now claims the key back while it has focus. +- Tab and the arrow keys crashed the application outright while the popup was + open. `QCoreApplication::sendEvent` re-runs application-level event filters, + so the filter forwarding a key to the popup was handed the same key straight + back, recursing until the stack was exhausted. + +### Notes + +The example configuration in the README had two keys that were live rather +than commented, so copying the block activated a sync command and three +mimetypes the reader never chose. Both are commented now. + +`from:` and `to:` complete no addresses: libnotmuch exposes no call to +enumerate them. `folder:` completes nothing either, as a Maildir folder name +is not something the configuration can enumerate. Saved query names are +deliberately absent, a name not being valid notmuch syntax. + ## [0.4.1] - 2026-08-03 Packaging only. No change to the application itself. diff --git a/CMakeLists.txt b/CMakeLists.txt index bdaa6ce..10fa197 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.21) -project(qtmaildir VERSION 0.4.1 LANGUAGES CXX) +project(qtmaildir VERSION 0.5.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/assets/slackbuild/qtmaildir.SlackBuild b/assets/slackbuild/qtmaildir.SlackBuild index 2ae5d3e..8993163 100755 --- a/assets/slackbuild/qtmaildir.SlackBuild +++ b/assets/slackbuild/qtmaildir.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PRGNAM=qtmaildir -VERSION=${VERSION:-0.4.1} +VERSION=${VERSION:-0.5.0} BUILD=${BUILD:-1} # Not _SBo: this is not an SBo submission. sbolint reports the tag and the # package type as errors for that reason; both are deliberate. diff --git a/assets/slackbuild/qtmaildir.info b/assets/slackbuild/qtmaildir.info index 01f060b..f99fd34 100644 --- a/assets/slackbuild/qtmaildir.info +++ b/assets/slackbuild/qtmaildir.info @@ -1,7 +1,7 @@ PRGNAM="qtmaildir" -VERSION="0.4.1" +VERSION="0.5.0" HOMEPAGE="https://git.danix.xyz/qtmaildir" -DOWNLOAD="https://git.danix.xyz/qtmaildir/snapshot/qtmaildir-0.4.1.tar.gz" +DOWNLOAD="https://git.danix.xyz/qtmaildir/snapshot/qtmaildir-0.5.0.tar.gz" MD5SUM="58be3fe44dc5946054cb13fd08786032" DOWNLOAD_x86_64="" MD5SUM_x86_64="" |
