Solve plugin destruction crash by avoiding Qt double deletion #238
Merged
ThomasKroes merged 1 commit intomasterfrom Mar 4, 2026
Merged
Solve plugin destruction crash by avoiding Qt double deletion #238ThomasKroes merged 1 commit intomasterfrom
ThomasKroes merged 1 commit intomasterfrom
Conversation
Convert SettingsAction and HorizontalToolbarAction members to QPointer types and create them with new, updating construction and all call sites accordingly. Update ScatterplotPlugin::getSettingsAction() to return a reference to the dereferenced QPointer. Replace direct member accesses with pointer-style (->) calls and adjust several call sites to obtain SettingsAction via dynamic_cast from parent()/parent()->parent() where appropriate (DatasetsAction, DensityPlotAction). Miscellaneous fixes: update toolbar widget creation, parent assignment, and serialization calls to use the new pointer members; small formatting and reference adjustments throughout impacted files.
alxvth
approved these changes
Mar 4, 2026
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.
This pull request refactors how
SettingsActionandHorizontalToolbarActionare managed withinScatterplotPluginand related classes. The main change is converting these from value members to pointer members, which requires updating how they are accessed throughout the codebase. Additionally, there are updates to how parent-child relationships are handled for these actions, and several instances now usedynamic_castto retrieve the correct parent action. These changes improve object lifetime management and align with Qt best practices.Key changes include:
Refactoring to Pointer Members:
_settingsActionand_primaryToolbarActioninScatterplotPluginfrom value members to pointer members, updating all usages to use pointer syntax (->instead of.). [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19]Parent/Child Relationship and Action Access:
dynamic_castto retrieveSettingsAction*from the parent where appropriate, improving type safety and clarity. [1] [2] [3] [4]These changes modernize the code and reduce the risk of object slicing or lifetime issues, making the codebase more robust and maintainable.