Infos in tree views

This commit is contained in:
Olivier Keshavjee 2015-06-21 10:44:11 +02:00
parent 8ac38e2336
commit 223b93bf8d
6 changed files with 325 additions and 32 deletions

View file

@ -465,6 +465,8 @@ class outlineItem():
if goal:
self.setData(Outline.goalPercentage.value, wc / float(goal))
else:
self.setData(Outline.goalPercentage.value, "")
self.emitDataChanged()

View file

@ -9,6 +9,8 @@ viewSettings = {
"Icon": "Nothing",
"Text": "Compile",
"Background": "Nothing",
"InfoFolder": "Nothing",
"InfoText": "Nothing",
},
"Cork": {
"Icon": "Nothing",

View file

@ -60,6 +60,18 @@ class settingsWindow(QWidget, Ui_Settings):
col = self.outlineColumnsData()[chk]
chk.setChecked(col in settings.outlineViewColumns)
chk.stateChanged.connect(self.outlineColumnsChanged)
for item, what, value in [
(self.rdoTreeItemCount, "InfoFolder", "Count"),
(self.rdoTreeWC, "InfoFolder", "WC"),
(self.rdoTreeProgress, "InfoFolder", "Progress"),
(self.rdoTreeNothing, "InfoFolder", "Nothing"),
(self.rdoTreeTextWC, "InfoText", "WC"),
(self.rdoTreeTextProgress, "InfoText", "Progress"),
(self.rdoTreeTextNothing, "InfoText", "Nothing"),
]:
item.setChecked(settings.viewSettings["Tree"][what] == value)
item.toggled.connect(self.treeViewSettignsChanged)
self.populatesCmbBackgrounds(self.cmbCorkImage)
self.setCorkImageDefault()
@ -187,6 +199,21 @@ class settingsWindow(QWidget, Ui_Settings):
self.mw.redacEditor.outlineView.hideColumns()
self.mw.treePlanOutline.hideColumns()
def treeViewSettignsChanged(self):
for item, what, value in [
(self.rdoTreeItemCount, "InfoFolder", "Count"),
(self.rdoTreeWC, "InfoFolder", "WC"),
(self.rdoTreeProgress, "InfoFolder", "Progress"),
(self.rdoTreeNothing, "InfoFolder", "Nothing"),
(self.rdoTreeTextWC, "InfoText", "WC"),
(self.rdoTreeTextProgress, "InfoText", "Progress"),
(self.rdoTreeTextNothing, "InfoText", "Nothing"),
]:
if item.isChecked():
settings.viewSettings["Tree"][what] = value
self.mw.treeRedacOutline.viewport().update()
def setCorkColor(self):
color = QColor(settings.corkBackground["color"])
self.colorDialog = QColorDialog(color, self)

View file

@ -190,8 +190,8 @@ class Ui_Settings(object):
self.tabViews.setObjectName("tabViews")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.verticalLayout = QtWidgets.QVBoxLayout(self.tab)
self.verticalLayout.setObjectName("verticalLayout")
self.verticalLayout_17 = QtWidgets.QVBoxLayout(self.tab)
self.verticalLayout_17.setObjectName("verticalLayout_17")
self.groupBox_3 = QtWidgets.QGroupBox(self.tab)
font = QtGui.QFont()
font.setBold(True)
@ -273,9 +273,82 @@ class Ui_Settings(object):
self.cmbTreeBackground.addItem("")
self.cmbTreeBackground.addItem("")
self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.cmbTreeBackground)
self.verticalLayout.addWidget(self.groupBox_3)
self.verticalLayout_17.addWidget(self.groupBox_3)
self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
self.horizontalLayout_9.setObjectName("horizontalLayout_9")
self.groupBox_8 = QtWidgets.QGroupBox(self.tab)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.groupBox_8.setFont(font)
self.groupBox_8.setObjectName("groupBox_8")
self.verticalLayout_15 = QtWidgets.QVBoxLayout(self.groupBox_8)
self.verticalLayout_15.setObjectName("verticalLayout_15")
self.rdoTreeItemCount = QtWidgets.QRadioButton(self.groupBox_8)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.rdoTreeItemCount.setFont(font)
self.rdoTreeItemCount.setObjectName("rdoTreeItemCount")
self.verticalLayout_15.addWidget(self.rdoTreeItemCount)
self.rdoTreeWC = QtWidgets.QRadioButton(self.groupBox_8)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.rdoTreeWC.setFont(font)
self.rdoTreeWC.setObjectName("rdoTreeWC")
self.verticalLayout_15.addWidget(self.rdoTreeWC)
self.rdoTreeProgress = QtWidgets.QRadioButton(self.groupBox_8)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.rdoTreeProgress.setFont(font)
self.rdoTreeProgress.setObjectName("rdoTreeProgress")
self.verticalLayout_15.addWidget(self.rdoTreeProgress)
self.rdoTreeNothing = QtWidgets.QRadioButton(self.groupBox_8)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.rdoTreeNothing.setFont(font)
self.rdoTreeNothing.setChecked(True)
self.rdoTreeNothing.setObjectName("rdoTreeNothing")
self.verticalLayout_15.addWidget(self.rdoTreeNothing)
self.horizontalLayout_9.addWidget(self.groupBox_8)
self.groupBox_9 = QtWidgets.QGroupBox(self.tab)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.groupBox_9.setFont(font)
self.groupBox_9.setObjectName("groupBox_9")
self.verticalLayout_16 = QtWidgets.QVBoxLayout(self.groupBox_9)
self.verticalLayout_16.setObjectName("verticalLayout_16")
self.rdoTreeTextWC = QtWidgets.QRadioButton(self.groupBox_9)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.rdoTreeTextWC.setFont(font)
self.rdoTreeTextWC.setObjectName("rdoTreeTextWC")
self.verticalLayout_16.addWidget(self.rdoTreeTextWC)
self.rdoTreeTextProgress = QtWidgets.QRadioButton(self.groupBox_9)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.rdoTreeTextProgress.setFont(font)
self.rdoTreeTextProgress.setObjectName("rdoTreeTextProgress")
self.verticalLayout_16.addWidget(self.rdoTreeTextProgress)
self.rdoTreeTextNothing = QtWidgets.QRadioButton(self.groupBox_9)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.rdoTreeTextNothing.setFont(font)
self.rdoTreeTextNothing.setObjectName("rdoTreeTextNothing")
self.verticalLayout_16.addWidget(self.rdoTreeTextNothing)
spacerItem3 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem3)
self.verticalLayout_16.addItem(spacerItem3)
self.horizontalLayout_9.addWidget(self.groupBox_9)
self.verticalLayout_17.addLayout(self.horizontalLayout_9)
spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_17.addItem(spacerItem4)
self.tabViews.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
@ -436,8 +509,8 @@ class Ui_Settings(object):
self.chkOutlineTitle.setObjectName("chkOutlineTitle")
self.gridLayout.addWidget(self.chkOutlineTitle, 3, 0, 1, 1)
self.verticalLayout_11.addWidget(self.groupBox_6)
spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_11.addItem(spacerItem4)
spacerItem5 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_11.addItem(spacerItem5)
self.tabViews.addTab(self.tab_2, "")
self.tab_3 = QtWidgets.QWidget()
self.tab_3.setObjectName("tab_3")
@ -587,8 +660,8 @@ class Ui_Settings(object):
self.cmbCorkImage.setFont(font)
self.cmbCorkImage.setObjectName("cmbCorkImage")
self.verticalLayout_8.addWidget(self.cmbCorkImage)
spacerItem5 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_8.addItem(spacerItem5)
spacerItem6 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_8.addItem(spacerItem6)
self.horizontalLayout_4.addWidget(self.groupBox_7)
self.tabViews.addTab(self.tab_3, "")
self.verticalLayout_9.addWidget(self.tabViews)
@ -634,8 +707,8 @@ class Ui_Settings(object):
self.btnLabelColor.setIconSize(QtCore.QSize(64, 64))
self.btnLabelColor.setObjectName("btnLabelColor")
self.verticalLayout_2.addWidget(self.btnLabelColor)
spacerItem6 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_2.addItem(spacerItem6)
spacerItem7 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_2.addItem(spacerItem7)
self.horizontalLayout_2.addLayout(self.verticalLayout_2)
self.verticalLayout_3.addLayout(self.horizontalLayout_2)
self.horizontalLayout = QtWidgets.QHBoxLayout()
@ -652,8 +725,8 @@ class Ui_Settings(object):
self.btnLabelRemove.setIcon(icon)
self.btnLabelRemove.setObjectName("btnLabelRemove")
self.horizontalLayout.addWidget(self.btnLabelRemove)
spacerItem7 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem7)
spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem8)
self.verticalLayout_3.addLayout(self.horizontalLayout)
self.stack.addWidget(self.stackedWidgetPage3)
self.stackedWidgetPage4 = QtWidgets.QWidget()
@ -694,8 +767,8 @@ class Ui_Settings(object):
self.btnStatusRemove.setIcon(icon)
self.btnStatusRemove.setObjectName("btnStatusRemove")
self.horizontalLayout_3.addWidget(self.btnStatusRemove)
spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_3.addItem(spacerItem8)
spacerItem9 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_3.addItem(spacerItem9)
self.verticalLayout_4.addLayout(self.horizontalLayout_3)
self.stack.addWidget(self.stackedWidgetPage4)
self.page = QtWidgets.QWidget()
@ -750,8 +823,8 @@ class Ui_Settings(object):
self.btnThemeRemove.setIcon(icon)
self.btnThemeRemove.setObjectName("btnThemeRemove")
self.horizontalLayout_6.addWidget(self.btnThemeRemove)
spacerItem9 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_6.addItem(spacerItem9)
spacerItem10 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_6.addItem(spacerItem10)
self.verticalLayout_12.addLayout(self.horizontalLayout_6)
self.themeStack.addWidget(self.stackedWidgetPage1_3)
self.stackedWidgetPage2_3 = QtWidgets.QWidget()
@ -794,19 +867,19 @@ class Ui_Settings(object):
self.splitter.setHandleWidth(3)
self.splitter.setChildrenCollapsible(False)
self.splitter.setObjectName("splitter")
self.widget = QtWidgets.QWidget(self.splitter)
self.widget.setObjectName("widget")
self.verticalLayout_14 = QtWidgets.QVBoxLayout(self.widget)
self.layoutWidget = QtWidgets.QWidget(self.splitter)
self.layoutWidget.setObjectName("layoutWidget")
self.verticalLayout_14 = QtWidgets.QVBoxLayout(self.layoutWidget)
self.verticalLayout_14.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_14.setObjectName("verticalLayout_14")
self.cmbThemeEdit = QtWidgets.QComboBox(self.widget)
self.cmbThemeEdit = QtWidgets.QComboBox(self.layoutWidget)
self.cmbThemeEdit.setObjectName("cmbThemeEdit")
self.cmbThemeEdit.addItem("")
self.cmbThemeEdit.addItem("")
self.cmbThemeEdit.addItem("")
self.cmbThemeEdit.addItem("")
self.verticalLayout_14.addWidget(self.cmbThemeEdit)
self.themeEditStack = QtWidgets.QStackedWidget(self.widget)
self.themeEditStack = QtWidgets.QStackedWidget(self.layoutWidget)
self.themeEditStack.setObjectName("themeEditStack")
self.stackedWidgetPage1_2 = QtWidgets.QWidget()
self.stackedWidgetPage1_2.setObjectName("stackedWidgetPage1_2")
@ -1077,8 +1150,8 @@ class Ui_Settings(object):
self.horizontalLayout_8.addWidget(self.stack)
self.retranslateUi(Settings)
self.stack.setCurrentIndex(4)
self.tabViews.setCurrentIndex(2)
self.stack.setCurrentIndex(1)
self.tabViews.setCurrentIndex(0)
self.themeStack.setCurrentIndex(1)
self.themeEditStack.setCurrentIndex(1)
self.lstMenu.currentRowChanged['int'].connect(self.stack.setCurrentIndex)
@ -1129,6 +1202,15 @@ class Ui_Settings(object):
self.cmbTreeBackground.setItemText(2, _translate("Settings", "Label"))
self.cmbTreeBackground.setItemText(3, _translate("Settings", "Progress"))
self.cmbTreeBackground.setItemText(4, _translate("Settings", "Compile"))
self.groupBox_8.setTitle(_translate("Settings", "Folders"))
self.rdoTreeItemCount.setText(_translate("Settings", "Show item count"))
self.rdoTreeWC.setText(_translate("Settings", "Show wordcount"))
self.rdoTreeProgress.setText(_translate("Settings", "Show progress"))
self.rdoTreeNothing.setText(_translate("Settings", "Nothing"))
self.groupBox_9.setTitle(_translate("Settings", "Text"))
self.rdoTreeTextWC.setText(_translate("Settings", "Show wordcount"))
self.rdoTreeTextProgress.setText(_translate("Settings", "Show progress"))
self.rdoTreeTextNothing.setText(_translate("Settings", "Nothing"))
self.tabViews.setTabText(self.tabViews.indexOf(self.tab), _translate("Settings", "Tree"))
self.groupBox_4.setTitle(_translate("Settings", "Colors"))
self.label_6.setText(_translate("Settings", "Icon color:"))

