Skip to content

Commit

Permalink
Fixed extension selection
Browse files Browse the repository at this point in the history
  • Loading branch information
mlampert committed Jun 30, 2019
1 parent 70d8be5 commit 9c5fa12
Showing 1 changed file with 29 additions and 14 deletions.
43 changes: 29 additions & 14 deletions src/Mod/Path/PathScripts/PathPocketShapeGui.py
Expand Up @@ -166,6 +166,8 @@ def initPage(self, obj):
else:
self.form.showExtensions.setCheckState(QtCore.Qt.Unchecked)

self.blockUpdateData = False

global Page
Page = self

Expand All @@ -176,7 +178,6 @@ def getForm(self):
return FreeCADGui.PySideUic.loadUi(":/panels/PageOpPocketExtEdit.ui")

def forAllItemsCall(self, cb):
PathLog.track()
for modelRow in range(self.model.rowCount()):
model = self.model.item(modelRow, 0)
for featureRow in range(model.rowCount()):
Expand All @@ -186,23 +187,29 @@ def forAllItemsCall(self, cb):
ext = item.data(self.DataObject)
cb(item, ext)

def currentExtensions(self):
extensions = []
def extractExtension(item, ext):
if ext and ext.edge and item.checkState() == QtCore.Qt.Checked:
extensions.append(ext.ext)
self.forAllItemsCall(extractExtension)
PathLog.track('extensions', extensions)
return extensions

def updateProxyExtensions(self, obj):
self.extensions = self.currentExtensions()
obj.Proxy.setExtensions(obj, self.extensions)

def getFields(self, obj):
PathLog.track(obj.Label, self.model.rowCount(), self.model.columnCount())
self.blockUpdateData = True

if obj.ExtensionCorners != self.form.extendCorners.isChecked():
obj.ExtensionCorners = self.form.extendCorners.isChecked()
self.defaultLength.updateProperty()

extensions = []

def extractExtension(item, ext):
if ext and ext.edge and item.checkState() == QtCore.Qt.Checked:
extensions.append(ext.ext)

self.forAllItemsCall(extractExtension)

self.extensions = extensions
obj.Proxy.setExtensions(obj, extensions)
self.updateProxyExtensions(obj)
self.blockUpdateData = False

def setFields(self, obj):
PathLog.track(obj.Label)
Expand Down Expand Up @@ -319,9 +326,13 @@ def removeItemSwitch(item, ext):
if hasattr(self, 'selectionModel') and selectedExtensions:
self.restoreSelection(selectedExtensions)

self.form.extensionTree.blockSignals(False)

def updateData(self, obj, prop):
if prop in ['Base', 'ExtensionLengthDefault']:
self.setExtensions(obj.Proxy.getExtensions(obj))
PathLog.track(obj.Label, prop, self.blockUpdateData)
if not self.blockUpdateData:
if prop in ['Base', 'ExtensionLengthDefault']:
self.setExtensions(obj.Proxy.getExtensions(obj))

def restoreSelection(self, selection):
PathLog.track()
Expand Down Expand Up @@ -350,7 +361,7 @@ def selectItem(item, ext):

def setSelectionVisuals(item, ext):
if selectItem(item, ext):
self.selectionModel.select(item.index(), QtGui.QItemSelectionModel.Select)
self.selectionModel.select(item.index(), QtCore.QItemSelectionModel.Select)

selected = self.selectionModel.isSelected(item.index())
if selected:
Expand All @@ -377,6 +388,7 @@ def disableItem(item, ext):
self.setDirty()

def _extensionsSetState(self, state):
PathLog.track(state)
for index in self.selectionModel.selectedIndexes():
item = self.model.itemFromIndex(index)
ext = item.data(self.DataObject)
Expand All @@ -392,11 +404,13 @@ def extensionsEnable(self):
self._extensionsSetState(QtCore.Qt.Checked)

def updateItemEnabled(self, item):
PathLog.track(item)
ext = item.data(self.DataObject)
if item.checkState() == QtCore.Qt.Checked:
ext.enable()
else:
ext.disable()
self.updateProxyExtensions(self.obj)
self.setDirty()

def showHideExtension(self):
Expand All @@ -412,6 +426,7 @@ def disableExtensionEdit(item, ext):
#self.setDirty()

def toggleExtensionCorners(self):
PathLog.track()
self.setExtensions(self.obj.Proxy.getExtensions(self.obj))
self.selectionChanged()
self.setDirty()
Expand Down

0 comments on commit 9c5fa12

Please sign in to comment.