Add quick delete for empty folders (#1055)
This commit is contained in:
@@ -445,6 +445,7 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
|
|
||||||
wCount = self._getItemWordCount(tHandle)
|
wCount = self._getItemWordCount(tHandle)
|
||||||
if nwItemS.itemType == nwItemType.ROOT:
|
if nwItemS.itemType == nwItemType.ROOT:
|
||||||
|
# Only an empty ROOT folder can be deleted
|
||||||
logger.debug("User requested a root folder '%s' deleted", tHandle)
|
logger.debug("User requested a root folder '%s' deleted", tHandle)
|
||||||
tIndex = self.indexOfTopLevelItem(trItemS)
|
tIndex = self.indexOfTopLevelItem(trItemS)
|
||||||
if trItemS.childCount() == 0:
|
if trItemS.childCount() == 0:
|
||||||
@@ -459,7 +460,17 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
), nwAlert.ERROR)
|
), nwAlert.ERROR)
|
||||||
return False
|
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:
|
else:
|
||||||
|
# A populated FOLDER or a FILE requires confirmtation
|
||||||
logger.debug("User requested a file or folder '%s' deleted", tHandle)
|
logger.debug("User requested a file or folder '%s' deleted", tHandle)
|
||||||
trItemP = trItemS.parent()
|
trItemP = trItemS.parent()
|
||||||
trItemT = self._addTrashRoot()
|
trItemT = self._addTrashRoot()
|
||||||
@@ -749,8 +760,8 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
return
|
return
|
||||||
|
|
||||||
def dropEvent(self, theEvent):
|
def dropEvent(self, theEvent):
|
||||||
"""Overload the drop of dragged item event to check whether the
|
"""Overload the drop item event to ensure relevant data has been
|
||||||
drop is allowed or not. Disallowed drops are cancelled.
|
updated.
|
||||||
"""
|
"""
|
||||||
sHandle = self.getSelectedHandle()
|
sHandle = self.getSelectedHandle()
|
||||||
if sHandle is None:
|
if sHandle is None:
|
||||||
|
|||||||
@@ -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", "0000000000015.nwd"))
|
||||||
assert not os.path.isfile(os.path.join(fncDir, "project", "content", "0000000000016.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
|
# Empty Trash
|
||||||
# ===========
|
# ===========
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user