Highlights
-
Query system redesign: stateful asynchronous query handlers enable lazy query processing. This significantly reduces query latency and supports infinite scrolling. Generator-based subclasses allow writing linear, readable code while remaining fully asynchronous.
-
Internationalized tokenization: queries are now tokenized using Unicode word boundaries, enabling correct splitting of non-Latin scripts.
-
Improved API structure and documentation: API restructuring reduces the cognitive load for plugin developers.
-
Asynchronous plugin initialization: gives implementations control over how plugins are initialized, improving performance and reducing UI freezes.
-
Plugins
- Added Homebrew plugin.
- Added Firefox plugin.
- Renamed the PATH plugin to Commandline.
- Removed the QStylesheets-based widgets box model frontend.
Details
Features
Core
- [BREAKING] Tokenize strings using unicode word boundaries
- Add 🕚 inputhint to global query wildcard
- Add Homebrew plugin
Plugins
- Arch Linux Wiki · Infinite scrolling
- Documentation · Allow custom docsets
- GitHub
- Kill Process · Support all platforms
- Obsidian
- Python plugins · Add firefox plugin
- Spotify · Lazy item generation (Infinite scroll)
- Widgets BoxModel
- Wikipedia · Infinite scrolling
API
Core
- [BREAKING] Drop property.h
- [BREAKING] Rename
bindtobindWidget - [BREAKING] Drop
utilnamespace - [BREAKING] Drop
tryCreateDirectory - [BREAKING] Expose the
UsageScoringclass - [BREAKING] Remove color macros from public interface
- [BREAKING] Simplify
UsageScoringAPI - [BREAKING] Add asynchronous query handling support
- [BREAKING] BackgroundExecutor · Remove any logging or exception handling
- Make
template<typename T> T* extension(const QString &id)const - [BREAKING] Move UsageScoring into the Query
- [BREAKING] Add object oriented global
Appinterface - [BREAKING] Remove const from global query handlers parameter
- [BREAKING] Add
GeneratorQueryHandlerclass - [BREAKING] Drop
GlobalQueryHandler::handleGlobalQuery - [BREAKING] Rename
QuerytoQueryContext - [BREAKING] Rename
ThreadedQueryHandlertoRankedQueryHandler - Add class
AsyncGeneratorQueryHandler - [BREAKING] Rename
QueryContext::stringtoQueryContext::query - Make
QueryContext::isValidthread-safe - Asynchronous PluginInstance initialization
- [BREAKING] PluginInstance · Remove keychain API
- [BREAKING] Facade
ExtensionRegistrybehindAppinterface - [BREAKING] Redesign icon API
Plugins
- Python plugins · [BREAKING] · Python plugin interface v5.0
Performance
Plugins
- Calculator · Initialize calculator in background thread
- Documentation · Asynchronous initialization
- Python plugins · Asynchronous plugin initialization
Fixes
Core
- No tray icon on xdg platforms
- Taborder in settingswidget
- QueryResults · Proper tr context
- OAuth · Do not silently fail on incorrect credentials
- Prevent segfaults on plugin unload while window is visible
- GlobalQuery · Threading bugs
- Replace leftover bool ref stop token
- Add icon.h to header file set
- Use clang for dedicated plugin test builds
configWidgetcall on unloaded plugin- Workaround Qt 6.4 deadlocks
- Dead link in CONTRIBUTING.md
- Mute shadow warnings
- Mute -Wunused warnings
Plugins
- CopyQ · Invalid return type
- Debug · Workaround GCC13 bugs
- Docker · Proper tag handling
- Documentation · Extract docsets into the docset directory
- Emoji · Loading error when locale is 'C'
- Files · Apply mime filter to the root item.
- GitHub
- Obsidian · Backward compatibility
- Pass · Correct license
- Python plugins
- Spotify
- Widgets BoxModel
Documentation
Core
- Structure by topics
- Update doxygen topic structure
- Update query handlers documentation
- Update ALBERT_PLUGIN macro documentation
- Fix maintainers field documentation
- Document how to handle plugin initialization failure
- Add a note on GCC-13 generator bugs
- PluginLoader · Move contract into class description
- Reorder changelog groups
Plugins
- Documentation · Document the custom docset feature
Testing
Plugins
- Files · Fix tests according to d033020b89f0306eaf09fdf95070e1697ed7c633
- Python plugins · Update tests
Miscellaneous Tasks
Core
- Mute
-Wshadowwarnings - docker · Build test images with Clang and Ninja
- test · Mute
-Wunused-resultwarnings - changelog · Group plugin commits if >1
- Rename plugin path to commandline
- Mute clazy-fully-qualified-moc-types
- Print theme search paths on start
- RateLimiter · Async acquire support
- Drop Widgetsboxmodel QSS frontend
- Git ignore ".qtcreator"
- StandardIconType · Add values and documentation
- Telemetry · Derive QObject, use proper context objects
- Remove global engine access on item activation
- RPCServer · Avoid using QtPrivate
- QueryEngine · Emit signal per handler type
- Separate plugin macros from
config.hintoplugin.h - Do not export privately linked dependencies
- docker · Pull qcoro dependencies
- GlobalQuery · Print diag and add results of valid queries only
- Update translations
- CI · Update macos build system
- CI · Add QCoro dependency
- Run dedicated plugin test builds in docker files
- Do not print plugin exceptions to the root logging category
- Update changelog template
- Revert to GCC builds
- Do not send anything if users opt out telemetry
Plugins
- AUR
- Albert
- Applications
- Arch Linux Wiki
- Bitwarden
- Bluetooth
- Caffeine
- Calculator
- Chromium
- Clipboard
- CoinGecko
- Contacts
- CopyQ
- Date and time
- Debug
- Dictionary
- Docker
- Documentation
- Emoji
- Files
- GitHub
- GoldenDict
- Hash Generator
- Jetbrains projects
- Kill Process
- Locate
- Media player remote
- Menu bar
- Obsidian
- PacMan
- Pass
- Pomodoro
- Python Eval
- Python plugins
- SSH
- Snippets
- Spotify
- Adapt API changes
- Use detail::DyamicItem
- TrackItem · Show only authors in description
- ArtistItem · Show followers and genres in description
- AlbumItem · Show only artists in description
- PlaylistItem · Show only owner in description
- ShowItem · Show only publisher in description
- EpisodeItem · Show only description in description
- AudiobookItem · Show only authors in description
- Further adaption of API changes
- Use qtkeychain directly
- Adapt new icon API
- Syncthing
- System
- TeX to Unicode
- Time zones
- Timers
- Translator
- URL Handler
- Unit Converter
- VPN
- VSCode projects
- VirtualBox
- Web search
- Widgets BoxModel
- Wikipedia
- X Window Switcher
- Zeal
Full Changelog: v33.0.1...v34.0.0