View file

@ -46,7 +46,7 @@
<item>
<widget class="QStackedWidget" name="stack">
<property name="currentIndex">
<number>4</number>
<number>1</number>
</property>
<widget class="QWidget" name="stackedWidgetPage1">
<layout class="QVBoxLayout" name="verticalLayout_7">
@ -361,13 +361,13 @@ text-align:center;</string>
<item>
<widget class="QTabWidget" name="tabViews">
<property name="currentIndex">
<number>2</number>
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Tree</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout">
<layout class="QVBoxLayout" name="verticalLayout_17">
<item>
<widget class="QGroupBox" name="groupBox_3">
<property name="font">
@ -548,6 +548,153 @@ text-align:center;</string>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_9">
<item>
<widget class="QGroupBox" name="groupBox_8">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="title">
<string>Folders</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_15">
<item>
<widget class="QRadioButton" name="rdoTreeItemCount">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Show item count</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rdoTreeWC">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Show wordcount</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rdoTreeProgress">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Show progress</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rdoTreeNothing">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Nothing</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_9">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="title">
<string>Text</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_16">
<item>
<widget class="QRadioButton" name="rdoTreeTextWC">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Show wordcount</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rdoTreeTextProgress">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Show progress</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rdoTreeTextNothing">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Nothing</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_6">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_3">
<property name="orientation">
@ -1508,7 +1655,7 @@ text-align:center;</string>
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="stackedWidgetPage1_3" native="true">
<widget class="QWidget" name="stackedWidgetPage1_3">
<layout class="QVBoxLayout" name="verticalLayout_12">
<property name="margin">
<number>0</number>
@ -1583,7 +1730,7 @@ text-align:center;</string>
</item>
</layout>
</widget>
<widget class="QWidget" name="stackedWidgetPage2_3" native="true">
<widget class="QWidget" name="stackedWidgetPage2_3">
<layout class="QVBoxLayout" name="verticalLayout_13">
<property name="margin">
<number>0</number>
@ -1646,7 +1793,7 @@ text-align:center;</string>
<property name="childrenCollapsible">
<bool>false</bool>
</property>
<widget class="QWidget" name="">
<widget class="QWidget" name="layoutWidget">
<layout class="QVBoxLayout" name="verticalLayout_14">
<item>
<widget class="QComboBox" name="cmbThemeEdit">
@ -1677,7 +1824,7 @@ text-align:center;</string>
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="stackedWidgetPage1_2" native="true">
<widget class="QWidget" name="stackedWidgetPage1_2">
<layout class="QFormLayout" name="formLayout_4">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
@ -1749,7 +1896,7 @@ text-align:center;</string>
</item>
</layout>
</widget>
<widget class="QWidget" name="stackedWidgetPage2_2" native="true">
<widget class="QWidget" name="stackedWidgetPage2_2">
<layout class="QFormLayout" name="formLayout_5">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
@ -2033,7 +2180,7 @@ text-align:center;</string>
</item>
</layout>
</widget>
<widget class="QWidget" name="stackedWidgetPage3_2" native="true">
<widget class="QWidget" name="stackedWidgetPage3_2">
<layout class="QFormLayout" name="formLayout_6">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>

