Files can now be moved to trash
This commit is contained in:
+5
-6
@@ -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
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user