Move to trash and drag'n'drop items now updates word counts
This commit is contained in:
+20
-17
@@ -237,8 +237,8 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
"""
|
"""
|
||||||
if qApp.focusWidget() == self and self.theParent.hasProject:
|
if qApp.focusWidget() == self and self.theParent.hasProject:
|
||||||
tHandle = self.getSelectedHandle()
|
tHandle = self.getSelectedHandle()
|
||||||
tItem = self._getTreeItem(tHandle)
|
tItem = self._getTreeItem(tHandle)
|
||||||
pItem = tItem.parent()
|
pItem = tItem.parent()
|
||||||
if pItem is None:
|
if pItem is None:
|
||||||
tIndex = self.indexOfTopLevelItem(tItem)
|
tIndex = self.indexOfTopLevelItem(tItem)
|
||||||
nChild = self.topLevelItemCount()
|
nChild = self.topLevelItemCount()
|
||||||
@@ -367,6 +367,7 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
if nwItemS is None:
|
if nwItemS is None:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
wCount = int(trItemS.text(self.C_COUNT))
|
||||||
if nwItemS.itemType == nwItemType.FILE:
|
if nwItemS.itemType == nwItemType.FILE:
|
||||||
logger.debug("User requested file %s moved to trash" % tHandle)
|
logger.debug("User requested file %s moved to trash" % tHandle)
|
||||||
trItemP = trItemS.parent()
|
trItemP = trItemS.parent()
|
||||||
@@ -422,10 +423,12 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
if pHandle is None:
|
if pHandle is None:
|
||||||
logger.warning("File has no parent item")
|
logger.warning("File has no parent item")
|
||||||
|
|
||||||
|
self.propagateCount(tHandle, 0)
|
||||||
tIndex = trItemP.indexOfChild(trItemS)
|
tIndex = trItemP.indexOfChild(trItemS)
|
||||||
trItemC = trItemP.takeChild(tIndex)
|
trItemC = trItemP.takeChild(tIndex)
|
||||||
trItemT.addChild(trItemC)
|
trItemT.addChild(trItemC)
|
||||||
nwItemS.setParent(self.theProject.projTree.trashRoot())
|
nwItemS.setParent(self.theProject.projTree.trashRoot())
|
||||||
|
self.propagateCount(tHandle, wCount)
|
||||||
|
|
||||||
self._setTreeChanged(True)
|
self._setTreeChanged(True)
|
||||||
self.theParent.theIndex.deleteHandle(tHandle)
|
self.theParent.theIndex.deleteHandle(tHandle)
|
||||||
@@ -504,7 +507,7 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
"""
|
"""
|
||||||
tItem = self._getTreeItem(tHandle)
|
tItem = self._getTreeItem(tHandle)
|
||||||
if tItem is not None:
|
if tItem is not None:
|
||||||
tItem.setText(self.C_COUNT,str(theCount))
|
tItem.setText(self.C_COUNT, str(theCount))
|
||||||
pItem = tItem.parent()
|
pItem = tItem.parent()
|
||||||
if pItem is not None:
|
if pItem is not None:
|
||||||
pCount = 0
|
pCount = 0
|
||||||
@@ -629,23 +632,26 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
logger.error("Invalid drop index")
|
logger.error("Invalid drop index")
|
||||||
return
|
return
|
||||||
|
|
||||||
dItem = self.itemFromIndex(dIndex)
|
sItem = self._getTreeItem(sHandle)
|
||||||
|
dItem = self.itemFromIndex(dIndex)
|
||||||
dHandle = dItem.data(self.C_NAME, Qt.UserRole)
|
dHandle = dItem.data(self.C_NAME, Qt.UserRole)
|
||||||
snItem = self.theProject.projTree[sHandle]
|
snItem = self.theProject.projTree[sHandle]
|
||||||
dnItem = self.theProject.projTree[dHandle]
|
dnItem = self.theProject.projTree[dHandle]
|
||||||
if dnItem is None:
|
if dnItem is None:
|
||||||
self.makeAlert("The item cannot be moved to that location.", nwAlert.ERROR)
|
self.makeAlert("The item cannot be moved to that location.", nwAlert.ERROR)
|
||||||
return
|
return
|
||||||
|
|
||||||
isSame = snItem.itemClass == dnItem.itemClass
|
wCount = int(sItem.text(self.C_COUNT))
|
||||||
isNone = snItem.itemClass == nwItemClass.NO_CLASS
|
isSame = snItem.itemClass == dnItem.itemClass
|
||||||
isNote = snItem.itemLayout == nwItemLayout.NOTE
|
isNone = snItem.itemClass == nwItemClass.NO_CLASS
|
||||||
onFile = dnItem.itemType == nwItemType.FILE
|
isNote = snItem.itemLayout == nwItemLayout.NOTE
|
||||||
isRoot = snItem.itemType == nwItemType.ROOT
|
onFile = dnItem.itemType == nwItemType.FILE
|
||||||
onRoot = dnItem.itemType == nwItemType.ROOT
|
isRoot = snItem.itemType == nwItemType.ROOT
|
||||||
|
onRoot = dnItem.itemType == nwItemType.ROOT
|
||||||
isOnTop = self.dropIndicatorPosition() == QAbstractItemView.OnItem
|
isOnTop = self.dropIndicatorPosition() == QAbstractItemView.OnItem
|
||||||
if (isSame or isNone or isNote) and not (onFile and isOnTop) and not isRoot:
|
if (isSame or isNone or isNote) and not (onFile and isOnTop) and not isRoot:
|
||||||
logger.debug("Drag'n'drop of item %s accepted" % sHandle)
|
logger.debug("Drag'n'drop of item %s accepted" % sHandle)
|
||||||
|
self.propagateCount(sHandle, 0)
|
||||||
QTreeWidget.dropEvent(self, theEvent)
|
QTreeWidget.dropEvent(self, theEvent)
|
||||||
if isNone:
|
if isNone:
|
||||||
self._moveOrphanedItem(sHandle, dHandle)
|
self._moveOrphanedItem(sHandle, dHandle)
|
||||||
@@ -660,6 +666,7 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
))
|
))
|
||||||
snItem.setClass(dnItem.itemClass)
|
snItem.setClass(dnItem.itemClass)
|
||||||
self.setTreeItemValues(sHandle)
|
self.setTreeItemValues(sHandle)
|
||||||
|
self.propagateCount(sHandle, wCount)
|
||||||
else:
|
else:
|
||||||
logger.debug("Drag'n'drop of item %s not accepted" % sHandle)
|
logger.debug("Drag'n'drop of item %s not accepted" % sHandle)
|
||||||
self.makeAlert("The item cannot be moved to that location.", nwAlert.ERROR)
|
self.makeAlert("The item cannot be moved to that location.", nwAlert.ERROR)
|
||||||
@@ -794,8 +801,7 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
|
|
||||||
def _updateItemParent(self, tHandle):
|
def _updateItemParent(self, tHandle):
|
||||||
"""Update the parent handle of an item so that the information
|
"""Update the parent handle of an item so that the information
|
||||||
in the project is consistent with the treeView. Also move the
|
in the project is consistent with the treeView.
|
||||||
word count over to the new parent tree.
|
|
||||||
"""
|
"""
|
||||||
trItemS = self._getTreeItem(tHandle)
|
trItemS = self._getTreeItem(tHandle)
|
||||||
nwItemS = self.theProject.projTree[tHandle]
|
nwItemS = self.theProject.projTree[tHandle]
|
||||||
@@ -805,10 +811,7 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
pHandle = trItemP.data(self.C_NAME, Qt.UserRole)
|
pHandle = trItemP.data(self.C_NAME, Qt.UserRole)
|
||||||
wC = int(trItemS.text(self.C_COUNT))
|
|
||||||
self.propagateCount(tHandle, -wC)
|
|
||||||
nwItemS.setParent(pHandle)
|
nwItemS.setParent(pHandle)
|
||||||
self.propagateCount(tHandle, wC)
|
|
||||||
self.setTreeItemValues(tHandle)
|
self.setTreeItemValues(tHandle)
|
||||||
self._setTreeChanged(True)
|
self._setTreeChanged(True)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user