prevent nesting things under filtered decks
This change keeps drag-and-drop behavior the same except for displaying an error if an otherwise acceptable move would nest anything underneath a filtered deck.
This commit is contained in:
parent
ebcab2122d
commit
5e74976361
@ -262,9 +262,14 @@ class DeckManager(object):
|
|||||||
self.rename(draggedDeck, ontoDeckName + "::" + self._basename(draggedDeckName))
|
self.rename(draggedDeck, ontoDeckName + "::" + self._basename(draggedDeckName))
|
||||||
|
|
||||||
def _canDragAndDrop(self, draggedDeckName, ontoDeckName):
|
def _canDragAndDrop(self, draggedDeckName, ontoDeckName):
|
||||||
return draggedDeckName <> ontoDeckName \
|
if draggedDeckName == ontoDeckName \
|
||||||
and not self._isParent(ontoDeckName, draggedDeckName) \
|
or self._isParent(ontoDeckName, draggedDeckName) \
|
||||||
and not self._isAncestor(draggedDeckName, ontoDeckName)
|
or self._isAncestor(draggedDeckName, ontoDeckName):
|
||||||
|
return False
|
||||||
|
elif self.byName(ontoDeckName)['dyn']:
|
||||||
|
raise DeckRenameError(_("A filtered deck cannot have subdecks."))
|
||||||
|
else:
|
||||||
|
return True
|
||||||
|
|
||||||
def _isParent(self, parentDeckName, childDeckName):
|
def _isParent(self, parentDeckName, childDeckName):
|
||||||
return self._path(childDeckName) == self._path(parentDeckName) + [ self._basename(childDeckName) ]
|
return self._path(childDeckName) == self._path(parentDeckName) + [ self._basename(childDeckName) ]
|
||||||
|
Loading…
Reference in New Issue
Block a user