Path: Fix GUI race condition in helix task panel checkboxes
This commit is contained in:
parent
32bcc0a579
commit
72f9ec67e7
|
@ -514,14 +514,15 @@ class TaskPanel(object):
|
||||||
heading.setStyleSheet(headerStyle)
|
heading.setStyleSheet(headerStyle)
|
||||||
addWidget(heading)
|
addWidget(heading)
|
||||||
|
|
||||||
def addQuantity(property, label, activator=None, max=None):
|
def addQuantity(property, labelstring, activator=None, max=None):
|
||||||
self.previous_value[property] = getattr(self.obj, property)
|
self.previous_value[property] = getattr(self.obj, property)
|
||||||
widget = ui.createWidget("Gui::InputField")
|
widget = ui.createWidget("Gui::InputField")
|
||||||
|
|
||||||
if activator:
|
if activator:
|
||||||
self.previous_value[activator] = getattr(self.obj, activator)
|
self.previous_value[activator] = getattr(self.obj, activator)
|
||||||
currently_active = getattr(self.obj, activator)
|
currently_active = getattr(self.obj, activator)
|
||||||
label = QtGui.QCheckBox(label)
|
label = QtGui.QCheckBox(labelstring)
|
||||||
|
|
||||||
def change(state):
|
def change(state):
|
||||||
setattr(self.obj, activator, label.isChecked())
|
setattr(self.obj, activator, label.isChecked())
|
||||||
if label.isChecked():
|
if label.isChecked():
|
||||||
|
@ -530,13 +531,14 @@ class TaskPanel(object):
|
||||||
widget.setStyleSheet(grayed_out)
|
widget.setStyleSheet(grayed_out)
|
||||||
self.obj.Proxy.execute(self.obj)
|
self.obj.Proxy.execute(self.obj)
|
||||||
FreeCAD.ActiveDocument.recompute()
|
FreeCAD.ActiveDocument.recompute()
|
||||||
|
|
||||||
label.stateChanged.connect(change)
|
label.stateChanged.connect(change)
|
||||||
label.setChecked(currently_active)
|
label.setChecked(currently_active)
|
||||||
if not currently_active:
|
if not currently_active:
|
||||||
widget.setStyleSheet(grayed_out)
|
widget.setStyleSheet(grayed_out)
|
||||||
label.setToolTip(self.obj.getDocumentationOfProperty(activator))
|
label.setToolTip(self.obj.getDocumentationOfProperty(activator))
|
||||||
else:
|
else:
|
||||||
label = QtGui.QLabel(label)
|
label = QtGui.QLabel(labelstring)
|
||||||
label.setToolTip(self.obj.getDocumentationOfProperty(property))
|
label.setToolTip(self.obj.getDocumentationOfProperty(property))
|
||||||
|
|
||||||
widget.setText(str(getattr(self.obj, property)))
|
widget.setText(str(getattr(self.obj, property)))
|
||||||
|
@ -548,8 +550,6 @@ class TaskPanel(object):
|
||||||
widget.setProperty("maximum", max)
|
widget.setProperty("maximum", max)
|
||||||
|
|
||||||
def change(quantity):
|
def change(quantity):
|
||||||
if activator:
|
|
||||||
label.setChecked(True)
|
|
||||||
setattr(self.obj, property, quantity)
|
setattr(self.obj, property, quantity)
|
||||||
self.obj.Proxy.execute(self.obj)
|
self.obj.Proxy.execute(self.obj)
|
||||||
FreeCAD.ActiveDocument.recompute()
|
FreeCAD.ActiveDocument.recompute()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user