Conversation
Summary of Improvements Improved compatibility and robustness between QGIS 3 / QGIS 4 and Qt5 / Qt6 with various code adjustments and updated metadata up to qgisMaximumVersion=4.99. Defensive refactoring of the core plugin (serval.py) with systematic checks for optional objects (raster, handler, spin_boxes, project, undo/redo cache), reducing potential crashes and Pylance static warnings. Cleaner raster state management, with consistent resetting of handlers, bounds, and CRS transformations when the active layer changes or is not supported. Consolidated undo/redo, with safer raster changemap management and correct cleanup in unload(). The logic of the RasterChange / RasterChanges classes remains simple and uncluttered. Correct and consistent spatial index caching per layer, using dedicated structures for layer_id -> creation time and layer_id -> QgsSpatialIndex, avoiding inconsistencies when working with multiple layers. More robust raster selection tools, with improved handling of temporary/invalid geometry during interactive drawing and cleaner map tool resets. Improved multiband handling, with BandBoxes more tolerant of missing/NoData values and spinboxes recreated more safely when bands or raster types change. Improved NoData handling, both UI and handler-side, including more robust handling of source and user-defined NoData values. Greater stability of expressive functions and geometric operations (nearest features, averaging attributes on intersecting features, interpolation from lines and meshes), with additional controls for layers, geometries, and intermediate results. Improved the resilience of the raster editing workflow in RasterHandler, with checks on blocks, temporary layers, selected cells, expressed values, and raster types before writing. Update metadata: bump version to 3.33.0 and refresh changelog This pull request updates the plugin metadata to version 3.33.0 and refreshes the changelog accordingly. Changes included: - Updated `version` field to 3.33.0 - Updated Qt5 / Qt6 compatibility notes - Added and reorganized changelog entries for recent releases - Ensured metadata formatting and indentation are consistent
|
Hi, |
Author
|
Unfortunately... we haven't had any response yet. If you'd like, you can test the build in my repository and provide feedback. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary of Improvements
Improved compatibility and robustness between QGIS 3 / QGIS 4 and Qt5 / Qt6 with various code adjustments and updated metadata up to qgisMaximumVersion=4.99.
Defensive refactoring of the core plugin (serval.py) with systematic checks for optional objects (raster, handler, spin_boxes, project, undo/redo cache), reducing potential crashes and Pylance static warnings.
Cleaner raster state management, with consistent resetting of handlers, bounds, and CRS transformations when the active layer changes or is not supported.
Consolidated undo/redo, with safer raster changemap management and correct cleanup in unload(). The logic of the RasterChange / RasterChanges classes remains simple and uncluttered.
Correct and consistent spatial index caching per layer, using dedicated structures for layer_id -> creation time and layer_id -> QgsSpatialIndex, avoiding inconsistencies when working with multiple layers.
More robust raster selection tools, with improved handling of temporary/invalid geometry during interactive drawing and cleaner map tool resets.
Improved multiband handling, with BandBoxes more tolerant of missing/NoData values and spinboxes recreated more safely when bands or raster types change.
Improved NoData handling, both UI and handler-side, including more robust handling of source and user-defined NoData values.
Greater stability of expressive functions and geometric operations (nearest features, averaging attributes on intersecting features, interpolation from lines and meshes), with additional controls for layers, geometries, and intermediate results.
Improved the resilience of the raster editing workflow in RasterHandler, with checks on blocks, temporary layers, selected cells, expressed values, and raster types before writing.
Update metadata: bump version to 3.33.0 and refresh changelog
This pull request updates the plugin metadata to version 3.33.0 and refreshes the changelog accordingly.
Changes included:
versionfield to 3.33.0