summaryrefslogtreecommitdiff
path: root/lib/gui/lettering_font_sample.py
diff options
context:
space:
mode:
authorKaalleen <36401965+kaalleen@users.noreply.github.com>2024-10-21 17:01:58 +0200
committerGitHub <noreply@github.com>2024-10-21 17:01:58 +0200
commitc6fecfb0bc91d94f56da43e242b6e59b41058094 (patch)
tree7d33e5a67d97461089ffb6f0dbfeb1fefa95cbd0 /lib/gui/lettering_font_sample.py
parentdbfdb3e8d4fe3787927e8ab536473f9db6264e2b (diff)
Add color sort option for multicolor fonts (#3242)
Diffstat (limited to 'lib/gui/lettering_font_sample.py')
-rw-r--r--lib/gui/lettering_font_sample.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/lib/gui/lettering_font_sample.py b/lib/gui/lettering_font_sample.py
index e5312c7e..984f6356 100644
--- a/lib/gui/lettering_font_sample.py
+++ b/lib/gui/lettering_font_sample.py
@@ -36,7 +36,7 @@ class FontSampleFrame(wx.Frame):
self.font_chooser = wx.adv.BitmapComboBox(self.settings, wx.ID_ANY, style=wx.CB_READONLY | wx.CB_SORT, size=((800, 20)))
self.font_chooser.Bind(wx.EVT_COMBOBOX, self.on_font_changed)
- grid_settings_sizer = wx.FlexGridSizer(6, 2, 5, 5)
+ grid_settings_sizer = wx.FlexGridSizer(7, 2, 5, 5)
grid_settings_sizer.AddGrowableCol(1)
direction_label = wx.StaticText(self.settings, label=_("Stitch direction"))
@@ -45,6 +45,7 @@ class FontSampleFrame(wx.Frame):
self.scale_spinner = wx.SpinCtrl(self.settings, wx.ID_ANY, min=0, max=1000, initial=100)
max_line_width_label = wx.StaticText(self.settings, label=_("Max. line width"))
self.max_line_width = wx.SpinCtrl(self.settings, wx.ID_ANY, min=0, max=5000, initial=180)
+ self.color_sort_checkbox = wx.CheckBox(self.settings, label=_("Color sort"))
grid_settings_sizer.Add(direction_label, 0, wx.ALIGN_LEFT, 0)
grid_settings_sizer.Add(self.direction, 0, wx.EXPAND, 0)
@@ -52,6 +53,8 @@ class FontSampleFrame(wx.Frame):
grid_settings_sizer.Add(self.scale_spinner, 0, wx.EXPAND, 0)
grid_settings_sizer.Add(max_line_width_label, 0, wx.ALIGN_LEFT, 0)
grid_settings_sizer.Add(self.max_line_width, 0, wx.EXPAND, 0)
+ grid_settings_sizer.Add(wx.StaticText(), 0, wx.ALIGN_LEFT, 0)
+ grid_settings_sizer.Add(self.color_sort_checkbox, 0, wx.EXPAND, 0)
apply_sizer = wx.BoxSizer(wx.HORIZONTAL)
self.cancel_button = wx.Button(self.settings, label=_("Cancel"))
@@ -127,6 +130,10 @@ class FontSampleFrame(wx.Frame):
for variant in font.has_variants():
self.direction.Append(variant)
self.direction.SetSelection(0)
+ if font.sortable:
+ self.color_sort_checkbox.Enable()
+ else:
+ self.color_sort_checkbox.Disable()
def apply(self, event):
# apply scale to layer and extract for later use
@@ -142,6 +149,7 @@ class FontSampleFrame(wx.Frame):
# parameters
line_width = self.max_line_width.GetValue()
direction = self.direction.GetValue()
+ color_sort = self.sortable(font)
font._load_variants()
font_variant = font.variants[direction]
@@ -192,9 +200,15 @@ class FontSampleFrame(wx.Frame):
width += width_to_add
# render text and close
- font.render_text(text, self.layer, variant=direction, back_and_forth=False)
+ font.render_text(text, self.layer, variant=direction, back_and_forth=False, color_sort=color_sort)
self.GetTopLevelParent().Close()
+ def sortable(self, font):
+ color_sort = self.color_sort_checkbox.GetValue()
+ if color_sort and not font.sortable:
+ color_sort = False
+ return color_sort
+
def duplicate_warning(self, font):
# warn about duplicated glyphs
if len(set(font.available_glyphs)) != len(font.available_glyphs):