From 8d2f90f8006946d59586c2d2d738aa72b05a4221 Mon Sep 17 00:00:00 2001 From: alfrix Date: Tue, 22 Nov 2022 00:44:51 -0300 Subject: [PATCH] set title for internal options subpanels the menu/subpanel system is a bit complex and hard to use consider removing it and use individual panels of options --- ks_includes/screen_panel.py | 6 ++++-- panels/gcode_macros.py | 2 +- panels/move.py | 2 +- panels/settings.py | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ks_includes/screen_panel.py b/ks_includes/screen_panel.py index b5342fb7..cfbaa7cc 100644 --- a/ks_includes/screen_panel.py +++ b/ks_includes/screen_panel.py @@ -61,7 +61,7 @@ class ScreenPanel: def show_all(self): self._screen.show_all() - def load_menu(self, widget, name): + def load_menu(self, widget, name, title=None): if f"{name}_menu" not in self.labels: return @@ -71,12 +71,14 @@ class ScreenPanel: self.menu.append(f'{name}_menu') self.content.add(self.labels[self.menu[-1]]) self.content.show_all() + if title: + self._screen.base_panel.set_title(f"{self.title} | {title}") def unload_menu(self, widget=None): logging.debug(f"self.menu: {self.menu}") if len(self.menu) <= 1 or self.menu[-2] not in self.labels: return - + self._screen.base_panel.set_title(self._screen.panels[self._screen._cur_panels[-1]].title) self.menu.pop() for child in self.content.get_children(): self.content.remove(child) diff --git a/panels/gcode_macros.py b/panels/gcode_macros.py index 209cc55d..bf910bae 100644 --- a/panels/gcode_macros.py +++ b/panels/gcode_macros.py @@ -28,7 +28,7 @@ class MacroPanel(ScreenPanel): sort.set_hexpand(False) adjust = self._gtk.ButtonImage("settings", None, "color2", 1, Gtk.PositionType.LEFT, 1) - adjust.connect("clicked", self.load_menu, 'options') + adjust.connect("clicked", self.load_menu, 'options', _("Settings")) adjust.set_hexpand(False) sbox = Gtk.Box() diff --git a/panels/move.py b/panels/move.py index 1a3f4089..f99332ed 100644 --- a/panels/move.py +++ b/panels/move.py @@ -113,7 +113,7 @@ class MovePanel(ScreenPanel): self.labels['pos_y'] = Gtk.Label("Y: 0") self.labels['pos_z'] = Gtk.Label("Z: 0") adjust = self._gtk.ButtonImage("settings", None, "color2", 1, Gtk.PositionType.LEFT, 1) - adjust.connect("clicked", self.load_menu, 'options') + adjust.connect("clicked", self.load_menu, 'options', _('Settings')) adjust.set_hexpand(False) self.labels['move_dist'] = Gtk.Label(_("Move Distance (mm)")) diff --git a/panels/settings.py b/panels/settings.py index d7d12689..e10bbdc8 100644 --- a/panels/settings.py +++ b/panels/settings.py @@ -120,7 +120,7 @@ class SettingsPanel(ScreenPanel): dev.add(box) elif option['type'] == "menu": open_menu = self._gtk.ButtonImage("settings", style="color3") - open_menu.connect("clicked", self.load_menu, option['menu']) + open_menu.connect("clicked", self.load_menu, option['menu'], option['name']) open_menu.set_hexpand(False) open_menu.set_halign(Gtk.Align.END) dev.add(open_menu)