Made tree column indices constants and swapped count and flags

This commit is contained in:
Veronica K. B. Olsen
2019-04-24 20:02:34 +02:00
parent 96943d316a
commit 4a3a82a1f7
+23 -16
View File
@@ -25,6 +25,11 @@ logger = logging.getLogger(__name__)
class GuiDocTree(QTreeWidget): class GuiDocTree(QTreeWidget):
C_NAME = 0
C_COUNT = 1
C_FLAGS = 2
C_HANDLE = 3
def __init__(self, theProject): def __init__(self, theProject):
QTreeWidget.__init__(self) QTreeWidget.__init__(self)
@@ -40,7 +45,7 @@ class GuiDocTree(QTreeWidget):
self.setColumnCount(4) self.setColumnCount(4)
self.setHeaderLabels(["Name","S","#","Handle"]) self.setHeaderLabels(["Name","S","#","Handle"])
if not self.debugGUI: if not self.debugGUI:
self.hideColumn(3) self.hideColumn(self.C_HANDLE)
# Allow Move by Drag & Drop # Allow Move by Drag & Drop
self.setDragEnabled(True) self.setDragEnabled(True)
@@ -89,13 +94,13 @@ class GuiDocTree(QTreeWidget):
def renameTreeItem(self, tHandle): def renameTreeItem(self, tHandle):
tItem = self.theMap[tHandle] tItem = self.theMap[tHandle]
oldName = tItem.text(0) oldName = tItem.text(self.C_NAME)
newName, isOk = QInputDialog.getText(self, "Rename Item", "New Name", QLineEdit.Normal,oldName) newName, isOk = QInputDialog.getText(self, "Rename Item", "New Name", QLineEdit.Normal,oldName)
if isOk: if isOk:
newName = newName.strip() newName = newName.strip()
if newName == "": if newName == "":
newName = oldName newName = oldName
tItem.setText(0,newName) tItem.setText(self.C_NAME,newName)
self.theProject.setItemName(tHandle, newName) self.theProject.setItemName(tHandle, newName)
return return
@@ -119,7 +124,7 @@ class GuiDocTree(QTreeWidget):
## ##
def _scanChildren(self, theList, theItem, theIndex): def _scanChildren(self, theList, theItem, theIndex):
tHandle = theItem.text(3) tHandle = theItem.text(self.C_HANDLE)
nwItem = self.theProject.projTree[tHandle] nwItem = self.theProject.projTree[tHandle]
nwItem.setExpanded(theItem.isExpanded()) nwItem.setExpanded(theItem.isExpanded())
nwItem.setOrder(theIndex) nwItem.setOrder(theIndex)
@@ -138,34 +143,36 @@ class GuiDocTree(QTreeWidget):
tHandle = nwItem.itemHandle tHandle = nwItem.itemHandle
pHandle = nwItem.parHandle pHandle = nwItem.parHandle
tStatus = 0 tStatus = 0
newItem = QTreeWidgetItem([ newItem = QTreeWidgetItem([""]*4)
tName, str(tStatus), "0", tHandle newItem.setText(self.C_NAME, tName)
]) newItem.setText(self.C_FLAGS, str(tStatus))
newItem.setText(self.C_COUNT, "0")
newItem.setText(self.C_HANDLE, tHandle)
self.theMap[tHandle] = newItem self.theMap[tHandle] = newItem
if pHandle is None: if pHandle is None:
self.addTopLevelItem(newItem) self.addTopLevelItem(newItem)
else: else:
self.theMap[pHandle].addChild(newItem) self.theMap[pHandle].addChild(newItem)
self.propagateCount(tHandle, nwItem.wordCount) self.propagateCount(tHandle, nwItem.wordCount)
newItem.setTextAlignment(2,Qt.AlignRight) newItem.setTextAlignment(self.C_COUNT,Qt.AlignRight)
newItem.setExpanded(nwItem.isExpanded) newItem.setExpanded(nwItem.isExpanded)
if nwItem.itemType == nwItemType.ROOT: if nwItem.itemType == nwItemType.ROOT:
newItem.setIcon(0, QIcon.fromTheme("drive-harddisk")) newItem.setIcon(self.C_NAME, QIcon.fromTheme("drive-harddisk"))
elif nwItem.itemType == nwItemType.FOLDER: elif nwItem.itemType == nwItemType.FOLDER:
newItem.setIcon(0, QIcon.fromTheme("folder")) newItem.setIcon(self.C_NAME, QIcon.fromTheme("folder"))
elif nwItem.itemType == nwItemType.FILE: elif nwItem.itemType == nwItemType.FILE:
newItem.setIcon(0, QIcon.fromTheme("x-office-document")) newItem.setIcon(self.C_NAME, QIcon.fromTheme("x-office-document"))
return True return True
def propagateCount(self, tHandle, theCount, nDepth=0): def propagateCount(self, tHandle, theCount, nDepth=0):
tItem = self.theMap[tHandle] tItem = self.theMap[tHandle]
tItem.setText(2,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
for i in range(pItem.childCount()): for i in range(pItem.childCount()):
pCount += int(pItem.child(i).text(2)) pCount += int(pItem.child(i).text(self.C_COUNT))
pHandle = pItem.text(3) pHandle = pItem.text(self.C_HANDLE)
if not nDepth > NWItem.MAX_DEPTH: if not nDepth > NWItem.MAX_DEPTH:
self.propagateCount(pHandle, pCount, nDepth+1) self.propagateCount(pHandle, pCount, nDepth+1)
return return
@@ -182,7 +189,7 @@ class GuiDocTree(QTreeWidget):
if len(selItem) == 0: if len(selItem) == 0:
return None return None
if isinstance(selItem[0], QTreeWidgetItem): if isinstance(selItem[0], QTreeWidgetItem):
return selItem[0].text(3) return selItem[0].text(self.C_HANDLE)
return None return None
## ##
@@ -212,7 +219,7 @@ class GuiDocTree(QTreeWidget):
return return
dItem = self.itemFromIndex(dIndex) dItem = self.itemFromIndex(dIndex)
dHandle = dItem.text(3) dHandle = dItem.text(self.C_HANDLE)
snItem = self.theProject.getItem(sHandle) snItem = self.theProject.getItem(sHandle)
dnItem = self.theProject.getItem(dHandle) dnItem = self.theProject.getItem(dHandle)
isSame = snItem.itemClass == dnItem.itemClass and dnItem.itemType isSame = snItem.itemClass == dnItem.itemClass and dnItem.itemType