Releases: NuiCpp/Nui
v1.0.1 Fix builds with CMake 4.0
CMake 4.0 deprecates CMake version 3.5 or lower.
2 Dependencies had this problem portable-file-dialogs and libcpppre.
The former was allowed to continue to build, libcpppre has been replaced with another library living in the NuiCpp Organization.
libcpppre was only used for effectively 1 line of code.
The makeshift function traits impl in Nui has also been removed by the tested, more encompassing alternative.
This also includes a small build time optimization that makes it so that the emscripten target is not configured on every build, when it was configured already. The CONFIGURE_ALWAYS flag as a fallback to get the old behavior in case something unforseen happens by this change / some inproper CMake is used in the frontend/emscripten target.
Updated Emscripten Dropped Ubuntu 20
Updated emscripten to 4.0.4, removed some no longer necessary fixup tools running on windows, because it now works out of the box.
Dropped support for Ubuntu 20
v0.18.5 Added missing header
libc++ reduced transitive includes in C++23.
Added missing header.
v0.18.4 Compatibility with Boost 1.87.0
Merge pull request #130 from NuiCpp/feat/boost-1_87-updates Updated roar revision.
v0.18.3 Update Dependencies
Update underlying dependencies to work with newer boost versions.
v0.18.2 Made some tidy improvements and fixed / improved ScopeExit utility class
v0.18.1 Fixed CMake Build Order Dependencies
Merge pull request #126 from NuiCpp/fix/better-parcel-target Changed parcel target to custom command.
v0.18.0 Rendering Optimization Rework
This is a big one!
Observed vectors and deques rendering is now optimized as originally intended.
- Modifications only ever cause render changes to affected elements.
- Erasures only erase affected elements and dont cause rerenders of existing elements.
- Inserts only insert at given positions and dont cause other elements to be rerendered.
Also added a feature where elements can be created into an element, that is not somewhere in the Nui DOM.
This allows the user to create Elements from C++ and hand them to javascript libraries.
Beware now that indices in the range render function can make the view go out of sync, because indices are not updating due to this important optimization. If you render indices you need to bypass the optimization by calling observed.modify(); // or observed.modifyNow()
v0.17.1 Fixed bug with Custom Event Context
The Observed(EventContext* ctx) constructor could be selected too easily by accident.
This now requires passing an extra parameter.
Added deferred tags
It is sometimes necessary to do things on the element AFTER it was inserted into the dom.
This is now possible with deferred attributes/properties.
Syntax still needs some improvement.
div {
reference.onMaterialize(/*...*/).defer(true)
// or !(class_ = "asdf")
}()
This will become this in an upcoming PR:
div {
!class_ = "asdf"
}()