View file

@ -83,6 +83,39 @@ class treeTitleDelegate(QStyledItemDelegate):
elidedText = fm.elidedText(opt.text, Qt.ElideRight, textRect.width())
painter.drawText(textRect, Qt.AlignLeft, elidedText)
extraText = ""
if item.isFolder() and settings.viewSettings["Tree"]["InfoFolder"] != "Nothing":
if settings.viewSettings["Tree"]["InfoFolder"] == "Count":
extraText = item.childCount()
extraText = " [{}]".format(extraText)
elif settings.viewSettings["Tree"]["InfoFolder"] == "WC":
extraText = item.data(Outline.wordCount.value)
extraText = " ({})".format(extraText)
elif settings.viewSettings["Tree"]["InfoFolder"] == "Progress":
extraText = int(toFloat(item.data(Outline.goalPercentage.value)) * 100)
if extraText:
extraText = " ({}%)".format(extraText)
if item.isText() and settings.viewSettings["Tree"]["InfoText"] != "Nothing":
if settings.viewSettings["Tree"]["InfoText"] == "WC":
extraText = item.data(Outline.wordCount.value)
extraText = " ({})".format(extraText)
elif settings.viewSettings["Tree"]["InfoText"] == "Progress":
extraText = int(toFloat(item.data(Outline.goalPercentage.value)) * 100)
if extraText:
extraText = " ({}%)".format(extraText)
if extraText:
r = QRect(textRect)
r.setLeft(r.left() + fm.width(opt.text + " "))
painter.save()
painter.setPen(Qt.darkGray)
painter.drawText(r, Qt.AlignLeft | Qt.AlignBottom, extraText)
painter.restore()
painter.restore()
#QStyledItemDelegate.paint(self, painter, option, index)