Merge pull request #339 from lechbaczynski/characterscount

- adding characters count. Implementing #334
This commit is contained in:
Tobias Frisch 2021-02-19 15:05:43 +01:00 committed by GitHub
commit 0de131f392
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 5 deletions

View file

@ -60,6 +60,7 @@ class Outline(IntEnum):
textFormat = 15
revisions = 16
customIcon = 17
charCount = 18
class Abstract(IntEnum):
title = 0

View file

@ -80,6 +80,9 @@ class outlineItem(abstractItem):
def wordCount(self):
return self._data.get(self.enum.wordCount, 0)
def charCount(self):
return self._data.get(self.enum.charCount, 0)
def __str__(self):
return "{id}: {folder}{title}{children}".format(
id=self.ID(),
@ -154,6 +157,7 @@ class outlineItem(abstractItem):
if column == E.text:
wc = F.wordCount(data)
self.setData(E.wordCount, wc)
self.setData(E.charCount, len(data))
if column == E.compile:
# Title changes when compile changes
@ -195,9 +199,12 @@ class outlineItem(abstractItem):
else:
wc = 0
cc = 0
for c in self.children():
wc += F.toInt(c.data(self.enum.wordCount))
cc += F.toInt(c.data(self.enum.charCount))
self._data[self.enum.wordCount] = wc
self._data[self.enum.charCount] = cc
setGoal = F.toInt(self.data(self.enum.setGoal))
goal = F.toInt(self.data(self.enum.goal))
@ -467,6 +474,7 @@ class outlineItem(abstractItem):
# We don't want to write some datas (computed)
XMLExclude = [enums.Outline.wordCount,
enums.Outline.charCount,
enums.Outline.goal,
enums.Outline.goalPercentage,
enums.Outline.revisions]

View file

@ -302,11 +302,14 @@ class mainEditor(QWidget, Ui_mainEditor):
wc = item.data(Outline.wordCount)
goal = item.data(Outline.goal)
chars = item.data(Outline.charCount) # len(item.data(Outline.text))
progress = item.data(Outline.goalPercentage)
goal = uiParse(goal, None, int, lambda x: x>=0)
progress = uiParse(progress, 0.0, float)
if not chars:
chars = 0
if not wc:
wc = 0
if goal:
@ -319,13 +322,15 @@ class mainEditor(QWidget, Ui_mainEditor):
drawProgress(p, rect, progress, 2)
del p
self.lblRedacProgress.setPixmap(self.px)
self.lblRedacWC.setText(self.tr("{} words / {} ").format(
locale.format_string("%d", wc, grouping=True),
locale.format_string("%d", goal, grouping=True)))
self.lblRedacWC.setText(self.tr("({} chars) {} words / {} ").format(
locale.format("%d", chars, grouping=True),
locale.format("%d", wc, grouping=True),
locale.format("%d", goal, grouping=True)))
else:
self.lblRedacProgress.hide()
self.lblRedacWC.setText(self.tr("{} words ").format(
locale.format_string("%d", wc, grouping=True)))
self.lblRedacWC.setText(self.tr("({} chars) {} words ").format(
locale.format("%d", chars, grouping=True),
locale.format("%d", wc, grouping=True)))
###############################################################################
# VIEWS