diff options
| author | Kaalleen <36401965+kaalleen@users.noreply.github.com> | 2025-02-12 16:58:26 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-12 16:58:26 +0100 |
| commit | 9ac55934fa18748f84dd69e980cc370291a1976b (patch) | |
| tree | 7979a38c6a6aea90fdc0bbbb7c156f2404d3f62b /lib/gui/edit_json/main_panel.py | |
| parent | 81c1fd834f6e7da658f14f1ba695d79e694ff6bc (diff) | |
Edit-json: add kerning filter (#3499)
* edit-json: add kerning filter
* fix missing kerning pairs
Diffstat (limited to 'lib/gui/edit_json/main_panel.py')
| -rw-r--r-- | lib/gui/edit_json/main_panel.py | 22 |
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]) |
