Merge pull request #4907 from Roy-043/Draft_fix_move_alt_copy_mode

Draft: Fix Draft_Move Alt copy mode
This commit is contained in:
Yorik van Havre
2021-09-02 11:41:07 +02:00
committed by GitHub

View File

@@ -165,7 +165,8 @@ class Move(gui_base_original.Modifier):
else:
last = self.node[0]
self.vector = self.point.sub(last)
self.move()
self.move(self.ui.isCopy.isChecked()
or gui_tool_utils.hasMod(arg, gui_tool_utils.MODALT))
if gui_tool_utils.hasMod(arg, gui_tool_utils.MODALT):
self.extendedCopy = True
else:
@@ -187,17 +188,17 @@ class Move(gui_base_original.Modifier):
or isinstance(subelement, Part.Edge)):
self.ghosts.append(trackers.ghostTracker(subelement))
def move(self):
def move(self, is_copy=False):
"""Perform the move of the subelements or the entire object."""
if self.ui.isSubelementMode.isChecked():
self.move_subelements()
self.move_subelements(is_copy)
else:
self.move_object()
self.move_object(is_copy)
def move_subelements(self):
def move_subelements(self, is_copy):
"""Move the subelements."""
try:
if self.ui.isCopy.isChecked():
if is_copy:
self.commit(translate("draft", "Copy"),
self.build_copy_subelements_command())
else:
@@ -263,7 +264,7 @@ class Move(gui_base_original.Modifier):
command.append('FreeCAD.ActiveDocument.recompute()')
return command
def move_object(self):
def move_object(self, is_copy):
"""Move the object."""
_doc = 'FreeCAD.ActiveDocument.'
_selected = self.selected_objects
@@ -277,12 +278,12 @@ class Move(gui_base_original.Modifier):
_cmd += '('
_cmd += objects + ', '
_cmd += DraftVecUtils.toString(self.vector) + ', '
_cmd += 'copy=' + str(self.ui.isCopy.isChecked())
_cmd += 'copy=' + str(is_copy)
_cmd += ')'
_cmd_list = [_cmd,
'FreeCAD.ActiveDocument.recompute()']
_mode = "Copy" if self.ui.isCopy.isChecked() else "Move"
_mode = "Copy" if is_copy else "Move"
self.commit(translate("draft", _mode),
_cmd_list)
@@ -303,7 +304,7 @@ class Move(gui_base_original.Modifier):
else:
last = self.node[-1]
self.vector = self.point.sub(last)
self.move()
self.move(self.ui.isCopy.isChecked())
self.finish()