With this release KDBindings gains an important feature: The ability to use Signals and slots over multiple threads.
To easily integrate this with any event loop and framework, the ConnectionEvaluator can be used to precisely control when the slots of a connection are executed.
To react to new slot invocations, users may subclass the ConnectionEvaluator and override the onInvocationAdded function.
Highlighted changes
- Feature: ConnectionEvaluator for deferred Signal/Slot evaluation and easy integration into multi-threaded environments (#48)
- The ConnectionEvaluator can be subclassed to react to new slot invocations (#86)
- Feature: Add ScopedConnection for RAII-style connection management (#31)
- Feature: Define a preprocessor flag for enabling warnings on unused ConnectionHandle by @phyBrackets in #71
- Use ConnectionHandle::release to intentionally silence the warning when the ConnectionHandle is not needed (#92)
- Feature: Connect reflective - Allow slots to access their own ConnectionHandle in #70
Other Changes
- Make KDBINDINGS_DECLARE_FUNCTION callable outside of within KDBinding… by @lemirep in #38
- Typo: Not sorted, but assorted examples by @ivan-cukic in #39
- Add GitHub Actions by @dantti in #42
- Fix clang-tidy failures by @LeonMatthesKDAB in #49
- Add clang-tidy fixes to main by @LeonMatthesKDAB in #50
- Avoid error in presence of Windows min/max macros by @MiKom in #52
- Fix CI: Link to Pthread library explicitly by @LeonMatthesKDAB in #54
- Fix CI staticcheck warnings by @LeonMatthesKDAB in #53
- Modify the copyright line to show the file creation year only by @winterz in #51
- Standardize project to KDAB copyright policy (port from 1.0 branch) by @LeonMatthesKDAB in #56
- CI: Use presets for testing by @LeonMatthesKDAB in #59
- CI: Add static checks by @dantti in #58
- CI: Avoid duplicated CI jobs by @dantti in #60
- Add CMake presets for static checks by @LeonMatthesKDAB in #61
- Remove appveyor.yml by @dantti in #62
- Add pre-commit by @dantti in #66
- Fail CI if clazy fails by @LeonMatthesKDAB in #73
- Has binding by @seanharmer in #75
- ci: Use windows-2019 instead of -latest by @LeonMatthesKDAB in #77
- ci: Revert to Windows-latest by @LeonMatthesKDAB in #80
- fix: KDBINDINGS_WARN_UNUSED on templated connect by @LeonMatthesKDAB in #81
- fix: Rename CMake KDBINDINGS_ENABLE_WARN_UNUSED by @LeonMatthesKDAB in #83
- #79: Qt compatibility - Add KDBindings_QT_NO_EMIT by @LeonMatthesKDAB in #82
- Add a missing include in connection_evaluator.h by @MiKom in #84
- Allow having bindings referencing const Properties by @phyBrackets in #72
- Small documentation fixes by @LeonMatthesKDAB in #87
- Fix reflective lifetime issues by @LeonMatthesKDAB in #88
- Add noexcept specifiers where appropriate by @LeonMatthesKDAB in #91
- Use doxygen-awesome.css instead of doxybook by @dantti in #90
- Follow up on mkdocs deprecation by @LeonMatthesKDAB in #93
- Deploy doxygen docs to GitHub pages by @dantti in #89
- REUSE compliance by @winterz in #94
- cmake-lint and cmake-format the project by @winterz in #95
New Contributors
- @ivan-cukic made their first contribution in #39
- @dantti made their first contribution in #42
- @MiKom made their first contribution in #52
- @winterz made their first contribution in #51
- @phyBrackets made their first contribution in #71
Full Changelog: v1.0.3...v1.1.0