summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-04 10:13:00 +0200
committerDanilo M. <danix@danix.xyz>2026-08-04 12:54:37 +0200
commit7ecdd3fe942a02b80cf4e7cf351aa15d44b48934 (patch)
tree7d4d623cc84e3402bc29204512879e4ecb92ceb4
parentcf75b8ecf7d27fda217023507b8ed4df1f198613 (diff)
downloadqtmaildir-0.5.0.tar.gz
qtmaildir-0.5.0.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.md54
-rw-r--r--CMakeLists.txt2
-rwxr-xr-xassets/slackbuild/qtmaildir.SlackBuild2
-rw-r--r--assets/slackbuild/qtmaildir.info4
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=""