Further fixes of 0000688 in Draft Gui

This commit is contained in:
Yorik van Havre 2012-05-03 13:00:01 -03:00
parent 6e69faa86d
commit e12bc00f9b

View File

@ -150,6 +150,8 @@ class DraftTaskPanel:
FreeCADGui.ActiveDocument.resetEdit()
return True
def reject(self):
FreeCADGui.draftToolBar.isTaskOn = False
FreeCADGui.draftToolBar.escape()
FreeCADGui.ActiveDocument.resetEdit()
return True
@ -169,6 +171,7 @@ class DraftToolBar:
self.paramconstr = Draft.getParam("constructioncolor")>>8
self.constrMode = False
self.continueMode = False
self.relativeMode = True
self.state = None
self.textbuffer = []
self.crossedViews = []
@ -307,7 +310,7 @@ class DraftToolBar:
self.labelRadius = self._label("labelRadius", self.layout)
self.radiusValue = self._lineedit("radiusValue", self.layout, width=60)
self.radiusValue.setText("0.00")
self.isRelative = self._checkbox("isRelative",self.layout,checked=True)
self.isRelative = self._checkbox("isRelative",self.layout,checked=self.relativeMode)
self.hasFill = self._checkbox("hasFill",self.layout,checked=self.fillmode)
self.continueCmd = self._checkbox("continueCmd",self.layout,checked=self.continueMode)
self.occOffset = self._checkbox("occOffset",self.layout,checked=False)
@ -358,6 +361,7 @@ class DraftToolBar:
QtCore.QObject.connect(self.xzButton,QtCore.SIGNAL("clicked()"),self.selectXZ)
QtCore.QObject.connect(self.yzButton,QtCore.SIGNAL("clicked()"),self.selectYZ)
QtCore.QObject.connect(self.continueCmd,QtCore.SIGNAL("stateChanged(int)"),self.setContinue)
QtCore.QObject.connect(self.isRelative,QtCore.SIGNAL("stateChanged(int)"),self.setRelative)
QtCore.QObject.connect(self.hasFill,QtCore.SIGNAL("stateChanged(int)"),self.setFill)
QtCore.QObject.connect(self.currentViewButton,QtCore.SIGNAL("clicked()"),self.selectCurrentView)
QtCore.QObject.connect(self.resetPlaneButton,QtCore.SIGNAL("clicked()"),self.selectResetPlane)
@ -712,7 +716,8 @@ class DraftToolBar:
self.radiusValue.setFocus()
self.radiusValue.selectAll()
def setRelative(self):
def setRelative(self,val=1):
self.relativeMode = bool(val)
if (not self.taskmode) or self.isTaskOn:
self.isRelative.show()
@ -836,9 +841,9 @@ class DraftToolBar:
pass
else:
if self.pointcallback:
self.pointcallback(FreeCAD.Vector(numx,numy,numz),(self.isRelative.isVisible() and self.isRelative.isChecked()))
self.pointcallback(FreeCAD.Vector(numx,numy,numz),self.relativeMode)
else:
if self.isRelative.isVisible() and self.isRelative.isChecked():
if self.relativeMode:
if self.sourceCmd.node:
if self.sourceCmd.featureName == "Rectangle":
last = self.sourceCmd.node[0]
@ -903,6 +908,7 @@ class DraftToolBar:
spec = False
if txt.endsWith(" ") or txt.endsWith("r"):
self.isRelative.setChecked(not self.isRelative.isChecked())
self.relativeMode = self.isRelative.isChecked()
spec = True
elif txt.endsWith("i"):
if self.hasFill.isVisible():
@ -972,44 +978,46 @@ class DraftToolBar:
def displayPoint(self, point, last=None, plane=None, mask=None):
"this function displays the passed coords in the x, y, and z widgets"
# get coords to display
dp = point
if self.isRelative.isChecked() and (last != None):
if plane:
dp = plane.getLocalCoords(FreeCAD.Vector(point.x-last.x, point.y-last.y, point.z-last.z))
if (not self.taskmode) or self.isTaskOn:
# get coords to display
dp = point
if self.relativeMode and (last != None):
if plane:
dp = plane.getLocalCoords(FreeCAD.Vector(point.x-last.x, point.y-last.y, point.z-last.z))
else:
dp = FreeCAD.Vector(point.x-last.x, point.y-last.y, point.z-last.z)
# set widgets
self.xValue.setText("%.2f" % dp.x)
self.yValue.setText("%.2f" % dp.y)
self.zValue.setText("%.2f" % dp.z)
# set masks
if mask == "x":
self.xValue.setEnabled(True)
self.yValue.setEnabled(False)
self.zValue.setEnabled(False)
self.xValue.setFocus()
self.xValue.selectAll()
elif mask == "y":
self.xValue.setEnabled(False)
self.yValue.setEnabled(True)
self.zValue.setEnabled(False)
self.yValue.setFocus()
self.yValue.selectAll()
elif mask == "z":
self.xValue.setEnabled(False)
self.yValue.setEnabled(False)
self.zValue.setEnabled(True)
self.zValue.setFocus()
self.zValue.selectAll()
else:
dp = FreeCAD.Vector(point.x-last.x, point.y-last.y, point.z-last.z)
# set widgets
self.xValue.setText("%.2f" % dp.x)
self.yValue.setText("%.2f" % dp.y)
self.zValue.setText("%.2f" % dp.z)
# set masks
if mask == "x":
self.xValue.setEnabled(True)
self.yValue.setEnabled(False)
self.zValue.setEnabled(False)
self.xValue.setFocus()
self.xValue.selectAll()
elif mask == "y":
self.xValue.setEnabled(False)
self.yValue.setEnabled(True)
self.zValue.setEnabled(False)
self.yValue.setFocus()
self.yValue.selectAll()
elif mask == "z":
self.xValue.setEnabled(False)
self.yValue.setEnabled(False)
self.zValue.setEnabled(True)
self.zValue.setFocus()
self.zValue.selectAll()
else:
self.xValue.setEnabled(True)
self.yValue.setEnabled(True)
self.zValue.setEnabled(True)
self.xValue.setFocus()
self.xValue.selectAll()
self.xValue.setEnabled(True)
self.yValue.setEnabled(True)
self.zValue.setEnabled(True)
self.xValue.setFocus()
self.xValue.selectAll()
def getDefaultColor(self,type,rgb=False):