Arch: allow to toggle nodes on/off when editing structures - issue #2356

This commit is contained in:
Yorik van Havre 2016-10-10 11:45:07 -03:00
parent f8bb9ec90f
commit 413ce83d00

View File

@ -658,9 +658,17 @@ class StructureTaskPanel(ArchComponent.ComponentTaskPanel):
lay.addWidget(self.connectButton) lay.addWidget(self.connectButton)
QtCore.QObject.connect(self.connectButton, QtCore.SIGNAL("clicked()"), self.connectNodes) QtCore.QObject.connect(self.connectButton, QtCore.SIGNAL("clicked()"), self.connectNodes)
self.toggleButton = QtGui.QPushButton(self.optwid)
self.toggleButton.setIcon(QtGui.QIcon(":/icons/dagViewVisible.svg"))
self.toggleButton.setText(QtGui.QApplication.translate("Arch", "Toggle all nodes", None, QtGui.QApplication.UnicodeUTF8))
self.toggleButton.setToolTip(QtGui.QApplication.translate("Arch", "Toggles all structural nodes of the document on/off", None, QtGui.QApplication.UnicodeUTF8))
lay.addWidget(self.toggleButton)
QtCore.QObject.connect(self.toggleButton, QtCore.SIGNAL("clicked()"), self.toggleNodes)
self.form = [self.form,self.optwid] self.form = [self.form,self.optwid]
self.Object = obj self.Object = obj
self.observer = None self.observer = None
self.nodevis = None
def editNodes(self): def editNodes(self):
FreeCADGui.Control.closeDialog() FreeCADGui.Control.closeDialog()
@ -735,9 +743,23 @@ class StructureTaskPanel(ArchComponent.ComponentTaskPanel):
else: else:
other.Nodes = [other.Nodes[0],other.Placement.inverse().multVec(intersect)] other.Nodes = [other.Nodes[0],other.Placement.inverse().multVec(intersect)]
def toggleNodes(self):
if self.nodevis:
for obj in self.nodevis:
obj[0].ViewObject.ShowNodes = obj[1]
self.nodevis = None
else:
self.nodevis = []
for obj in FreeCAD.ActiveDocument.Objects:
if hasattr(obj.ViewObject,"ShowNodes"):
self.nodevis.append([obj,obj.ViewObject.ShowNodes])
obj.ViewObject.ShowNodes = True
def accept(self): def accept(self):
if self.observer: if self.observer:
FreeCADGui.Selection.removeObserver(self.observer) FreeCADGui.Selection.removeObserver(self.observer)
if self.nodevis:
self.toggleNodes()
FreeCAD.ActiveDocument.recompute() FreeCAD.ActiveDocument.recompute()
FreeCADGui.ActiveDocument.resetEdit() FreeCADGui.ActiveDocument.resetEdit()
return True return True