PATH: Inspect editor now preserves last size and position

This commit is contained in:
brad
2019-06-08 08:48:20 -05:00
parent 89e18244e3
commit f5495502a5

View File

@@ -27,26 +27,11 @@ import FreeCAD
import FreeCADGui
import Path
# Qt translation handling
def translate(context, text, disambig=None):
return QtCore.QCoreApplication.translate(context, text, disambig)
# class OldHighlighter(QtGui.QSyntaxHighlighter):
# def highlightBlock(self, text):
# myClassFormat = QtGui.QTextCharFormat()
# myClassFormat.setFontWeight(QtGui.QFont.Bold)
# myClassFormat.setForeground(QtCore.Qt.green)
# # the regex pattern to be colored
# pattern = "(G.*?|M.*?)\\s"
# expression = QtCore.QRegExp(pattern)
# index = text.index(expression)
# while index >= 0:
# length = expression.matchedLength()
# setFormat(index, length, myClassFormat)
# index = text.index(expression, index + length)
class GCodeHighlighter(QtGui.QSyntaxHighlighter):
@@ -110,11 +95,11 @@ class GCodeEditorDialog(QtGui.QDialog):
layout = QtGui.QVBoxLayout(self)
p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path")
c = p.GetUnsigned("DefaultHighlightPathColor", 4286382335 )
c = p.GetUnsigned("DefaultHighlightPathColor", 4286382335)
Q = QtGui.QColor(int((c >> 24) & 0xFF), int((c >> 16) & 0xFF), int((c >> 8) & 0xFF))
highlightcolor = (Q.red()/255., Q.green()/255., Q.blue()/255., Q.alpha()/255.)
highlightcolor = (Q.red() / 255., Q.green() / 255., Q.blue() / 255., Q.alpha() / 255.)
self.selectionobj = FreeCAD.ActiveDocument.addObject("Path::Feature","selection")
self.selectionobj = FreeCAD.ActiveDocument.addObject("Path::Feature", "selection")
self.selectionobj.ViewObject.LineWidth = 4
self.selectionobj.ViewObject.NormalColor = highlightcolor
@@ -146,7 +131,20 @@ class GCodeEditorDialog(QtGui.QDialog):
self.editor.selectionChanged.connect(self.highlightpath)
self.finished.connect(self.cleanup)
prefs = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path")
Xpos = int(prefs.GetString('inspecteditorX', "0"))
Ypos = int(prefs.GetString('inspecteditorY', "0"))
height = int(prefs.GetString('inspecteditorH', "500"))
width = int(prefs.GetString('inspecteditorW', "600"))
self.move(Xpos, Ypos)
self.resize(width, height)
def cleanup(self):
prefs = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path")
prefs.SetString('inspecteditorX', str(self.x()))
prefs.SetString('inspecteditorY', str(self.y()))
prefs.SetString('inspecteditorW', str(self.width()))
prefs.SetString('inspecteditorH', str(self.height()))
FreeCAD.ActiveDocument.removeObject(self.selectionobj.Name)
def highlightpath(self):
@@ -160,7 +158,7 @@ class GCodeEditorDialog(QtGui.QDialog):
commands = self.PathObj.Commands
#Derive the starting position for the first selected command
# Derive the starting position for the first selected command
prevX = prevY = prevZ = None
prevcommands = commands[:startrow]
prevcommands.reverse()
@@ -183,11 +181,11 @@ class GCodeEditorDialog(QtGui.QDialog):
if prevZ is None:
prevZ = 0.0
#Build a new path with selection
# Build a new path with selection
p = Path.Path()
firstrapid = Path.Command("G0", {"X": prevX, "Y":prevY, "Z":prevZ})
firstrapid = Path.Command("G0", {"X": prevX, "Y": prevY, "Z": prevZ})
selectionpath = [firstrapid] + commands[startrow:endrow +1]
selectionpath = [firstrapid] + commands[startrow:endrow + 1]
p.Commands = selectionpath
self.selectionobj.Path = p
@@ -231,11 +229,11 @@ class CommandPathInspect:
selection = FreeCADGui.Selection.getSelection()
if len(selection) != 1:
FreeCAD.Console.PrintError(
translate("Path_Inspect", "Please select exactly one path object")+"\n")
translate("Path_Inspect", "Please select exactly one path object") + "\n")
return
if not(selection[0].isDerivedFrom("Path::Feature")):
FreeCAD.Console.PrintError(
translate("Path_Inspect", "Please select exactly one path object")+"\n")
translate("Path_Inspect", "Please select exactly one path object") + "\n")
return
# if everything is ok, execute