Files can now be moved to trash

This commit is contained in:
Veronica K. B. Olsen
2019-05-04 16:24:38 +02:00
parent 7768335d3f
commit c775636a71
4 changed files with 36 additions and 26 deletions
+5 -6
View File
@@ -14,12 +14,11 @@ from enum import Enum
class nwItemType(Enum):
NO_TYPE = 0
ROOT = 1
FOLDER = 2
FILE = 3
TRASH = 4
TRASHFILE = 5
NO_TYPE = 0
ROOT = 1
FOLDER = 2
FILE = 3
TRASH = 4
# END Enum nwItemType
+31 -11
View File
@@ -134,7 +134,7 @@ class GuiDocTree(QTreeWidget):
# Add the new item to the tree
nwItem = self.theProject.getItem(tHandle)
trItem = self._addTreeItem(nwItem)
if pHandle is not None:
if pHandle is not None and pHandle in self.theMap.keys():
self.theMap[pHandle].setExpanded(True)
self.clearSelection()
trItem.setSelected(True)
@@ -148,7 +148,7 @@ class GuiDocTree(QTreeWidget):
"""
if QApplication.focusWidget() == self:
tHandle = self.getSelectedHandle()
tItem = self.theMap[tHandle]
tItem = self._getTreeItem(tHandle)
pItem = tItem.parent()
if pItem is None:
tIndex = self.indexOfTopLevelItem(tItem)
@@ -187,15 +187,25 @@ class GuiDocTree(QTreeWidget):
def deleteItem(self):
tHandle = self.getSelectedHandle()
nwItem = self.theProject.getItem(tHandle)
if nwItem.itemType == nwItemType.FILE:
trItemS = self._getTreeItem(tHandle)
nwItemS = self.theProject.getItem(tHandle)
if nwItemS.itemType == nwItemType.FILE:
logger.debug("User requested item %s moved to trash" % tHandle)
self._addTrashRoot()
trItemP = trItemS.parent()
trItemT = self._addTrashRoot()
if trItemP is None or trItemT is None:
logger.error("Could not move item to trash")
return
tIndex = trItemP.indexOfChild(trItemS)
trItemC = trItemP.takeChild(tIndex)
trItemT.addChild(trItemC)
nwItemS.setParent(self.theProject.trashRoot)
return
def setTreeItemValues(self, tHandle):
trItem = self.theMap[tHandle]
trItem = self._getTreeItem(tHandle)
nwItem = self.theProject.getItem(tHandle)
tName = nwItem.itemName
tHandle = nwItem.itemHandle
@@ -215,7 +225,7 @@ class GuiDocTree(QTreeWidget):
return
def propagateCount(self, tHandle, theCount, nDepth=0):
tItem = self.theMap[tHandle]
tItem = self._getTreeItem(tHandle)
tItem.setText(self.C_COUNT,str(theCount))
pItem = tItem.parent()
if pItem is not None:
@@ -246,6 +256,11 @@ class GuiDocTree(QTreeWidget):
# Internal Functions
##
def _getTreeItem(self, tHandle):
if tHandle in self.theMap.keys():
return self.theMap[tHandle]
return None
def _scanChildren(self, theList, theItem, theIndex):
tHandle = theItem.text(self.C_HANDLE)
nwItem = self.theProject.projTree[tHandle]
@@ -307,8 +322,13 @@ class GuiDocTree(QTreeWidget):
def _addTrashRoot(self):
if self.theProject.trashRoot is None:
self.theProject.addTrash()
self._addTreeItem(self.theProject.getItem(self.theProject.trashRoot))
return
trItem = self._addTreeItem(
self.theProject.getItem(self.theProject.trashRoot)
)
trItem.setExpanded(True)
else:
trItem = self._getTreeItem(self.theProject.trashRoot)
return trItem
def _addOrphanedRoot(self):
if self.orphRoot is None:
@@ -329,7 +349,7 @@ class GuiDocTree(QTreeWidget):
return
def _updateItemParent(self, tHandle):
trItemS = self.theMap[tHandle]
trItemS = self._getTreeItem(tHandle)
nwItemS = self.theProject.getItem(tHandle)
trItemP = trItemS.parent()
if trItemP is None:
@@ -341,7 +361,7 @@ class GuiDocTree(QTreeWidget):
return
def _moveOrphanedItem(self, tHandle, dHandle):
trItemS = self.theMap[tHandle]
trItemS = self._getTreeItem(tHandle)
nwItemS = self.theProject.getItem(tHandle)
nwItemD = self.theProject.getItem(dHandle)
trItemP = trItemS.parent()
-7
View File
@@ -36,7 +36,6 @@ class NWItem():
self.itemLayout = nwItemLayout.NO_LAYOUT
self.itemStatus = 0
self.itemDepth = None
self.hasChildren = False
self.isExpanded = False
self.charCount = 0
@@ -60,7 +59,6 @@ class NWItem():
xSub = self._subPack(xPack,"class", text=str(self.itemClass.name))
xSub = self._subPack(xPack,"status", text=str(self.itemStatus))
xSub = self._subPack(xPack,"depth", text=str(self.itemDepth))
xSub = self._subPack(xPack,"children", text=str(self.hasChildren))
xSub = self._subPack(xPack,"expanded", text=str(self.isExpanded))
if self.itemType == nwItemType.FILE:
xSub = self._subPack(xPack,"layout", text=str(self.itemLayout.name))
@@ -90,7 +88,6 @@ class NWItem():
elif tagName == "layout": self.setLayout(tagValue)
elif tagName == "status": self.setStatus(tagValue)
elif tagName == "depth": self.setDepth(tagValue)
elif tagName == "children": self.setChildren(tagValue)
elif tagName == "expanded": self.setExpanded(tagValue)
elif tagName == "charCount": self.setCharCount(tagValue)
elif tagName == "wordCount": self.setWordCount(tagValue)
@@ -171,10 +168,6 @@ class NWItem():
logger.error("Invalid item depth %d" % theDepth)
return
def setChildren(self, hasChildren):
self.hasChildren = hasChildren
return
def setExpanded(self, expState):
if isinstance(expState, str):
self.isExpanded = expState == str(True)
-2
View File
@@ -393,8 +393,6 @@ class NWProject():
self.projTree[tHandle] = nwItem
self.treeOrder.append(tHandle)
if pHandle is not None:
self.projTree[pHandle].setChildren(True)
if nwItem.itemType == nwItemType.ROOT:
logger.verbose("Entry %s is a root item" % str(tHandle))