FreeCAD
FreeCAD copied to clipboard
Core: Create a SuppressibleExtension to provide the Suppressed property to all the WBs
Many objects can be suppressed, this extension aims to provide a unique visualization in the tree view.
Fix #12361
@wwmayer could you please take a look? ViewProviderSuppressibleExtension::extensionUpdateData is never called.
EDIT: Ok, done. I spent an hour for search and I found when I asked for help :roll_eyes:
Ready for review. I have no possibility to debug MacOS nor Windows build, it certainly lacks one new file's mention in a config.
Back to draft: a crash occurs at object deletion.
Got it. I was confused by
>>> doc=App.ActiveDocument
>>> doc.Body.addExtension('App::SuppressibleExtension')
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: Extension is not a python addable version: 'App::SuppressibleExtension'
But using App::SuppressibleExtensionPython
is ok
>>> doc.Body.addExtension('App::SuppressibleExtensionPython')
>>> doc.Body.ViewObject.addExtension('Gui::ViewProviderSuppressibleExtensionPython')
>>>
In how far is this related to https://github.com/FreeCAD/FreeCAD/issues/5545? Original ticket in Mantis: https://tracker.freecad.org/view.php?id=402 Forum thread: https://forum.freecad.org/viewtopic.php?t=1070
@wwmayer I don't think a Suppressed object aims to be a Emancipated one (cut from parents).
I've added a Suppress/Unsuppress action in the tree context menu. This action is only shown if the Suppressed property of the object is not hidden so the action visibility is managed at workbench level. See https://github.com/FlachyJoe/FreeCAD/blob/7b90aea42915c87eaa643c96fe0758b17727a1e6/src/Mod/PartDesign/App/Feature.cpp#L63
App::SuppressibleExtension::initExtension(this);
Suppressed.setStatus(App::Property::Status::Hidden, true); //Todo: remove when TNP fixed
Master does not build (Windows/libpack/visual studio) today. Coming from this PR.
Severity Code Description Project File Line Suppression State Error C2027 use of undefined type 'Gui::Document' FreeCADGui C:\Users\Sky_l\Desktop\Freecad-Src\src\Gui\ViewProviderSuppressibleExtension.cpp 59 Error C2039 'ActionFunction': is not a member of 'Gui' FreeCADGui C:\Users\Sky_l\Desktop\Freecad-Src\src\Gui\ViewProviderSuppressibleExtension.cpp 110 Error C2065 'ActionFunction': undeclared identifier FreeCADGui C:\Users\Sky_l\Desktop\Freecad-Src\src\Gui\ViewProviderSuppressibleExtension.cpp 110 Error C2065 'func': undeclared identifier FreeCADGui C:\Users\Sky_l\Desktop\Freecad-Src\src\Gui\ViewProviderSuppressibleExtension.cpp 110 Error C2039 'ActionFunction': is not a member of 'Gui' FreeCADGui C:\Users\Sky_l\Desktop\Freecad-Src\src\Gui\ViewProviderSuppressibleExtension.cpp 110 Error C2061 syntax error: identifier 'ActionFunction' FreeCADGui C:\Users\Sky_l\Desktop\Freecad-Src\src\Gui\ViewProviderSuppressibleExtension.cpp 110 Error C2065 'func': undeclared identifier FreeCADGui C:\Users\Sky_l\Desktop\Freecad-Src\src\Gui\ViewProviderSuppressibleExtension.cpp 117 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderPrimitive.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderMirror.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderPython.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderBoolean.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderRuledSurface.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderImport.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderExtrusion.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderScale.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProvider2DObject.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderRegularPolygon.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderTorusParametric.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderCurveNet.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderSpline.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderSphereParametric.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderCylinderParametric.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderConeParametric.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderPrism.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderPointParametric.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderEllipseParametric.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderHelixParametric.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderPlaneParametric.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderBox.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderCompound.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderCircleParametric.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderLineParametric.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\CrossSections.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProvider.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderExt.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) PartGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Part\Gui\ViewProviderReference.obj 1 Error LNK1120 1 unresolved externals PartGui C:\Users\Sky_l\Desktop\FC build\Mod\Part\PartGui.pyd 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) SketcherGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Sketcher\Gui\ViewProviderSketch.obj 1 Error LNK2001 unresolved external symbol "public: virtual bool __cdecl Gui::ViewProvider::acceptReorderingObjects(void)const " (?acceptReorderingObjects@ViewProvider@Gui@@UEBA_NXZ) SketcherGui C:\Users\Sky_l\Desktop\FC build\src\Mod\Sketcher\Gui\ViewProviderPython.obj 1
Thank you @PaddleStroke for the fix. Isn't the CI supposed to fail before the merge?
The CI is not using the precompiled headers. This is something that is being discussed with @adrianinsaval and @chennes if I recall correctly
@FlachyJoe Is it still in development ? I can't find the Suppress option in Properties or in the tree context menu in Part Design.
OS: Windows 10 build 19045
Word size of FreeCAD: 64-bit
Version: 0.22.0dev.36277 (Git)
Build type: Release
Branch: main
Hash: 9e1903d46112b3660bf10c6a4537d728101d560b
Python 3.10.13, Qt 5.15.8, Coin 4.0.2, Vtk 9.2.6, OCC 7.6.3
Locale: Polish/Poland (pl_PL)
@FEA-eng in PD the Suppress property is hidden (right-click, show all) until the TNP fix is merged due to the problems it can produce in shapes hierarchy.