From 5d04562e0e7f28cff0c21175064cf939dfcf49ff Mon Sep 17 00:00:00 2001 From: Roy-043 Date: Sat, 3 Feb 2024 19:38:00 +0100 Subject: [PATCH 1/2] Draft: Fix messages that only worked for objects supplied as strings Some error messages would only work if objects were supplied as strings. These would fail if objects were passed (as objects) that had already been deleted. --- src/Mod/Draft/draftmake/make_circulararray.py | 8 ++------ src/Mod/Draft/draftmake/make_dimension.py | 12 +++-------- src/Mod/Draft/draftmake/make_label.py | 19 +++++++----------- src/Mod/Draft/draftmake/make_orthoarray.py | 12 +++-------- src/Mod/Draft/draftmake/make_patharray.py | 20 ++++--------------- src/Mod/Draft/draftmake/make_pointarray.py | 10 ++-------- src/Mod/Draft/draftmake/make_polararray.py | 8 ++------ 7 files changed, 23 insertions(+), 66 deletions(-) diff --git a/src/Mod/Draft/draftmake/make_circulararray.py b/src/Mod/Draft/draftmake/make_circulararray.py index b70fc3d998..0e105c6c2f 100644 --- a/src/Mod/Draft/draftmake/make_circulararray.py +++ b/src/Mod/Draft/draftmake/make_circulararray.py @@ -120,13 +120,9 @@ def make_circular_array(base_object, """ _name = "make_circular_array" - if isinstance(base_object, str): - base_object_str = base_object - - found, base_object = utils.find_object(base_object, - doc=App.activeDocument()) + found, base_object = utils.find_object(base_object, doc=App.activeDocument()) if not found: - _err(translate("draft","Wrong input: base_object {} not in document.").format(base_object_str)) + _err(translate("draft","Wrong input: base_object not in document.")) return None try: diff --git a/src/Mod/Draft/draftmake/make_dimension.py b/src/Mod/Draft/draftmake/make_dimension.py index d144a81aac..b3a3030b29 100644 --- a/src/Mod/Draft/draftmake/make_dimension.py +++ b/src/Mod/Draft/draftmake/make_dimension.py @@ -301,16 +301,13 @@ def make_linear_dimension_obj(edge_object, i1=1, i2=2, dim_line=None): _err(translate("draft","No active document. Aborting.")) return None - if isinstance(edge_object, str): - edge_object_str = edge_object - if isinstance(edge_object, (list, tuple)): - _err(translate("draft","Wrong input: edge_object {} must not be a list or tuple.").format(edge_object)) + _err(translate("draft","Wrong input: edge_object must not be a list or tuple.")) return None found, edge_object = utils.find_object(edge_object, doc) if not found: - _err(translate("draft","Wrong input: edge_object {} not in document.").format(edge_object_str)) + _err(translate("draft","Wrong input: edge_object not in document.")) return None if not hasattr(edge_object, "Shape"): @@ -424,12 +421,9 @@ def make_radial_dimension_obj(edge_object, index=1, mode="radius", _err(translate("draft","No active document. Aborting.")) return None - if isinstance(edge_object, str): - edge_object_str = edge_object - found, edge_object = utils.find_object(edge_object, doc) if not found: - _err(translate("draft","Wrong input: edge_object {} not in document.").format(edge_object_str)) + _err(translate("draft","Wrong input: edge_object not in document.")) return None if not hasattr(edge_object, "Shape"): diff --git a/src/Mod/Draft/draftmake/make_label.py b/src/Mod/Draft/draftmake/make_label.py index b26678de50..abadeab1a3 100644 --- a/src/Mod/Draft/draftmake/make_label.py +++ b/src/Mod/Draft/draftmake/make_label.py @@ -218,19 +218,14 @@ def make_label(target_point=App.Vector(0, 0, 0), elif isinstance(placement, App.Rotation): placement = App.Placement(App.Vector(), placement) - if isinstance(target_object, str): - target_object_str = target_object - - if target_object: - if isinstance(target_object, (list, tuple)): - _err(translate("draft","Wrong input: target_object {} must not be a list.").format(target_object)) - return None - - found, target_object = utils.find_object(target_object, doc) - if not found: - _err(translate("draft","Wrong input: target_object {} not in document.").format(target_object_str)) - return None + if isinstance(target_object, (list, tuple)): + _err(translate("draft","Wrong input: target_object must not be a list.")) + return None + found, target_object = utils.find_object(target_object, doc) + if not found: + _err(translate("draft","Wrong input: target_object not in document.")) + return None if target_object and subelements: try: diff --git a/src/Mod/Draft/draftmake/make_orthoarray.py b/src/Mod/Draft/draftmake/make_orthoarray.py index 8ec17e14f5..f60085f8e7 100644 --- a/src/Mod/Draft/draftmake/make_orthoarray.py +++ b/src/Mod/Draft/draftmake/make_orthoarray.py @@ -140,17 +140,11 @@ def _are_numbers(d_x, d_y, d_z=None, name="Unknown"): def _find_object_in_doc(base_object, doc=None): """Check that a document is available and the object exists.""" - FOUND = True - if isinstance(base_object, str): - base_object_str = base_object - - found, base_object = utils.find_object(base_object, - doc=doc) + found, base_object = utils.find_object(base_object, doc=doc) if not found: - _err(translate("draft","Wrong input: base_object {} not in document.").format(base_object_str)) - return not FOUND, base_object + _err(translate("draft","Wrong input: base_object not in document.")) - return FOUND, base_object + return found, base_object def make_ortho_array(base_object, diff --git a/src/Mod/Draft/draftmake/make_patharray.py b/src/Mod/Draft/draftmake/make_patharray.py index 23b1192a31..2d86d09933 100644 --- a/src/Mod/Draft/draftmake/make_patharray.py +++ b/src/Mod/Draft/draftmake/make_patharray.py @@ -170,20 +170,14 @@ def make_path_array(base_object, path_object, count=4, _err(translate("draft","No active document. Aborting.")) return None - if isinstance(base_object, str): - base_object_str = base_object - found, base_object = utils.find_object(base_object, doc) if not found: - _err(translate("draft","Wrong input: base_object {} not in document.").format(base_object_str)) + _err(translate("draft","Wrong input: base_object not in document.")) return None - if isinstance(path_object, str): - path_object_str = path_object - found, path_object = utils.find_object(path_object, doc) if not found: - _err(translate("draft","Wrong input: path_object not in document.").format(path_object_str)) + _err(translate("draft","Wrong input: path_object not in document.")) return None try: @@ -338,20 +332,14 @@ def make_path_twisted_array(base_object, path_object, _err(translate("draft","No active document. Aborting.")) return None - if isinstance(base_object, str): - base_object_str = base_object - found, base_object = utils.find_object(base_object, doc) if not found: - _err(translate("draft","Wrong input: base_object not in document.").format(base_object_str)) + _err(translate("draft","Wrong input: base_object not in document.")) return None - if isinstance(path_object, str): - path_object_str = path_object - found, path_object = utils.find_object(path_object, doc) if not found: - _err(translate("draft","Wrong input: path_object not in document.").format(path_object_str)) + _err(translate("draft","Wrong input: path_object not in document.")) return None try: utils.type_check([(count, (int, float))], diff --git a/src/Mod/Draft/draftmake/make_pointarray.py b/src/Mod/Draft/draftmake/make_pointarray.py index 974b1d0c22..a519305ff9 100644 --- a/src/Mod/Draft/draftmake/make_pointarray.py +++ b/src/Mod/Draft/draftmake/make_pointarray.py @@ -90,20 +90,14 @@ def make_point_array(base_object, point_object, extra=None, use_link=True): _err(translate("draft", "No active document. Aborting.")) return None - if isinstance(base_object, str): - base_object_str = base_object - found, base_object = utils.find_object(base_object, doc) if not found: - _err(translate("draft", "Wrong input: base_object {} not in document.").format(base_object_str)) + _err(translate("draft", "Wrong input: base_object not in document.")) return None - if isinstance(point_object, str): - point_object_str = point_object - found, point_object = utils.find_object(point_object, doc) if not found: - _err(translate("draft", "Wrong input: point_object {} not in document.").format(point_object_str)) + _err(translate("draft", "Wrong input: point_object not in document.")) return None if not ((hasattr(point_object, "Shape") and hasattr(point_object.Shape, "Vertexes")) diff --git a/src/Mod/Draft/draftmake/make_polararray.py b/src/Mod/Draft/draftmake/make_polararray.py index ec02ef6d56..c4e561567e 100644 --- a/src/Mod/Draft/draftmake/make_polararray.py +++ b/src/Mod/Draft/draftmake/make_polararray.py @@ -92,13 +92,9 @@ def make_polar_array(base_object, """ _name = "make_polar_array" - if isinstance(base_object, str): - base_object_str = base_object - - found, base_object = utils.find_object(base_object, - doc=App.activeDocument()) + found, base_object = utils.find_object(base_object, doc=App.activeDocument()) if not found: - _err(translate("draft","Wrong input: base_object {} not in document.").format(base_object_str)) + _err(translate("draft","Wrong input: base_object not in document.")) return None try: From 63f01ad5087030f796a3b0e3f9c1bf248ebe1d1a Mon Sep 17 00:00:00 2001 From: Roy-043 Date: Sun, 4 Feb 2024 09:50:45 +0100 Subject: [PATCH 2/2] Removed too much in make_label.py --- src/Mod/Draft/draftmake/make_label.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/Mod/Draft/draftmake/make_label.py b/src/Mod/Draft/draftmake/make_label.py index abadeab1a3..1a223b18e4 100644 --- a/src/Mod/Draft/draftmake/make_label.py +++ b/src/Mod/Draft/draftmake/make_label.py @@ -217,15 +217,16 @@ def make_label(target_point=App.Vector(0, 0, 0), placement = App.Placement(placement, App.Rotation()) elif isinstance(placement, App.Rotation): placement = App.Placement(App.Vector(), placement) + + if target_object: + if isinstance(target_object, (list, tuple)): + _err(translate("draft","Wrong input: target_object must not be a list.")) + return None - if isinstance(target_object, (list, tuple)): - _err(translate("draft","Wrong input: target_object must not be a list.")) - return None - - found, target_object = utils.find_object(target_object, doc) - if not found: - _err(translate("draft","Wrong input: target_object not in document.")) - return None + found, target_object = utils.find_object(target_object, doc) + if not found: + _err(translate("draft","Wrong input: target_object not in document.")) + return None if target_object and subelements: try: