Added pretty label for template goal

Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
This commit is contained in:
TheJackiMonster 2022-09-15 23:53:15 +02:00
parent 0d2066d207
commit 2aa65fc815
No known key found for this signature in database
GPG key ID: D850A5F772E880F9
4 changed files with 56 additions and 11 deletions

View file

@ -16,9 +16,12 @@ class Goal:
self.value = max(value, 0)
self.kind = kind
def prettyString(self):
return str(self.value) + " " + self.kind.name.lower()
def __str__(self):
if self.kind != GoalKind.WORDS:
return str(self.value) + " " + self.kind.name.lower()
return self.prettyString()
else:
return str(self.value)

View file

@ -61,6 +61,16 @@ class Template:
self.goal = Goal(value)
def getGoalString(self):
if self.goal is None:
return "?"
value = self.goal.value
for level in self.levels:
value = value * level.size
return Goal(value, self.goal.kind).prettyString()
@classmethod
def getDefaultTemplates(cls):
templates = list()

View file

@ -33,6 +33,7 @@ class StartupWindow(AbstractDialog):
self.templateSelections = list()
self.templateLevelsListbox = None
self.goalLabel = None
self.addLevelButton = None
self.addGoalButton = None
@ -89,6 +90,7 @@ class StartupWindow(AbstractDialog):
self.templateLevelsListbox = builder.get_object("template_levels_listbox")
self.goalLabel = builder.get_object("goal_label")
self.addLevelButton = builder.get_object("add_level_button")
self.addGoalButton = builder.get_object("add_goal_button")
@ -107,18 +109,20 @@ class StartupWindow(AbstractDialog):
for level in self.template.levels:
entry = TemplateEntry(self)
entry.bindTemplate(template, level)
entry.bindTemplate(self.template, level)
self.templateLevelsListbox.add(entry.widget)
entry.show()
if template.goal is not None:
if self.template.goal is not None:
entry = TemplateEntry(self)
entry.bindTemplate(template)
entry.bindTemplate(self.template)
self.templateLevelsListbox.add(entry.widget)
entry.show()
self.goalLabel.set_text(self.template.getGoalString())
def templateSelectionChanged(self, selection: Gtk.TreeSelection):
model, tree_iter = selection.get_selected()

View file

@ -336,12 +336,40 @@
<property name="can-focus">False</property>
<property name="spacing">4</property>
<child>
<object class="GtkLabel">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Total: ? words (~? pages)</property>
<property name="ellipsize">end</property>
<property name="xalign">0</property>
<property name="border-width">2</property>
<property name="spacing">4</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Total:</property>
<property name="ellipsize">end</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="goal_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
@ -431,7 +459,7 @@
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">6</property>
<property name="spacing">4</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
@ -477,7 +505,7 @@
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">6</property>
<property name="spacing">4</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
@ -520,7 +548,7 @@
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">6</property>
<property name="spacing">4</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>