Rewritten the tree details pane to show more info
This commit is contained in:
+112
-28
@@ -32,7 +32,7 @@ from PyQt5.QtCore import Qt
|
|||||||
from PyQt5.QtGui import QFont
|
from PyQt5.QtGui import QFont
|
||||||
from PyQt5.QtWidgets import QFrame, QGridLayout, QLabel
|
from PyQt5.QtWidgets import QFrame, QGridLayout, QLabel
|
||||||
|
|
||||||
from nw.constants import nwLabels
|
from nw.constants import nwLabels, nwItemClass, nwUnicode
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ class GuiDocDetails(QFrame):
|
|||||||
|
|
||||||
self.mainBox = QGridLayout(self)
|
self.mainBox = QGridLayout(self)
|
||||||
self.mainBox.setVerticalSpacing(1)
|
self.mainBox.setVerticalSpacing(1)
|
||||||
self.mainBox.setHorizontalSpacing(15)
|
self.mainBox.setHorizontalSpacing(6)
|
||||||
self.setLayout(self.mainBox)
|
self.setLayout(self.mainBox)
|
||||||
|
|
||||||
self.fntOne = QFont()
|
self.fntOne = QFont()
|
||||||
@@ -56,50 +56,134 @@ class GuiDocDetails(QFrame):
|
|||||||
self.fntOne.setBold(True)
|
self.fntOne.setBold(True)
|
||||||
|
|
||||||
self.fntTwo = QFont()
|
self.fntTwo = QFont()
|
||||||
|
self.fntTwo.setFamily("Monospace")
|
||||||
self.fntTwo.setPointSize(10)
|
self.fntTwo.setPointSize(10)
|
||||||
self.colTwo = [
|
|
||||||
QLabel(""),
|
|
||||||
QLabel(""),
|
|
||||||
QLabel(""),
|
|
||||||
QLabel("")
|
|
||||||
]
|
|
||||||
|
|
||||||
colOne = ["Label","Status","Class","Layout"]
|
self.fntThree = QFont()
|
||||||
for nRow in range(4):
|
self.fntThree.setPointSize(10)
|
||||||
lblOne = QLabel(colOne[nRow])
|
|
||||||
lblOne.setFont(self.fntOne)
|
# Label
|
||||||
lblOne.setAlignment(Qt.AlignTop)
|
self.labelName = QLabel("Label ")
|
||||||
self.mainBox.addWidget(lblOne,nRow,0)
|
self.labelName.setFont(self.fntOne)
|
||||||
self.mainBox.addWidget(self.colTwo[nRow],nRow,1)
|
self.labelName.setAlignment(Qt.AlignLeft | Qt.AlignBaseline)
|
||||||
self.colTwo[nRow].setWordWrap(True)
|
|
||||||
self.colTwo[nRow].setAlignment(Qt.AlignTop)
|
self.labelFlag = QLabel("")
|
||||||
|
self.labelFlag.setFont(self.fntTwo)
|
||||||
|
self.labelFlag.setAlignment(Qt.AlignRight | Qt.AlignBaseline)
|
||||||
|
|
||||||
|
self.labelData = QLabel("")
|
||||||
|
self.labelData.setFont(self.fntThree)
|
||||||
|
self.labelData.setAlignment(Qt.AlignLeft | Qt.AlignBaseline)
|
||||||
|
self.labelData.setWordWrap(True)
|
||||||
|
|
||||||
|
# Status
|
||||||
|
self.statusName = QLabel("Status ")
|
||||||
|
self.statusName.setFont(self.fntOne)
|
||||||
|
self.statusName.setAlignment(Qt.AlignLeft)
|
||||||
|
|
||||||
|
self.statusFlag = QLabel("")
|
||||||
|
self.statusFlag.setFont(self.fntTwo)
|
||||||
|
self.statusFlag.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
|
||||||
|
|
||||||
|
self.statusData = QLabel("")
|
||||||
|
self.statusData.setFont(self.fntThree)
|
||||||
|
self.statusData.setAlignment(Qt.AlignLeft)
|
||||||
|
|
||||||
|
# Class
|
||||||
|
self.className = QLabel("Class ")
|
||||||
|
self.className.setFont(self.fntOne)
|
||||||
|
self.className.setAlignment(Qt.AlignLeft)
|
||||||
|
|
||||||
|
self.classFlag = QLabel("")
|
||||||
|
self.classFlag.setFont(self.fntTwo)
|
||||||
|
self.classFlag.setAlignment(Qt.AlignRight)
|
||||||
|
|
||||||
|
self.classData = QLabel("")
|
||||||
|
self.classData.setFont(self.fntThree)
|
||||||
|
self.classData.setAlignment(Qt.AlignLeft)
|
||||||
|
|
||||||
|
# Layout
|
||||||
|
self.layoutName = QLabel("Layout ")
|
||||||
|
self.layoutName.setFont(self.fntOne)
|
||||||
|
self.layoutName.setAlignment(Qt.AlignLeft)
|
||||||
|
|
||||||
|
self.layoutFlag = QLabel("")
|
||||||
|
self.layoutFlag.setFont(self.fntTwo)
|
||||||
|
self.layoutFlag.setAlignment(Qt.AlignRight)
|
||||||
|
|
||||||
|
self.layoutData = QLabel("")
|
||||||
|
self.layoutData.setFont(self.fntThree)
|
||||||
|
self.layoutData.setAlignment(Qt.AlignLeft)
|
||||||
|
|
||||||
|
# Assemble
|
||||||
|
self.mainBox.addWidget(self.labelName, 0, 0)
|
||||||
|
self.mainBox.addWidget(self.statusName, 1, 0)
|
||||||
|
self.mainBox.addWidget(self.className, 2, 0)
|
||||||
|
self.mainBox.addWidget(self.layoutName, 3, 0)
|
||||||
|
self.mainBox.addWidget(self.labelFlag, 0, 1)
|
||||||
|
self.mainBox.addWidget(self.statusFlag, 1, 1)
|
||||||
|
self.mainBox.addWidget(self.classFlag, 2, 1)
|
||||||
|
self.mainBox.addWidget(self.layoutFlag, 3, 1)
|
||||||
|
self.mainBox.addWidget(self.labelData, 0, 2)
|
||||||
|
self.mainBox.addWidget(self.statusData, 1, 2)
|
||||||
|
self.mainBox.addWidget(self.classData, 2, 2)
|
||||||
|
self.mainBox.addWidget(self.layoutData, 3, 2)
|
||||||
|
|
||||||
self.mainBox.setColumnStretch(0,0)
|
self.mainBox.setColumnStretch(0,0)
|
||||||
self.mainBox.setColumnStretch(1,1)
|
self.mainBox.setColumnStretch(1,0)
|
||||||
|
self.mainBox.setColumnStretch(2,1)
|
||||||
|
|
||||||
logger.debug("DocDetails initialisation complete")
|
logger.debug("DocDetails initialisation complete")
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
def buildViewBox(self, tHandle):
|
###
|
||||||
|
# Class Methods
|
||||||
|
##
|
||||||
|
|
||||||
|
def updateViewBox(self, tHandle):
|
||||||
|
"""Populate the details box from a given handle.
|
||||||
|
"""
|
||||||
|
|
||||||
nwItem = self.theProject.projTree[tHandle]
|
nwItem = self.theProject.projTree[tHandle]
|
||||||
|
|
||||||
if nwItem is None:
|
if nwItem is None:
|
||||||
colTwo = [""]*4
|
self.labelFlag.setText("")
|
||||||
|
self.statusFlag.setText("")
|
||||||
|
self.classFlag.setText("")
|
||||||
|
self.layoutFlag.setText("")
|
||||||
|
self.labelData.setText("")
|
||||||
|
self.statusData.setText("")
|
||||||
|
self.classData.setText("")
|
||||||
|
self.layoutData.setText("")
|
||||||
|
|
||||||
else:
|
else:
|
||||||
theLabel = nwItem.itemName
|
theLabel = nwItem.itemName
|
||||||
if len(theLabel) > 100:
|
if len(theLabel) > 100:
|
||||||
theLabel = theLabel[:96].rstrip()+" ..."
|
theLabel = theLabel[:96].rstrip()+" ..."
|
||||||
colTwo = [
|
|
||||||
theLabel,
|
|
||||||
nwItem.itemStatus,
|
|
||||||
nwLabels.CLASS_NAME[nwItem.itemClass],
|
|
||||||
nwLabels.LAYOUT_NAME[nwItem.itemLayout],
|
|
||||||
]
|
|
||||||
|
|
||||||
for nRow in range(4):
|
iStatus = nwItem.itemStatus
|
||||||
self.colTwo[nRow].setText(colTwo[nRow])
|
if nwItem.itemClass == nwItemClass.NOVEL:
|
||||||
|
iStatus = self.theProject.statusItems.checkEntry(iStatus) # Make sure it's valid
|
||||||
|
flagIcon = self.theParent.statusIcons[iStatus]
|
||||||
|
else:
|
||||||
|
iStatus = self.theProject.importItems.checkEntry(iStatus) # Make sure it's valid
|
||||||
|
flagIcon = self.theParent.importIcons[iStatus]
|
||||||
|
|
||||||
|
if nwItem.isExported:
|
||||||
|
exportFlag = nwUnicode.U_CHECK
|
||||||
|
else:
|
||||||
|
exportFlag = " "
|
||||||
|
|
||||||
|
self.labelFlag.setText(exportFlag)
|
||||||
|
self.statusFlag.setPixmap(flagIcon.pixmap(10, 10))
|
||||||
|
self.classFlag.setText(nwLabels.CLASS_FLAG[nwItem.itemClass])
|
||||||
|
self.layoutFlag.setText(nwLabels.LAYOUT_FLAG[nwItem.itemLayout])
|
||||||
|
|
||||||
|
self.labelData.setText(theLabel)
|
||||||
|
self.statusData.setText(nwItem.itemStatus)
|
||||||
|
self.classData.setText(nwLabels.CLASS_NAME[nwItem.itemClass])
|
||||||
|
self.layoutData.setText(nwLabels.LAYOUT_NAME[nwItem.itemLayout])
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user