QgsTerrainEntity: remove whole terrain reload when 3D symbols are updated#65715
QgsTerrainEntity: remove whole terrain reload when 3D symbols are updated#65715benoitdm-oslandia wants to merge 7 commits intoqgis:masterfrom
Conversation
🪟 Windows Qt6 buildsDownload Windows Qt6 builds of this PR for testing. 🍎 MacOS Qt6 buildsDownload MacOS Qt6 builds of this PR for testing. |
77b7992 to
ea389e7
Compare
| connect( layer, &QgsMapLayer::styleChanged, this, &QgsTerrainEntity::onLayerStyleOrFeatureChanged ); | ||
| connect( layer, &QgsMapLayer::repaintRequested, this, &QgsTerrainEntity::onLayerStyleOrFeatureChanged ); |
There was a problem hiding this comment.
Why are both repaintRequested and styleChanged needed?
There was a problem hiding this comment.
This seems right to me as styleChanged and repaintRequested look like they are not part of the same workflow. The slot/signal workflow looks a bit messy to me, I may be wrong!
There was a problem hiding this comment.
Can you explain the case where styleChanged is emitted but repaintRequested is not?
There was a problem hiding this comment.
@nyalldawson @uclaros I keep only repaintRequested?
|
The same logic is used for globe chunked entity and map overlay entity. Should these not be updated to have matching logic? |
Can you point out the code please? |
|
QGIS/src/3d/qgsglobechunkedentity.cpp Lines 545 to 549 in 0cd2815 and QGIS/src/3d/qgsmapoverlayentity.cpp Lines 96 to 100 in 0cd2815 |
Currently, whenever a user opens the 3D style panel, enables the automatic update checkbox, and modifies settings unrelated to terrain, QGIS deletes and redraws all terrain entities. This PR removes the link between layer changes and terrain reloading.