Inside TaskDialogPython::clearForm() the interpreter may execute a lot of things where at the some point the GIL must be hold.
This very likely fixes https://github.com/FreeCAD/FreeCAD/issues/22863
@thyssentishman
Please check this branch
Simple fix for such a simple error I didn't see. Basically,
`valueChanged` signal can result in EditableDatumLabel being deleted
(for example, when we are on the last OVP and all of the OVPs have been
accepted). This could result in crashes as reported in previous issues,
because just after emitting this signal we were trying to use `this` pointer,
which wasn't available anymore as we deleted EditableDatumLabel obj that
was attached to it, so in essence we were dereferencing some random
address.
Fix for that is simple - move the check for `hasFinishedEditing` flag to
check locked appearance in `validateAndFinish` lambda, as it already
does validation and this way we will avoid referencing internals (which
could be deallocated) after emitting this signal.
This changes the resolve method of style parameter manager to return
optional intead of definitive result. In reality tokens may not be
defioned correctly and optionals provide a good way to nicely handle
defaults.
This change gives a better name to the parameter type that is used to
store numeric values. Before it was called length, but it can store
other quantities as well so the name is no longer fitting.
If possible we should prefer using our own classess instead of ones
coming from frameworks. This changes Style Parameters to use Base::Color
class instead of QColor. Calculations are still done using QColor but
the data is always exposed as Base::Color.
* Core: Fix Expression dialog outhanging main window
Expression dialog is now fully shown inside main window, even if opened from model panel positioned on right side. If Model panel is outside main window, dialog is opened over this panel.
* Core: Fix Vectors dialog outhanging main window
Vectors dialog is now fully shown inside main window, even if opened from model panel positioned on right side. If Model panel is outside main window, dialog is opened over this panel.
* Core: Simplify 'adjustDialogPosition()'
Change suggested and authored by @hyarion
Merge of a4d4a8e7d6 accidentally didn't drop change to DlgAbout path.
Nothing sets AboutImageDev congfig key, so partially revert said commit.
Fixes: a4d4a8e7d6 ("Gui: Add about image for dev version")
* Update QComboBox and QListView styles
Fixed issue with Varset dialog which was using the same object as the workbench combobox. So I directed the general version to the workbench combobox and changed the general setting to more normal version.
* Update selected item background in QListView
Changed the background color for selected QListView items from @AccentBackgroundHoverColor to @GeneralBackgroundHoverColor for improved visual consistency.
* Unify selection and hover styles in views
Updated QListView, QTableView, QTreeView, and QColumnView item selection to use @AccentBackgroundColor for consistency. Changed hover states for these views to use @AccentHoverColor, improving visual coherence across the UI.
* shouldn't be in there yellow