From 07d466e1fb4423f36f1ab0c8b93372efdcd167f7 Mon Sep 17 00:00:00 2001 From: Samuel Abels Date: Thu, 12 Jun 2025 17:01:36 +0200 Subject: [PATCH] CAM: move DetachedDocumentObject into a dedicated module for better reuse --- .../TestPathToolBitPropertyEditorWidget.py | 2 +- .../TestPathToolDocumentObjectEditorWidget.py | 2 +- src/Mod/CAM/CMakeLists.txt | 44 ++++++++++++++----- src/Mod/CAM/Path/Tool/docobject/__init__.py | 3 ++ .../Tool/{ui => docobject/models}/__init__.py | 0 .../models}/docobject.py | 0 .../CAM/Path/Tool/docobject/ui/__init__.py | 3 ++ .../Path/Tool/{ => docobject}/ui/docobject.py | 0 .../Path/Tool/{ => docobject}/ui/property.py | 0 src/Mod/CAM/Path/Tool/toolbit/models/base.py | 4 +- src/Mod/CAM/Path/Tool/toolbit/ui/editor.py | 5 +-- 11 files changed, 46 insertions(+), 17 deletions(-) create mode 100644 src/Mod/CAM/Path/Tool/docobject/__init__.py rename src/Mod/CAM/Path/Tool/{ui => docobject/models}/__init__.py (100%) rename src/Mod/CAM/Path/Tool/{toolbit => docobject/models}/docobject.py (100%) create mode 100644 src/Mod/CAM/Path/Tool/docobject/ui/__init__.py rename src/Mod/CAM/Path/Tool/{ => docobject}/ui/docobject.py (100%) rename src/Mod/CAM/Path/Tool/{ => docobject}/ui/property.py (100%) diff --git a/src/Mod/CAM/CAMTests/TestPathToolBitPropertyEditorWidget.py b/src/Mod/CAM/CAMTests/TestPathToolBitPropertyEditorWidget.py index 1361115a6d..ba1f02a698 100644 --- a/src/Mod/CAM/CAMTests/TestPathToolBitPropertyEditorWidget.py +++ b/src/Mod/CAM/CAMTests/TestPathToolBitPropertyEditorWidget.py @@ -32,7 +32,7 @@ from Path.Tool.ui.property import ( EnumPropertyEditorWidget, LabelPropertyEditorWidget, ) -from Path.Tool.toolbit.docobject import DetachedDocumentObject +from Path.Tool.docobject import DetachedDocumentObject class TestPropertyEditorFactory(unittest.TestCase): diff --git a/src/Mod/CAM/CAMTests/TestPathToolDocumentObjectEditorWidget.py b/src/Mod/CAM/CAMTests/TestPathToolDocumentObjectEditorWidget.py index 22c14625fb..49efdf786d 100644 --- a/src/Mod/CAM/CAMTests/TestPathToolDocumentObjectEditorWidget.py +++ b/src/Mod/CAM/CAMTests/TestPathToolDocumentObjectEditorWidget.py @@ -34,8 +34,8 @@ from Path.Tool.ui.property import ( EnumPropertyEditorWidget, LabelPropertyEditorWidget, ) +from Path.Tool.docobject import DetachedDocumentObject from Path.Tool.ui.docobject import DocumentObjectEditorWidget, _get_label_text -from Path.Tool.toolbit.docobject import DetachedDocumentObject class TestDocumentObjectEditorWidget(unittest.TestCase): diff --git a/src/Mod/CAM/CMakeLists.txt b/src/Mod/CAM/CMakeLists.txt index d9eff68df5..cd380cd5ab 100644 --- a/src/Mod/CAM/CMakeLists.txt +++ b/src/Mod/CAM/CMakeLists.txt @@ -142,20 +142,28 @@ SET(PathPythonToolsAssetsUi_SRCS Path/Tool/assets/ui/util.py ) +SET(PathPythonToolsDocObject_SRCS + Path/Tool/docobject/__init__.py +) + +SET(PathPythonToolsDocObjectModels_SRCS + Path/Tool/docobject/models/__init__.py + Path/Tool/docobject/models/docobject.py +) + +SET(PathPythonToolsDocObjectUi_SRCS + Path/Tool/docobject/ui/__init__.py + Path/Tool/docobject/ui/docobject.py + Path/Tool/docobject/ui/property.py +) + SET(PathPythonToolsGui_SRCS Path/Tool/Gui/__init__.py Path/Tool/Gui/Controller.py ) -SET(PathPythonToolsUi_SRCS - Path/Tool/ui/__init__.py - Path/Tool/ui/docobject.py - Path/Tool/ui/property.py -) - SET(PathPythonToolsToolBit_SRCS Path/Tool/toolbit/__init__.py - Path/Tool/toolbit/docobject.py Path/Tool/toolbit/util.py ) @@ -598,8 +606,10 @@ SET(all_files ${PathPythonToolsAssets_SRCS} ${PathPythonToolsAssetsStore_SRCS} ${PathPythonToolsAssetsUi_SRCS} + ${PathPythonToolsDocObject_SRCS} + ${PathPythonToolsDocObjectModels_SRCS} + ${PathPythonToolsDocObjectUi_SRCS} ${PathPythonToolsGui_SRCS} - ${PathPythonToolsUi_SRCS} ${PathPythonToolsShape_SRCS} ${PathPythonToolsShapeModels_SRCS} ${PathPythonToolsShapeUi_SRCS} @@ -772,9 +782,23 @@ INSTALL( INSTALL( FILES - ${PathPythonToolsUi_SRCS} + ${PathPythonToolsDocObject_SRCS} DESTINATION - Mod/CAM/Path/Tool/ui + Mod/CAM/Path/Tool/docobject +) + +INSTALL( + FILES + ${PathPythonToolsDocObjectModels_SRCS} + DESTINATION + Mod/CAM/Path/Tool/docobject/models +) + +INSTALL( + FILES + ${PathPythonToolsDocObjectUi_SRCS} + DESTINATION + Mod/CAM/Path/Tool/docobject/ui ) INSTALL( diff --git a/src/Mod/CAM/Path/Tool/docobject/__init__.py b/src/Mod/CAM/Path/Tool/docobject/__init__.py new file mode 100644 index 0000000000..34c6eeb233 --- /dev/null +++ b/src/Mod/CAM/Path/Tool/docobject/__init__.py @@ -0,0 +1,3 @@ +from .models.docobject import DetachedDocumentObject + +__all__ = ["DetachedDocumentObject"] diff --git a/src/Mod/CAM/Path/Tool/ui/__init__.py b/src/Mod/CAM/Path/Tool/docobject/models/__init__.py similarity index 100% rename from src/Mod/CAM/Path/Tool/ui/__init__.py rename to src/Mod/CAM/Path/Tool/docobject/models/__init__.py diff --git a/src/Mod/CAM/Path/Tool/toolbit/docobject.py b/src/Mod/CAM/Path/Tool/docobject/models/docobject.py similarity index 100% rename from src/Mod/CAM/Path/Tool/toolbit/docobject.py rename to src/Mod/CAM/Path/Tool/docobject/models/docobject.py diff --git a/src/Mod/CAM/Path/Tool/docobject/ui/__init__.py b/src/Mod/CAM/Path/Tool/docobject/ui/__init__.py new file mode 100644 index 0000000000..cc014a3a35 --- /dev/null +++ b/src/Mod/CAM/Path/Tool/docobject/ui/__init__.py @@ -0,0 +1,3 @@ +from .docobject import DocumentObjectEditorWidget + +__all__ = ["DocumentObjectEditorWidget"] diff --git a/src/Mod/CAM/Path/Tool/ui/docobject.py b/src/Mod/CAM/Path/Tool/docobject/ui/docobject.py similarity index 100% rename from src/Mod/CAM/Path/Tool/ui/docobject.py rename to src/Mod/CAM/Path/Tool/docobject/ui/docobject.py diff --git a/src/Mod/CAM/Path/Tool/ui/property.py b/src/Mod/CAM/Path/Tool/docobject/ui/property.py similarity index 100% rename from src/Mod/CAM/Path/Tool/ui/property.py rename to src/Mod/CAM/Path/Tool/docobject/ui/property.py diff --git a/src/Mod/CAM/Path/Tool/toolbit/models/base.py b/src/Mod/CAM/Path/Tool/toolbit/models/base.py index ec81cf3ccc..6a8d85bd98 100644 --- a/src/Mod/CAM/Path/Tool/toolbit/models/base.py +++ b/src/Mod/CAM/Path/Tool/toolbit/models/base.py @@ -33,10 +33,10 @@ from lazy_loader.lazy_loader import LazyLoader from typing import Any, List, Optional, Tuple, Type, Union, Mapping, cast from PySide.QtCore import QT_TRANSLATE_NOOP from Path.Base.Generator import toolchange -from ...assets import Asset +from ...docobject import DetachedDocumentObject +from ...assets.asset import Asset from ...camassets import cam_assets from ...shape import ToolBitShape, ToolBitShapeCustom, ToolBitShapeIcon -from ..docobject import DetachedDocumentObject from ..util import to_json, format_value diff --git a/src/Mod/CAM/Path/Tool/toolbit/ui/editor.py b/src/Mod/CAM/Path/Tool/toolbit/ui/editor.py index eb4d77065c..ba6f2ab787 100644 --- a/src/Mod/CAM/Path/Tool/toolbit/ui/editor.py +++ b/src/Mod/CAM/Path/Tool/toolbit/ui/editor.py @@ -22,13 +22,12 @@ """Widget for editing a ToolBit object.""" -from functools import partial import FreeCAD import FreeCADGui from PySide import QtGui, QtCore -from ..models.base import ToolBit from ...shape.ui.shapewidget import ShapeWidget -from ...ui.docobject import DocumentObjectEditorWidget +from ...docobject.ui import DocumentObjectEditorWidget +from ..models.base import ToolBit class ToolBitPropertiesWidget(QtGui.QWidget):