Since Py3.11 the methods names __setstate__ and __getstate__ conflict with the method names added to the object class.
Thus rename them to 'loads' and 'dumps'
...a sometimes null object with an error
Python code, file `src/Mod/Part/CompoundTools/Explode.py`
The `explodeCompound` function can be called in a context without assigning the `ViewObject` property, for example from a command line script.
The error that is fixed by this patch.
```
Traceback (most recent call last):
...
File "/opt/freecad/Mod/Part/CompoundTools/Explode.py", line 23, in explodeCompound
cf.ViewObject.DontUnhideOnDelete = True
AttributeError: 'NoneType' object has no attribute 'DontUnhideOnDelete']
```
Patch submitted by marioamb.
Fix#004421https://tracker.freecadweb.org/view.php?id=4421
The previous icon did not follow the general style and colors
of other icons in the workbench.
If there is no `Stencil` in the `CompoundFilter` object, raise
a `ValueError` exception when the `FilterType` is `'collision-pass'`
or `'window-distance'`.
Raise an exception when `items` is empty, or has a malformed string,
when `Filtertype` is `'specific items'`.
Fix the `getNullShapeShape` function to return a simple
`Part.Shape`, so that there is no error raised if `_nullShapeShape`
doesn't exist. This function doesn't work at all. It was probably
a prototype which was never fully developed; it may be removed
completely in the future.
The docstrings for the commands `CompoundFilter` and `ExplodeCompound`
were revised.
Clean up the spacing of the code so that lines aren't very long.
The path to the icons is added to `AppPartGui.cpp`
using `Gui::BitmapFactory().addPath()`, so the icons are found
automatically in their new directories.