From aa0a242f4fea3c004b46d29bd3c98675ff2dafca Mon Sep 17 00:00:00 2001 From: Samuel Abels Date: Mon, 26 May 2025 19:04:27 +0200 Subject: [PATCH] CAM: Fix recursionlimit due to invalid overwrite of exec() --- src/Mod/CAM/Path/Tool/assets/ui/filedialog.py | 5 ++--- src/Mod/CAM/Path/Tool/library/ui/editor.py | 4 ++-- src/Mod/CAM/Path/Tool/toolbit/ui/cmd.py | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Mod/CAM/Path/Tool/assets/ui/filedialog.py b/src/Mod/CAM/Path/Tool/assets/ui/filedialog.py index dafbd6777b..c597e7430e 100644 --- a/src/Mod/CAM/Path/Tool/assets/ui/filedialog.py +++ b/src/Mod/CAM/Path/Tool/assets/ui/filedialog.py @@ -42,7 +42,6 @@ class AssetOpenDialog(QFileDialog): super().__init__(parent) self.asset_class = asset_class self.serializers = list(serializers) - self.setWindowTitle("Open an {asset_class.asset_type} file") self.setFileMode(QFileDialog.ExistingFile) filters = make_import_filters(self.serializers) self.setNameFilters(filters) @@ -72,7 +71,7 @@ class AssetOpenDialog(QFileDialog): QMessageBox.critical(self, "Error", f"Failed to import asset: {e}") return None - def exec(self) -> Optional[Tuple[pathlib.Path, Asset]]: + def exec_(self) -> Optional[Tuple[pathlib.Path, Asset]]: if super().exec_(): filenames = self.selectedFiles() if filenames: @@ -125,7 +124,7 @@ class AssetSaveDialog(QFileDialog): QMessageBox.critical(self, "Error", f"Failed to export asset: {e}") return False - def exec(self, asset: Asset) -> Optional[Tuple[pathlib.Path, Type[AssetSerializer]]]: + def exec_(self, asset: Asset) -> Optional[Tuple[pathlib.Path, Type[AssetSerializer]]]: self.setWindowTitle(f"Save {asset.label or self.asset_class.asset_type}") if super().exec_(): selected_filter = self.selectedNameFilter() diff --git a/src/Mod/CAM/Path/Tool/library/ui/editor.py b/src/Mod/CAM/Path/Tool/library/ui/editor.py index 2f71312b5d..d72ee723ee 100644 --- a/src/Mod/CAM/Path/Tool/library/ui/editor.py +++ b/src/Mod/CAM/Path/Tool/library/ui/editor.py @@ -348,7 +348,7 @@ class LibraryEditor(object): # Open the file dialog dialog = AssetOpenDialog(ToolBit, toolbit_serializers, self.form) - dialog_result = dialog.exec() + dialog_result = dialog.exec_() if not dialog_result: return # User canceled or error file_path, toolbit = dialog_result @@ -569,7 +569,7 @@ class LibraryEditor(object): return dialog = AssetSaveDialog(Library, library_serializers, self.form) - dialog_result = dialog.exec(self.current_library) + dialog_result = dialog.exec_(self.current_library) if not dialog_result: return # User canceled or error diff --git a/src/Mod/CAM/Path/Tool/toolbit/ui/cmd.py b/src/Mod/CAM/Path/Tool/toolbit/ui/cmd.py index f4c8808ff3..d1b3254043 100644 --- a/src/Mod/CAM/Path/Tool/toolbit/ui/cmd.py +++ b/src/Mod/CAM/Path/Tool/toolbit/ui/cmd.py @@ -105,7 +105,7 @@ class CommandToolBitSave: toolbit = tool_obj.Proxy dialog = AssetSaveDialog(ToolBit, toolbit_serializers, FreeCADGui.getMainWindow()) - dialog_result = dialog.exec(toolbit) + dialog_result = dialog.exec_(toolbit) if not dialog_result: return