Skip to content

Improve QGIS 4 / Qt6 compatibility and harden raster editing workflow - #54

Open
Gjanosh61 wants to merge 1 commit into
lutraconsulting:masterfrom
Gjanosh61:master
Open

Gjanosh61 wants to merge 1 commit into
lutraconsulting:masterfrom
Gjanosh61:master

Conversation

@Gjanosh61

Copy link
Copy Markdown

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

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
@Amalvir

Amalvir commented Jun 23, 2026

Copy link
Copy Markdown

Hi,
Any chance that this pr will be merged to main soon ?

@Gjanosh61

Copy link
Copy Markdown
Author

Unfortunately... we haven't had any response yet. If you'd like, you can test the build in my repository and provide feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants