The histogram bar of the writing stats dialog can now be capped
This commit is contained in:
+20
-6
@@ -36,7 +36,7 @@ from PyQt5.QtCore import Qt
|
|||||||
from PyQt5.QtGui import QFont, QPixmap
|
from PyQt5.QtGui import QFont, QPixmap
|
||||||
from PyQt5.QtWidgets import (
|
from PyQt5.QtWidgets import (
|
||||||
qApp, QDialog, QTreeWidget, QTreeWidgetItem, QDialogButtonBox, QGridLayout,
|
qApp, QDialog, QTreeWidget, QTreeWidgetItem, QDialogButtonBox, QGridLayout,
|
||||||
QLabel, QGroupBox, QMenu, QAction, QFileDialog
|
QLabel, QGroupBox, QMenu, QAction, QFileDialog, QSpinBox, QHBoxLayout
|
||||||
)
|
)
|
||||||
|
|
||||||
from nw.constants import nwConst, nwFiles, nwAlert
|
from nw.constants import nwConst, nwFiles, nwAlert
|
||||||
@@ -207,6 +207,18 @@ class GuiWritingStats(QDialog):
|
|||||||
self.filterForm.addWidget(self.groupByDay, 4, 1)
|
self.filterForm.addWidget(self.groupByDay, 4, 1)
|
||||||
self.filterForm.setRowStretch(5, 1)
|
self.filterForm.setRowStretch(5, 1)
|
||||||
|
|
||||||
|
# Settings
|
||||||
|
self.histMax = QSpinBox(self)
|
||||||
|
self.histMax.setMinimum(100)
|
||||||
|
self.histMax.setMaximum(100000)
|
||||||
|
self.histMax.setSingleStep(100)
|
||||||
|
self.histMax.valueChanged.connect(self._updateListBox)
|
||||||
|
|
||||||
|
self.optsBox = QHBoxLayout()
|
||||||
|
self.optsBox.addStretch(1)
|
||||||
|
self.optsBox.addWidget(QLabel("Word count cap for histogram"), 0)
|
||||||
|
self.optsBox.addWidget(self.histMax, 0)
|
||||||
|
|
||||||
# Buttons
|
# Buttons
|
||||||
self.buttonBox = QDialogButtonBox(QDialogButtonBox.Close)
|
self.buttonBox = QDialogButtonBox(QDialogButtonBox.Close)
|
||||||
self.buttonBox.rejected.connect(self._doClose)
|
self.buttonBox.rejected.connect(self._doClose)
|
||||||
@@ -226,9 +238,10 @@ class GuiWritingStats(QDialog):
|
|||||||
# Assemble
|
# Assemble
|
||||||
self.outerBox = QGridLayout()
|
self.outerBox = QGridLayout()
|
||||||
self.outerBox.addWidget(self.listBox, 0, 0, 1, 2)
|
self.outerBox.addWidget(self.listBox, 0, 0, 1, 2)
|
||||||
self.outerBox.addWidget(self.infoBox, 1, 0)
|
self.outerBox.addLayout(self.optsBox, 1, 0, 1, 2)
|
||||||
self.outerBox.addWidget(self.filterBox, 1, 1)
|
self.outerBox.addWidget(self.infoBox, 2, 0)
|
||||||
self.outerBox.addWidget(self.buttonBox, 2, 0, 1, 2)
|
self.outerBox.addWidget(self.filterBox, 2, 1)
|
||||||
|
self.outerBox.addWidget(self.buttonBox, 3, 0, 1, 2)
|
||||||
self.outerBox.setRowStretch(0, 1)
|
self.outerBox.setRowStretch(0, 1)
|
||||||
|
|
||||||
self.setLayout(self.outerBox)
|
self.setLayout(self.outerBox)
|
||||||
@@ -449,6 +462,7 @@ class GuiWritingStats(QDialog):
|
|||||||
hideZeros = self.hideZeros.isChecked()
|
hideZeros = self.hideZeros.isChecked()
|
||||||
hideNegative = self.hideNegative.isChecked()
|
hideNegative = self.hideNegative.isChecked()
|
||||||
groupByDay = self.groupByDay.isChecked()
|
groupByDay = self.groupByDay.isChecked()
|
||||||
|
histMax = self.histMax.value()
|
||||||
|
|
||||||
# Group the data
|
# Group the data
|
||||||
if groupByDay:
|
if groupByDay:
|
||||||
@@ -509,7 +523,7 @@ class GuiWritingStats(QDialog):
|
|||||||
sStart = dStart.strftime(nwConst.tStampFmt)
|
sStart = dStart.strftime(nwConst.tStampFmt)
|
||||||
|
|
||||||
self.filterData.append((dStart, sStart, sDiff, dwTotal, wcNovel, wcNotes))
|
self.filterData.append((dStart, sStart, sDiff, dwTotal, wcNovel, wcNotes))
|
||||||
listMax = max(listMax, dwTotal)
|
listMax = min(max(listMax, dwTotal), histMax)
|
||||||
pcTotal = wcTotal
|
pcTotal = wcTotal
|
||||||
|
|
||||||
# Populate the list
|
# Populate the list
|
||||||
@@ -522,7 +536,7 @@ class GuiWritingStats(QDialog):
|
|||||||
|
|
||||||
if nWords > 0 and listMax > 0:
|
if nWords > 0 and listMax > 0:
|
||||||
theBar = self.barImage.scaled(
|
theBar = self.barImage.scaled(
|
||||||
int(200*nWords/listMax),
|
int(200*min(nWords, histMax)/listMax),
|
||||||
self.barHeight,
|
self.barHeight,
|
||||||
Qt.IgnoreAspectRatio,
|
Qt.IgnoreAspectRatio,
|
||||||
Qt.FastTransformation
|
Qt.FastTransformation
|
||||||
|
|||||||
Reference in New Issue
Block a user