feat(sdk): panel provider system (IPanelProvider) #352
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Addons register dock panel factories via C++ interface with PySide widget bridging.
New files
src/Gui/SDK/IPanelProvider.h— Abstract interface:id(),title(),create_widget()(pure virtual);preferred_area(),persistence(),context_affinity()(defaults)src/Gui/SDK/WidgetBridge.h/.cpp— PySide QWidget <-> C++ QWidget* conversion viaGui::PythonWrappersrc/Gui/SDK/bindings/PyIPanelProvider.h— Trampoline classsrc/Gui/SDK/bindings/PyProviderHolder.h— GIL-safe forwarding wrapperModified files
src/Gui/SDK/Types.h— AddDockArea,PanelPersistenceenumssrc/Gui/SDK/SDKRegistry.h/.cpp— Addregister_panel(),unregister_panel(),create_panel()src/Gui/SDK/bindings/kcsdk_py.cpp— BindIPanelProviderwith trampolinemods/sdk/kindred_sdk/dock.py— Rewrite to usekcsdk.register_panel()Depends on #350. Part of the KCSDK epic (#346). Phase 3 of 8.