Added some the tree building code, with the help of 3 G&Ts.

This commit is contained in:
Veronica K. B. Olsen
2018-10-27 23:54:34 +02:00
parent c8dab032b9
commit 0f8090601b
6 changed files with 314 additions and 29 deletions
+61 -11
View File
@@ -15,28 +15,78 @@ import nw
from os import path
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QTreeView
from PyQt5.QtGui import QStandardItemModel
from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem, QTreeWidgetItemIterator, QAbstractItemView
logger = logging.getLogger(__name__)
class GuiDocTree(QTreeView):
class GuiDocTree(QTreeWidget):
def __init__(self):
QTreeView.__init__(self)
def __init__(self, theProject):
QTreeWidget.__init__(self)
logger.debug("Initialising DocTree ...")
self.mainConf = nw.CONFIG
self.mainConf = nw.CONFIG
self.debugGUI = self.mainConf.debugGUI
self.theProject = theProject
self.theMap = {}
self.treeModel = QStandardItemModel(0, 3, self)
self.treeModel.setHeaderData(0, Qt.Horizontal, "Name")
self.treeModel.setHeaderData(1, Qt.Horizontal, "Words")
self.treeModel.setHeaderData(2, Qt.Horizontal, "Status")
self.setColumnCount(4)
self.setHeaderLabels(["Name","","","Handle"])
if not self.debugGUI:
self.hideColumn(3)
self.setModel(self.treeModel)
# Allow Move by Drag & Drop
self.setDragEnabled(True)
self.setDragDropMode(QAbstractItemView.InternalMove)
for colN in range(len(self.mainConf.treeColWidth)):
self.setColumnWidth(colN,self.mainConf.treeColWidth[colN])
logger.debug("DocTree initialisation complete")
return
def saveTreeOrder(self):
theList = []
for i in range(self.topLevelItemCount()):
theList = self._scanChildren(theList, self.topLevelItem(i))
print(theList)
return True
def _scanChildren(self, theList, theItem):
theList.append(theItem.text(3))
for i in range(theItem.childCount()):
self._scanChildren(theList, theItem.child(i))
return theList
def buildTree(self):
for tHandle in self.theProject.projTree:
nwItem = self.theProject.projTree[tHandle]
tName = nwItem.itemName
tStatus = 0
wCount = 0
pHandle = nwItem.parHandle
newItem = QTreeWidgetItem([
tName, str(tStatus), str(wCount), tHandle
])
self.theMap[tHandle] = newItem
if pHandle is None:
self.addTopLevelItem(newItem)
else:
self.theMap[pHandle].addChild(newItem)
return True
def getColumnSizes(self):
retVals = [
self.columnWidth(0),
self.columnWidth(1),
self.columnWidth(2),
]
return retVals
# END Class GuiDocTree