summaryrefslogtreecommitdiff
path: root/lib/gui/edit_json/main_panel.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gui/edit_json/main_panel.py')
-rw-r--r--lib/gui/edit_json/main_panel.py22
1 files changed, 17 insertions, 5 deletions
diff --git a/lib/gui/edit_json/main_panel.py b/lib/gui/edit_json/main_panel.py
index 8b896629..895baef4 100644
--- a/lib/gui/edit_json/main_panel.py
+++ b/lib/gui/edit_json/main_panel.py
@@ -1,6 +1,6 @@
# Authors: see git history
#
-# Copyright (c) 2023 Authors
+# Copyright (c) 2025 Authors
# Licensed under the GNU GPL version 3.0 or later. See the file LICENSE for details.
import json
@@ -41,7 +41,7 @@ class LetteringEditJsonPanel(wx.Panel):
self.font = None
self.default_variant = None
self.font_meta = defaultdict(list)
- self.glyphs = None
+ self.glyphs = []
self.kerning_pairs = None
self.kerning_combinations = []
self.horiz_adv_x = {}
@@ -240,14 +240,17 @@ class LetteringEditJsonPanel(wx.Panel):
self.horiz_adv_x = self.font.horiz_adv_x
kerning_combinations = combinations_with_replacement(self.glyphs, 2)
- self.kerning_combinations = [' '.join(combination) for combination in kerning_combinations]
- self.kerning_combinations.extend([f'{combination[1]} {combination[0]}' for combination in kerning_combinations])
+ self.kerning_combinations = []
+ for combination in kerning_combinations:
+ self.kerning_combinations.append(f'{combination[0]} {combination[1]}')
+ self.kerning_combinations.append(f'{combination[1]} {combination[0]}')
self.kerning_combinations = list(set(self.kerning_combinations))
self.kerning_combinations.sort()
self.update_legacy_kerning_pairs()
self.update_settings()
self.update_kerning_list()
+ self.update_filter_list()
self.update_glyph_list()
self.update_preview()
@@ -314,7 +317,14 @@ class LetteringEditJsonPanel(wx.Panel):
self.settings_panel.font_kerning.horiz_adv_x_default.SetValue(self.font.horiz_adv_x_default)
self.settings_panel.font_kerning.horiz_adv_x_space.SetValue(self.font.word_spacing)
- def update_kerning_list(self):
+ def update_filter_list(self):
+ # Update filter list
+ self.settings_panel.kerning_filter.Clear()
+ choices = [' '] + self.glyphs
+ self.settings_panel.kerning_filter.AppendItems(choices)
+ self.settings_panel.kerning_filter.update_choices(choices)
+
+ def update_kerning_list(self, filter_value=None):
kerning_list = self.settings_panel.kerning_list
# Add the rows
kerning_list.ClearAll()
@@ -323,6 +333,8 @@ class LetteringEditJsonPanel(wx.Panel):
kerning_list.AppendColumn("Current kerning", width=wx.LIST_AUTOSIZE_USEHEADER)
kerning_list.AppendColumn("New kerning", width=wx.LIST_AUTOSIZE_USEHEADER)
for kerning_pair in self.kerning_combinations:
+ if filter_value is not None and filter_value.strip() not in kerning_pair:
+ continue
if self.font_meta['text_direction'] == 'rtl':
pair = kerning_pair.split()
kerning_pair = ' '.join(pair[::-1])