Skip to content

Commit

Permalink
Update bone enable/disable list when settings change.
Browse files Browse the repository at this point in the history
  • Loading branch information
mlampert committed Oct 18, 2016
1 parent ea5805e commit 8653c60
Showing 1 changed file with 19 additions and 15 deletions.
34 changes: 19 additions & 15 deletions src/Mod/Path/PathScripts/DogboneDressup.py
Expand Up @@ -547,9 +547,27 @@ def getFields(self):
self.obj.BoneBlacklist = sorted(blacklist)
self.obj.Proxy.execute(self.obj)

def updateBoneList(self):
itemList = []
for loc, state in self.obj.Proxy.boneStateList(self.obj).iteritems():
lbl = '(%.2f, %.2f): %s' % (loc[0], loc[1], ','.join(str(id) for id in state[1]))
item = QtGui.QListWidgetItem(lbl)
item.setFlags(QtCore.Qt.ItemFlag.ItemIsEnabled | QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsUserCheckable)
if state[0]:
item.setCheckState(QtCore.Qt.CheckState.Checked)
else:
item.setCheckState(QtCore.Qt.CheckState.Unchecked)
item.setData(self.DataIds, state[1])
item.setData(self.DataKey, state[1][0])
itemList.append(item)
self.form.bones.clear()
for item in sorted(itemList, key=lambda item: item.data(self.DataKey)):
self.form.bones.addItem(item)

def updateModel(self):
self.getFields()
self.form.custom.setEnabled(self.obj.Length == Length.Custom)
self.updateBoneList()
FreeCAD.ActiveDocument.recompute()

def setupCombo(self, combo, text, items):
Expand All @@ -569,21 +587,7 @@ def setFields(self):
self.form.custom.setDecimals(3)
self.form.custom.setValue(self.obj.Custom)
self.form.custom.setEnabled(self.obj.Length == Length.Custom)
self.form.bones.clear()
itemList = []
for loc, state in self.obj.Proxy.boneStateList(self.obj).iteritems():
lbl = '(%.2f, %.2f): %s' % (loc[0], loc[1], ','.join(str(id) for id in state[1]))
item = QtGui.QListWidgetItem(lbl)
item.setFlags(QtCore.Qt.ItemFlag.ItemIsEnabled | QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsUserCheckable)
if state[0]:
item.setCheckState(QtCore.Qt.CheckState.Checked)
else:
item.setCheckState(QtCore.Qt.CheckState.Unchecked)
item.setData(self.DataIds, state[1])
item.setData(self.DataKey, state[1][0])
itemList.append(item)
for item in sorted(itemList, key=lambda item: item.data(self.DataKey)):
self.form.bones.addItem(item)
self.updateBoneList()

def open(self):
self.s = SelObserver()
Expand Down

0 comments on commit 8653c60

Please sign in to comment.