diff --git a/src/Mod/Path/CMakeLists.txt b/src/Mod/Path/CMakeLists.txt
index ef93de68c..1de3dac47 100644
--- a/src/Mod/Path/CMakeLists.txt
+++ b/src/Mod/Path/CMakeLists.txt
@@ -55,7 +55,7 @@ SET(PathScripts_SRCS
PathScripts/PathArray.py
PathScripts/PathCustom.py
PathScripts/PathInspect.py
- PathScripts/PathToolChange.py
+ PathScripts/PathSimpleCopy.py
)
ADD_CUSTOM_TARGET(PathScripts ALL
diff --git a/src/Mod/Path/Gui/Resources/Path.qrc b/src/Mod/Path/Gui/Resources/Path.qrc
index 9140b35b9..9a5c60c0b 100644
--- a/src/Mod/Path/Gui/Resources/Path.qrc
+++ b/src/Mod/Path/Gui/Resources/Path.qrc
@@ -29,5 +29,6 @@
icons/Path-Custom.svgicons/Path-Inspect.svgicons/Path-ToolChange.svg
+ icons/Path-SimpleCopy.svg
diff --git a/src/Mod/Path/Gui/Resources/icons/Path-SimpleCopy.svg b/src/Mod/Path/Gui/Resources/icons/Path-SimpleCopy.svg
new file mode 100644
index 000000000..c2283c40b
--- /dev/null
+++ b/src/Mod/Path/Gui/Resources/icons/Path-SimpleCopy.svg
@@ -0,0 +1,526 @@
+
+
+
+
diff --git a/src/Mod/Path/InitGui.py b/src/Mod/Path/InitGui.py
index cfcec1702..93d8428ea 100644
--- a/src/Mod/Path/InitGui.py
+++ b/src/Mod/Path/InitGui.py
@@ -87,13 +87,14 @@ class PathWorkbench ( Workbench ):
from PathScripts import PathFacePocket
from PathScripts import PathCustom
from PathScripts import PathInspect
+ from PathScripts import PathSimpleCopy
# build commands list
projcmdlist = ["Path_Project", "Path_ToolTableEdit","Path_Post","Path_Inspect"]
prepcmdlist = ["Path_Plane","Path_Fixture","Path_LoadTool","Path_ToolLenOffset","Path_Comment","Path_Stop",
"Path_FaceProfile","Path_FacePocket","Path_Custom","Path_FromShape"]
opcmdlist = ["Path_Profile","Path_Kurve","Path_Pocket","Path_Drilling"]
- modcmdlist = ["Path_Copy","Path_CompoundExtended","Path_Dressup","Path_Hop","Path_Array"]
+ modcmdlist = ["Path_Copy","Path_CompoundExtended","Path_Dressup","Path_Hop","Path_Array","Path_SimpleCopy"]
# Add commands to menu and toolbar
diff --git a/src/Mod/Path/PathScripts/PathInspect.py b/src/Mod/Path/PathScripts/PathInspect.py
index 9ceb76fef..f97ec7c25 100644
--- a/src/Mod/Path/PathScripts/PathInspect.py
+++ b/src/Mod/Path/PathScripts/PathInspect.py
@@ -125,15 +125,20 @@ class GCodeEditorDialog(QtGui.QDialog):
self.editor.setText("G01 X55 Y4.5 F300.0")
self.highlighter = GCodeHighlighter(self.editor.document())
layout.addWidget(self.editor)
-
+
+ # Note
+ lab = QtGui.QLabel()
+ lab.setText(translate("PathInspect","Note: Pressing OK will commit any change you make above to the object, but if the object is parametric, these changes will be overridden on recompute."))
+ lab.setWordWrap(True)
+ layout.addWidget(lab)
+
# OK and Cancel buttons
self.buttons = QtGui.QDialogButtonBox(
- QtGui.QDialogButtonBox.Ok,
- #QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel,
+ QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel,
QtCore.Qt.Horizontal, self)
layout.addWidget(self.buttons)
self.buttons.accepted.connect(self.accept)
- #self.buttons.rejected.connect(self.reject)
+ self.buttons.rejected.connect(self.reject)
def show(obj):
@@ -146,10 +151,13 @@ def show(obj):
dia.editor.setText(obj.Path.toGCode())
result = dia.exec_()
# exec_() returns 0 or 1 depending on the button pressed (Ok or Cancel)
- #if result:
- # return dia.editor.toPlainText()
- #else:
- # return inputstring
+ if result:
+ import Path
+ p = Path.Path(dia.editor.toPlainText())
+ FreeCAD.ActiveDocument.openTransaction("Edit Path")
+ obj.Path = p
+ FreeCAD.ActiveDocument.commitTransaction()
+ FreeCAD.ActiveDocument.recompute()
class CommandPathInspect:
diff --git a/src/Mod/Path/PathScripts/PathSimpleCopy.py b/src/Mod/Path/PathScripts/PathSimpleCopy.py
new file mode 100644
index 000000000..2a087efe2
--- /dev/null
+++ b/src/Mod/Path/PathScripts/PathSimpleCopy.py
@@ -0,0 +1,71 @@
+# -*- coding: utf-8 -*-
+
+#***************************************************************************
+#* *
+#* Copyright (c) 2015 Yorik van Havre *
+#* *
+#* This program is free software; you can redistribute it and/or modify *
+#* it under the terms of the GNU Lesser General Public License (LGPL) *
+#* as published by the Free Software Foundation; either version 2 of *
+#* the License, or (at your option) any later version. *
+#* for detail see the LICENCE text file. *
+#* *
+#* This program is distributed in the hope that it will be useful, *
+#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
+#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+#* GNU Library General Public License for more details. *
+#* *
+#* You should have received a copy of the GNU Library General Public *
+#* License along with this program; if not, write to the Free Software *
+#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
+#* USA *
+#* *
+#***************************************************************************
+
+import FreeCAD,FreeCADGui,Path,PathGui
+from PySide import QtCore,QtGui
+
+"""Path SimpleCopy command"""
+
+# Qt tanslation handling
+try:
+ _encoding = QtGui.QApplication.UnicodeUTF8
+ def translate(context, text, disambig=None):
+ return QtGui.QApplication.translate(context, text, disambig, _encoding)
+except AttributeError:
+ def translate(context, text, disambig=None):
+ return QtGui.QApplication.translate(context, text, disambig)
+
+
+class CommandPathSimpleCopy:
+
+
+ def GetResources(self):
+ return {'Pixmap' : 'Path-SimpleCopy',
+ 'MenuText': QtCore.QT_TRANSLATE_NOOP("Path_SimpleCopy","Simple Copy"),
+ 'Accel': "P, Y",
+ 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Path_SimpleCopy","Creates a non-parametric copy of another path")}
+
+ def IsActive(self):
+ return not FreeCAD.ActiveDocument is None
+
+ def Activated(self):
+ # check that the selection contains exactly what we want
+ selection = FreeCADGui.Selection.getSelection()
+ if len(selection) != 1:
+ FreeCAD.Console.PrintError(translate("Path_SimpleCopy","Please select exactly one path object\n"))
+ return
+ if not(selection[0].isDerivedFrom("Path::Feature")):
+ FreeCAD.Console.PrintError(translate("Path_SimpleCopy","Please select exactly one path object\n"))
+ return
+
+ FreeCAD.ActiveDocument.openTransaction(translate("Path_SimpleCopy","Simple Copy"))
+ FreeCADGui.doCommand('copy = FreeCAD.ActiveDocument.addObject("Path::Feature","'+selection[0].Name+ '_copy")')
+ FreeCADGui.doCommand('copy.Path = FreeCAD.ActiveDocument.'+selection[0].Name+'.Path')
+ FreeCAD.ActiveDocument.commitTransaction()
+ FreeCAD.ActiveDocument.recompute()
+
+
+if FreeCAD.GuiUp:
+ # register the FreeCAD command
+ FreeCADGui.addCommand('Path_SimpleCopy',CommandPathSimpleCopy())