From e8a2d3443eb9c92331cb95a3c1c56fcd405b19b8 Mon Sep 17 00:00:00 2001 From: Chad Condon Date: Mon, 24 Jul 2023 13:00:12 -0700 Subject: [PATCH] Improve name presentation (#1055) * Preserve manual capitalization Avoid re-capitalizing names that already include uppercase letters. This improves the presentation of names like "TMC2209", etc. when the user has manually capitalized the name. * Use title case Use title case instead of only capitalizing the first character. Ex. `heater_bed` now becomes "Heater Bed" instead of "Heater bed". --- ks_includes/screen_panel.py | 7 +++++++ panels/base_panel.py | 2 +- panels/extrude.py | 2 +- panels/main_menu.py | 2 +- panels/temperature.py | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ks_includes/screen_panel.py b/ks_includes/screen_panel.py index 989256aa..5f378837 100644 --- a/ks_includes/screen_panel.py +++ b/ks_includes/screen_panel.py @@ -159,6 +159,13 @@ class ScreenPanel: if size < unit: return f"{(1024 * size / unit):.1f} {suffix}" + @staticmethod + def prettify(name: str): + name = name.replace("_", " ") + if name.islower(): + name = name.title() + return name + def update_temp(self, dev, temp, target, power, lines=1): if temp is None: return diff --git a/panels/base_panel.py b/panels/base_panel.py index be6810b7..3b9810aa 100644 --- a/panels/base_panel.py +++ b/panels/base_panel.py @@ -236,7 +236,7 @@ class BasePanel(ScreenPanel): if not (device.startswith("extruder") or device.startswith("heater_bed")): if self.titlebar_name_type == "full": name = device.split()[1] if len(device.split()) > 1 else device - name = f'{name.capitalize().replace("_", " ")}: ' + name = f'{self.prettify(name)}: ' elif self.titlebar_name_type == "short": name = device.split()[1] if len(device.split()) > 1 else device name = f"{name[:1].upper()}: " diff --git a/panels/extrude.py b/panels/extrude.py index 0a9a1729..867658be 100644 --- a/panels/extrude.py +++ b/panels/extrude.py @@ -129,7 +129,7 @@ class ExtrudePanel(ScreenPanel): break name = x[23:].strip() self.labels[x] = { - 'label': Gtk.Label(name.capitalize().replace('_', ' ')), + 'label': Gtk.Label(self.prettify(name)), 'switch': Gtk.Switch(), 'box': Gtk.Box() } diff --git a/panels/main_menu.py b/panels/main_menu.py index 6b5c192e..c5298152 100644 --- a/panels/main_menu.py +++ b/panels/main_menu.py @@ -151,7 +151,7 @@ class MainPanel(MenuPanel): if can_target: self.labels['da'].add_object(device, "targets", rgb, True, False) - name = self._gtk.Button(image, devname.capitalize().replace("_", " "), None, self.bts, Gtk.PositionType.LEFT, 1) + name = self._gtk.Button(image, self.prettify(devname), None, self.bts, Gtk.PositionType.LEFT, 1) name.connect("clicked", self.toggle_visibility, device) name.set_alignment(0, .5) visible = self._config.get_config().getboolean(f"graph {self._screen.connected_printer}", device, fallback=True) diff --git a/panels/temperature.py b/panels/temperature.py index 29e410d8..ebc2c8fa 100644 --- a/panels/temperature.py +++ b/panels/temperature.py @@ -328,7 +328,7 @@ class TemperaturePanel(ScreenPanel): rgb = self._gtk.get_temp_color(dev_type) - name = self._gtk.Button(image, devname.capitalize().replace("_", " "), None, self.bts, Gtk.PositionType.LEFT, 1) + name = self._gtk.Button(image, self.prettify(devname), None, self.bts, Gtk.PositionType.LEFT, 1) name.set_alignment(0, .5) visible = self._config.get_config().getboolean(f"graph {self._screen.connected_printer}", device, fallback=True) if visible: