From a07303025a958ae10c7722a417ad8ab231928623 Mon Sep 17 00:00:00 2001 From: Samuel Abels Date: Thu, 12 Jun 2025 17:01:36 +0200 Subject: [PATCH 1/3] 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): From 8b408552de47e2e8d1322ad8394788bd4c68f764 Mon Sep 17 00:00:00 2001 From: Samuel Abels Date: Thu, 12 Jun 2025 17:05:23 +0200 Subject: [PATCH 2/3] CAM: Remove obsolete images --- src/Mod/CAM/CMakeLists.txt | 14 - src/Mod/CAM/Images/Tools/drill.svg | 221 -------------- src/Mod/CAM/Images/Tools/endmill.svg | 401 ------------------------ src/Mod/CAM/Images/Tools/reamer.svg | 433 -------------------------- src/Mod/CAM/Images/Tools/v-bit.svg | 439 --------------------------- 5 files changed, 1508 deletions(-) delete mode 100644 src/Mod/CAM/Images/Tools/drill.svg delete mode 100644 src/Mod/CAM/Images/Tools/endmill.svg delete mode 100644 src/Mod/CAM/Images/Tools/reamer.svg delete mode 100644 src/Mod/CAM/Images/Tools/v-bit.svg diff --git a/src/Mod/CAM/CMakeLists.txt b/src/Mod/CAM/CMakeLists.txt index cd380cd5ab..6ba07c39af 100644 --- a/src/Mod/CAM/CMakeLists.txt +++ b/src/Mod/CAM/CMakeLists.txt @@ -562,15 +562,8 @@ SET(PathImages_Ops Images/Ops/chamfer.svg ) -SET(PathImages_Tools - Images/Tools/drill.svg - Images/Tools/endmill.svg - Images/Tools/v-bit.svg -) - SET(Path_Images ${PathImages_Ops} - ${PathImages_Tools} ) SET(PathData_Threads @@ -963,13 +956,6 @@ INSTALL( Mod/CAM/Images/Ops ) -INSTALL( - FILES - ${PathImages_Tools} - DESTINATION - Mod/CAM/Images/Tools -) - INSTALL( FILES ${PathData_Threads} diff --git a/src/Mod/CAM/Images/Tools/drill.svg b/src/Mod/CAM/Images/Tools/drill.svg deleted file mode 100644 index 5e4a0f177b..0000000000 --- a/src/Mod/CAM/Images/Tools/drill.svg +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - H - D - α - - - - diff --git a/src/Mod/CAM/Images/Tools/endmill.svg b/src/Mod/CAM/Images/Tools/endmill.svg deleted file mode 100644 index 3982fe1c12..0000000000 --- a/src/Mod/CAM/Images/Tools/endmill.svg +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - S - D - H - - - - - - - diff --git a/src/Mod/CAM/Images/Tools/reamer.svg b/src/Mod/CAM/Images/Tools/reamer.svg deleted file mode 100644 index 737600c528..0000000000 --- a/src/Mod/CAM/Images/Tools/reamer.svg +++ /dev/null @@ -1,433 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - D - H - - - - - - - - diff --git a/src/Mod/CAM/Images/Tools/v-bit.svg b/src/Mod/CAM/Images/Tools/v-bit.svg deleted file mode 100644 index d1f4f22e25..0000000000 --- a/src/Mod/CAM/Images/Tools/v-bit.svg +++ /dev/null @@ -1,439 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - S - D - - α - d - - - - - - - - - H - - From 2c39ba622abff846049eef85e9f4858d42f4a966 Mon Sep 17 00:00:00 2001 From: Samuel Abels Date: Thu, 12 Jun 2025 17:41:12 +0200 Subject: [PATCH 3/3] CAM: fix: broken import in tests --- src/Mod/CAM/CAMTests/TestPathToolBitEditorWidget.py | 2 +- src/Mod/CAM/CAMTests/TestPathToolBitPropertyEditorWidget.py | 4 ++-- .../CAM/CAMTests/TestPathToolDocumentObjectEditorWidget.py | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Mod/CAM/CAMTests/TestPathToolBitEditorWidget.py b/src/Mod/CAM/CAMTests/TestPathToolBitEditorWidget.py index f3102bf6c1..dad32fe85c 100644 --- a/src/Mod/CAM/CAMTests/TestPathToolBitEditorWidget.py +++ b/src/Mod/CAM/CAMTests/TestPathToolBitEditorWidget.py @@ -27,7 +27,7 @@ from unittest.mock import MagicMock from Path.Tool.toolbit.ui.editor import ToolBitPropertiesWidget from Path.Tool.toolbit.models.base import ToolBit from Path.Tool.shape.ui.shapewidget import ShapeWidget -from Path.Tool.ui.property import BasePropertyEditorWidget +from Path.Tool.docobject.ui.property import BasePropertyEditorWidget from .PathTestUtils import PathTestWithAssets diff --git a/src/Mod/CAM/CAMTests/TestPathToolBitPropertyEditorWidget.py b/src/Mod/CAM/CAMTests/TestPathToolBitPropertyEditorWidget.py index ba1f02a698..6b9c60207e 100644 --- a/src/Mod/CAM/CAMTests/TestPathToolBitPropertyEditorWidget.py +++ b/src/Mod/CAM/CAMTests/TestPathToolBitPropertyEditorWidget.py @@ -24,7 +24,8 @@ import unittest import FreeCAD -from Path.Tool.ui.property import ( +from Path.Tool.docobject import DetachedDocumentObject +from Path.Tool.docobject.ui.property import ( BasePropertyEditorWidget, QuantityPropertyEditorWidget, BoolPropertyEditorWidget, @@ -32,7 +33,6 @@ from Path.Tool.ui.property import ( EnumPropertyEditorWidget, LabelPropertyEditorWidget, ) -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 49efdf786d..0112c5d385 100644 --- a/src/Mod/CAM/CAMTests/TestPathToolDocumentObjectEditorWidget.py +++ b/src/Mod/CAM/CAMTests/TestPathToolDocumentObjectEditorWidget.py @@ -26,7 +26,9 @@ import unittest from unittest.mock import MagicMock import FreeCAD from PySide import QtGui -from Path.Tool.ui.property import ( +from Path.Tool.docobject import DetachedDocumentObject +from Path.Tool.docobject.ui.docobject import DocumentObjectEditorWidget, _get_label_text +from Path.Tool.docobject.ui.property import ( BasePropertyEditorWidget, QuantityPropertyEditorWidget, BoolPropertyEditorWidget, @@ -34,8 +36,6 @@ from Path.Tool.ui.property import ( EnumPropertyEditorWidget, LabelPropertyEditorWidget, ) -from Path.Tool.docobject import DetachedDocumentObject -from Path.Tool.ui.docobject import DocumentObjectEditorWidget, _get_label_text class TestDocumentObjectEditorWidget(unittest.TestCase):