CAM: Fix recursionlimit due to invalid overwrite of exec()

This commit is contained in:
Samuel Abels
2025-05-26 19:04:27 +02:00
parent c5d1a2f6de
commit aa0a242f4f
3 changed files with 5 additions and 6 deletions

View File

@@ -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()

View File

@@ -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

View File

@@ -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