Skip to content

Commit

Permalink
Add BezCurve tangent/symmetric buttons to Draft.Edit
Browse files Browse the repository at this point in the history
  • Loading branch information
WandererFan authored and yorikvanhavre committed Feb 23, 2014
1 parent 69b0944 commit e60a77e
Show file tree
Hide file tree
Showing 6 changed files with 1,209 additions and 286 deletions.
44 changes: 40 additions & 4 deletions src/Mod/Draft/DraftGui.py
Expand Up @@ -283,6 +283,8 @@ def setupToolBar(self,task=False):

self.addButton = self._pushbutton("addButton", self.layout, icon="Draft_AddPoint", width=22, checkable=True)
self.delButton = self._pushbutton("delButton", self.layout, icon="Draft_DelPoint", width=22, checkable=True)
self.tangentButton = self._pushbutton("tangentButton", self.layout, icon="Draft_BezTanNode", width=22, checkable=True)
self.symmetricButton = self._pushbutton("symmetricButton", self.layout, icon="Draft_BezSymNode", width=22, checkable=True)

# point

Expand Down Expand Up @@ -371,6 +373,8 @@ def setupToolBar(self,task=False):
QtCore.QObject.connect(self.offsetValue,QtCore.SIGNAL("returnPressed()"),self.validatePoint)
QtCore.QObject.connect(self.addButton,QtCore.SIGNAL("toggled(bool)"),self.setAddMode)
QtCore.QObject.connect(self.delButton,QtCore.SIGNAL("toggled(bool)"),self.setDelMode)
QtCore.QObject.connect(self.tangentButton,QtCore.SIGNAL("toggled(bool)"),self.setTangentMode)
QtCore.QObject.connect(self.symmetricButton,QtCore.SIGNAL("toggled(bool)"),self.setSymmetricMode)
QtCore.QObject.connect(self.finishButton,QtCore.SIGNAL("pressed()"),self.finish)
QtCore.QObject.connect(self.closeButton,QtCore.SIGNAL("pressed()"),self.closeLine)
QtCore.QObject.connect(self.wipeButton,QtCore.SIGNAL("pressed()"),self.wipeLine)
Expand Down Expand Up @@ -445,7 +449,8 @@ def setupTray(self):
def setupStyle(self):
style = "#constrButton:Checked {background-color: "
style += self.getDefaultColor("constr",rgb=True)+" } "
style += "#addButton:Checked, #delButton:checked {"
style += "#addButton:Checked, #delButton:checked, "
style += "#tangentButton:Checked, #symmetricButton:checked {"
style += "background-color: rgb(20,100,250) }"
self.baseWidget.setStyleSheet(style)

Expand Down Expand Up @@ -477,6 +482,8 @@ def retranslateUi(self, widget=None):
self.occOffset.setText(translate("draft", "&OCC-style offset"))
self.addButton.setToolTip(translate("draft", "Add points to the current object"))
self.delButton.setToolTip(translate("draft", "Remove points from the current object"))
self.tangentButton.setToolTip(translate("draft", "Make Bezier node tangent"))
self.symmetricButton.setToolTip(translate("draft", "Make Bezier node symmetric"))
self.undoButton.setText(translate("draft", "&Undo"))
self.undoButton.setToolTip(translate("draft", "Undo the last segment (CTRL+Z)"))
self.closeButton.setText(translate("draft", "&Close"))
Expand Down Expand Up @@ -672,6 +679,8 @@ def offUi(self):
self.finishButton.hide()
self.addButton.hide()
self.delButton.hide()
self.tangentButton.hide()
self.symmetricButton.hide()
self.undoButton.hide()
self.closeButton.hide()
self.wipeButton.hide()
Expand Down Expand Up @@ -792,17 +801,25 @@ def selectUi(self,extra=None,callback=None):
self.labelx.show()
self.makeDumbTask(extra,callback)

def editUi(self):
def editUi(self, mode=None):
self.taskUi(translate("draft", "Edit"))
self.hideXYZ()
self.numFaces.hide()
self.isRelative.hide()
self.hasFill.hide()
self.addButton.show()
self.delButton.show()
if mode == 'BezCurve':
self.tangentButton.show()
self.symmetricButton.show()
self.finishButton.show()
self.closeButton.show()

# always start Edit with buttons unchecked
self.addButton.setChecked(False)
self.delButton.setChecked(False)
self.tangentButton.setChecked(False)
self.symmetricButton.setChecked(False)

def extUi(self):
self.hasFill.show()
self.continueCmd.show()
Expand Down Expand Up @@ -830,6 +847,10 @@ def setEditButtons(self,mode):
self.addButton.setEnabled(mode)
self.delButton.setEnabled(mode)

def setBezEditButtons(self,mode):
self.tangentButton.setEnabled(mode)
self.symmetricButton.setEnabled(mode)

def setNextFocus(self):
def isThere(widget):
if widget.isEnabled() and widget.isVisible():
Expand Down Expand Up @@ -1267,7 +1288,6 @@ def displayPoint(self, point=None, last=None, plane=None, mask=None):
self.zValue.setEnabled(True)
self.xValue.setFocus()
self.xValue.selectAll()


def getDefaultColor(self,type,rgb=False):
"gets color from the preferences or toolbar"
Expand Down Expand Up @@ -1357,10 +1377,26 @@ def popupTriggered(self,action):
def setAddMode(self,bool):
if self.addButton.isChecked():
self.delButton.setChecked(False)
self.symmetricButton.setChecked(False)
self.tangentButton.setChecked(False)

def setDelMode(self,bool):
if self.delButton.isChecked():
self.addButton.setChecked(False)
self.symmetricButton.setChecked(False)
self.tangentButton.setChecked(False)

def setTangentMode(self,bool):
if self.tangentButton.isChecked():
self.symmetricButton.setChecked(False)
self.addButton.setChecked(False)
self.delButton.setChecked(False)

def setSymmetricMode(self,bool):
if self.symmetricButton.isChecked():
self.tangentButton.setChecked(False)
self.addButton.setChecked(False)
self.delButton.setChecked(False)

def setRadiusValue(self,val):
self.radiusValue.setText("%.2f" % val)
Expand Down

0 comments on commit e60a77e

Please sign in to comment.