Made tree column indices constants and swapped count and flags
This commit is contained in:
+23
-16
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user