From 574066d95c24df97b9fb696d8d31b56b10f567a2 Mon Sep 17 00:00:00 2001 From: alfrix Date: Thu, 18 Apr 2024 20:04:16 -0300 Subject: [PATCH] bed_mesh: deduplicate some code --- panels/bed_mesh.py | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/panels/bed_mesh.py b/panels/bed_mesh.py index e526f0bc..ef357caa 100644 --- a/panels/bed_mesh.py +++ b/panels/bed_mesh.py @@ -62,9 +62,7 @@ class Panel(ScreenPanel): self.profiles[self.active_mesh]['name'].get_style_context().remove_class("button_active") if profile == "": logging.info("Clearing active profile") - self.active_mesh = None - self.update_graph() - self.buttons['clear'].set_sensitive(False) + self._clear_profile() return if profile not in self.profiles: self.add_profile(profile) @@ -139,12 +137,7 @@ class Panel(ScreenPanel): "delete": buttons["delete"], } - pl = list(self.profiles) - if "default" in pl: - pl.remove('default') - profiles = sorted(pl) - pos = profiles.index(profile) + 1 if profile != "default" else 0 - + pos = self._get_position(profile) self.labels['profiles'].insert_row(pos) self.labels['profiles'].attach(self.profiles[profile]['row'], 0, pos, 1, 1) self.labels['profiles'].show_all() @@ -186,17 +179,23 @@ class Panel(ScreenPanel): if profile not in self.profiles: return + pos = self._get_position(profile) + self.labels['profiles'].remove_row(pos) + del self.profiles[profile] + if not self.profiles: + self._clear_profile() + + def _clear_profile(self): + self.active_mesh = None + self.update_graph() + self.buttons['clear'].set_sensitive(False) + + def _get_position(self, profile): pl = list(self.profiles) if "default" in pl: pl.remove('default') profiles = sorted(pl) - pos = profiles.index(profile) + 1 if profile != "default" else 0 - self.labels['profiles'].remove_row(pos) - del self.profiles[profile] - if not self.profiles: - self.active_mesh = None - self.update_graph() - self.buttons['clear'].set_sensitive(False) + return profiles.index(profile) + 1 if profile != "default" else 0 def show_create_profile(self, widget):