Make deleting empty folders bypass Trash
This commit is contained in:
@@ -445,6 +445,7 @@ class GuiProjectTree(QTreeWidget):
|
||||
|
||||
wCount = self._getItemWordCount(tHandle)
|
||||
if nwItemS.itemType == nwItemType.ROOT:
|
||||
# Only an empty ROOT folder can be deleted
|
||||
logger.debug("User requested a root folder '%s' deleted", tHandle)
|
||||
tIndex = self.indexOfTopLevelItem(trItemS)
|
||||
if trItemS.childCount() == 0:
|
||||
@@ -459,7 +460,17 @@ class GuiProjectTree(QTreeWidget):
|
||||
), nwAlert.ERROR)
|
||||
return False
|
||||
|
||||
elif nwItemS.itemType == nwItemType.FOLDER and trItemS.childCount() == 0:
|
||||
# An empty FOLDER is just deleted without any further checks
|
||||
logger.debug("User requested an empty folder '%s' deleted", tHandle)
|
||||
trItemP = trItemS.parent()
|
||||
tIndex = trItemP.indexOfChild(trItemS)
|
||||
trItemP.takeChild(tIndex)
|
||||
self._deleteTreeItem(tHandle)
|
||||
self._setTreeChanged(True)
|
||||
|
||||
else:
|
||||
# A populated FOLDER or a FILE requires confirmtation
|
||||
logger.debug("User requested a file or folder '%s' deleted", tHandle)
|
||||
trItemP = trItemS.parent()
|
||||
trItemT = self._addTrashRoot()
|
||||
|
||||
@@ -398,6 +398,15 @@ def testGuiProjTree_DeleteItems(qtbot, caplog, monkeypatch, nwGUI, fncDir, mockR
|
||||
assert not os.path.isfile(os.path.join(fncDir, "project", "content", "0000000000015.nwd"))
|
||||
assert not os.path.isfile(os.path.join(fncDir, "project", "content", "0000000000016.nwd"))
|
||||
|
||||
# Add an empty folder, which can be deleted with no further restrictions
|
||||
nwTree.setSelectedHandle("0000000000009")
|
||||
assert nwTree.newTreeItem(nwItemType.FOLDER) is True
|
||||
assert nwTree.getTreeFromHandle("0000000000009") == ["0000000000009", "0000000000017"]
|
||||
|
||||
nwTree.setSelectedHandle("0000000000017")
|
||||
assert nwTree.deleteItem("0000000000017") is True
|
||||
assert nwTree.getTreeFromHandle("0000000000009") == ["0000000000009"]
|
||||
|
||||
# Empty Trash
|
||||
# ===========
|
||||
|
||||
|
||||
Reference in New Issue
Block a user