Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion simplexui/interfaceModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ def coerceIndexToRoots(indexes):
The coerced list
"""
indexes = [i for i in indexes if i.column() == 0]
indexes = sorted(indexes, key=lambda x: x.model().itemFromIndex(x), reverse=True)
indexes = sorted(indexes, key=lambda x: x.model().itemFromIndex(x).classDepth, reverse=True)
# Check each item to see if any of it's ancestors
# are in the selection list. If not, it's a root
roots = []
Expand Down
4 changes: 3 additions & 1 deletion simplexui/items/group.py
Original file line number Diff line number Diff line change
Expand Up @@ -260,12 +260,14 @@ def delete(self):

mgrs = [model.removeItemManager(self) for model in self.models]
with nested(*mgrs):
gList.remove(self)
# Delete the children first
# Gotta iterate over copies of the lists
# as .delete removes the items from the list
for item in self.items[:]:
item.delete()

gList.remove(self)

@stackable
def take(self, things):
"""Remove some items from their current groups and put them in this one
Expand Down
14 changes: 12 additions & 2 deletions simplexui/simplexDialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -673,13 +673,13 @@ def sliderTreeDelete(self):
idxs = self.uiSliderTREE.getSelectedIndexes()
roots = coerceIndexToRoots(idxs)
if not roots:
QMessageBox.warning(self, "Warning", "Nothing Selected")
QMessageBox.warning(self, "Warning", "Nothing Selected in Slider tree")
return
roots = makeUnique([i.model().itemFromIndex(i) for i in roots])
for r in roots:
if isinstance(r, Simplex):
QMessageBox.warning(
self, "Warning", "Cannot delete a simplex system this way (for now)"
self, "Warning", "Cannot delete a simplex system this way"
)
return

Expand All @@ -692,7 +692,17 @@ def comboTreeDelete(self):
"""Delete some objects in the Combo tree"""
idxs = self.uiComboTREE.getSelectedIndexes()
roots = coerceIndexToRoots(idxs)
if not roots:
QMessageBox.warning(self, "Warning", "Nothing Selected in Combo tree")
return
roots = makeUnique([i.model().itemFromIndex(i) for i in roots])
for r in roots:
if isinstance(r, Simplex):
QMessageBox.warning(
self, "Warning", "Cannot delete a simplex system this way"
)
return

for r in roots:
r.delete()
self.uiComboTREE.model().invalidateFilter()
Expand Down