paintera-0.21.0
Paintera 0.21.0
Previous release: 0.20.1
Changelog
New Features
- Update imglib2-cache dependency to use
Invalidate
interface instead and remove Paintera'sInvalidateAll
andInvalidate
interfaces (#316) - Remove global cache and rely on imglib2-caches only (#316)
Bug Fixes
- clean-up masked source resources (#309) (#316)
- Error message was confusing when paintera failed to deserialize project (#338). Print more helpful error message instead. (#339)
- Filter-not-null label state preference pane nodes (#341)
- Mesh resources would not be freed when not being used anymore (#337). An anonymous/lambda listener was the culprit. Explicilty naming and unbinding after use solved the problem. (#340)
Pull Requests
#316
Merge pull request #316 from saalfeldlab/remove-global-cache
[BUGFIX] clean-up masked source resources (#309)
[FEATURE] Update imglib2-cache dependency to use Invalidate
interface instead and remove Paintera's InvalidateAll
and Invalidate
interfaces
[FEATURE] Remove global cache and rely on imglib2-caches only
#339
Merge pull request #339 from saalfeldlab/improve-max-id-error-message
[BUGFIX] Error message was confusing when paintera failed to deserialize project (#338). Print more helpful error message instead.
#341
Merge pull request #341 from saalfeldlab/ignore-preference-nodes-if-null
[BUGFIX] Filter-not-null label state preference pane nodes
Adding a state pane for label sources would fail if no masked source was provided because MaskedSourceNode.node
would return null
and VBox
cannot have null
children.
#340
Merge pull request #340 from saalfeldlab/fix-337
[BUGFIX] Mesh resources would not be freed when not being used anymore (#337). A anonymous/lambda listener was the culprit. Explicilty naming and unbinding after use solved the problem.
- Release MeshGenerator resources when disposed
Fixes #337
Before this commit, a listener would be added to the isManagedProperty
of the meshSettings
to update the MeshGenerator
with appropriate global or individual MeshSettings
. For some reason, this kept the internal JavaFX classes NGMeshView
and MeshView
alive, prohibiting clean-up of their resources, and, as a result, leaking memory. This commit fixes this issue by adding a meshSettingsProperty
to the MeshGenerator
that the caller can unbind
to remove the listener that holds on to the MeshManager
's resources.
-
Set manager mesh settings to null and simplify removeAll
-
Revert back to unbinding mesh settings on separate thread
After @igorpisarev pointed out (and I confirmed) that unbinding is slow for a large number of selected meshes (e.g. select all on CREMI A), I had to revert the previous changes. I added a new single threaded executor to avoid creating new threads each time and inverted the call chain to avoid code duplication.