From ef81bb47691607fd67e6d6eba5587d8925cdc9d0 Mon Sep 17 00:00:00 2001 From: Alfredo Monclus Date: Mon, 10 Jun 2024 22:55:57 -0300 Subject: [PATCH] layout: various tweaks increase font-size job_status improved auto-sized thumb prioritize data over names in main and temp --- ks_includes/KlippyGtk.py | 15 ++++++++------- ks_includes/screen_panel.py | 2 ++ panels/job_status.py | 18 +++++++++++------- panels/main_menu.py | 2 ++ panels/temperature.py | 1 + 5 files changed, 24 insertions(+), 14 deletions(-) diff --git a/ks_includes/KlippyGtk.py b/ks_includes/KlippyGtk.py index d028019c..fdb95c65 100644 --- a/ks_includes/KlippyGtk.py +++ b/ks_includes/KlippyGtk.py @@ -39,7 +39,7 @@ class KlippyGtk: self.width = screen.width self.height = screen.height self.ultra_tall = (self.height / self.width) >= 3 - self.font_ratio = [31, 47] if self.screen.vertical_mode else [43, 29] + self.font_ratio = [28, 42] if self.screen.vertical_mode else [40, 27] self.font_size = min(self.width / self.font_ratio[0], self.height / self.font_ratio[1]) self.img_scale = self.font_size * 2 self.button_image_scale = 1.38 @@ -47,15 +47,16 @@ class KlippyGtk: self.dialog_buttons_height = round(self.height / 5) if self.font_size_type == "max": - self.font_size = self.font_size * 1.2 + self.font_size = self.font_size * 1.06 + self.img_scale = self.img_scale * 0.7 self.bsidescale = .7 elif self.font_size_type == "extralarge": - self.font_size = self.font_size * 1.14 + self.font_size = self.font_size * 1.05 self.img_scale = self.img_scale * 0.7 - self.bsidescale = 1 + self.bsidescale = 1.0 elif self.font_size_type == "large": - self.font_size = self.font_size * 1.09 - self.img_scale = self.img_scale * 0.9 + self.font_size = self.font_size * 1.025 + self.img_scale = self.img_scale * 0.85 self.bsidescale = .8 elif self.font_size_type == "small": self.font_size = self.font_size * 0.91 @@ -155,7 +156,7 @@ class KlippyGtk: return pixbuf def Button(self, image_name=None, label=None, style=None, scale=None, position=Gtk.PositionType.TOP, lines=2): - if self.font_size_type == "max" and label is not None and scale is None: + if self.font_size_type == "max" and label is not None: image_name = None b = Gtk.Button(hexpand=True, vexpand=True, can_focus=False, image_position=position, always_show_image=True) if label is not None: diff --git a/ks_includes/screen_panel.py b/ks_includes/screen_panel.py index 1ff4dc26..ea7f2586 100644 --- a/ks_includes/screen_panel.py +++ b/ks_includes/screen_panel.py @@ -203,6 +203,8 @@ class ScreenPanel: if dev in self.labels: self.labels[dev].set_label(new_label_text) + if lines == 2: + return if show_power: self.labels[dev].get_style_context().add_class("heater-grid-temp-power") else: diff --git a/panels/job_status.py b/panels/job_status.py index 184a896a..86040742 100644 --- a/panels/job_status.py +++ b/panels/job_status.py @@ -89,7 +89,7 @@ class Panel(ScreenPanel): self.labels[label].set_halign(Gtk.Align.START) self.labels[label].set_ellipsize(Pango.EllipsizeMode.END) - fi_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, valign=Gtk.Align.CENTER) + fi_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=10) fi_box.add(self.labels['file']) fi_box.add(self.labels['lcdmessage']) self.grid.attach(fi_box, 1, 0, 3, 1) @@ -110,7 +110,6 @@ class Panel(ScreenPanel): self.labels['thumbnail'] = self._gtk.Button("file") self.labels['thumbnail'].connect("clicked", self.show_fullscreen_thumbnail) - self.labels['thumbnail'].set_hexpand(False) self.labels['info_grid'] = Gtk.Grid() self.labels['info_grid'].attach(self.labels['thumbnail'], 0, 0, 1, 1) self.current_extruder = self._printer.get_stat("toolhead", "extruder") @@ -737,13 +736,18 @@ class Panel(ScreenPanel): def show_file_thumbnail(self): if self._screen.vertical_mode: - width = self._screen.width * 0.9 - height = self._screen.height / 4 + max_width = self._screen.width * 0.9 + max_height = self._screen.height / 4 else: - width = self._screen.width * .25 - height = self._gtk.content_height * 0.47 + max_width = self._screen.width * .25 + max_height = self._gtk.content_height * 0.47 + width = min(self.labels['thumbnail'].get_allocated_width(), max_width) + height = min(self.labels['thumbnail'].get_allocated_height(), max_height) + if width <= 1 or height <= 1: + width = max_width + height = max_height + self.labels['thumbnail'].set_hexpand(False) pixbuf = self.get_file_image(self.filename, width, height) - logging.debug(self.filename) if pixbuf is None: logging.debug("no pixbuf") return diff --git a/panels/main_menu.py b/panels/main_menu.py index 402ca092..87250700 100644 --- a/panels/main_menu.py +++ b/panels/main_menu.py @@ -6,6 +6,7 @@ from gi.repository import Gtk, GLib from panels.menu import Panel as MenuPanel from ks_includes.widgets.heatergraph import HeaterGraph from ks_includes.widgets.keypad import Keypad +from ks_includes.KlippyGtk import find_widget class Panel(MenuPanel): @@ -141,6 +142,7 @@ class Panel(MenuPanel): self.labels['da'].set_showing(device, visible) temp = self._gtk.Button(label="", lines=1) + find_widget(temp, Gtk.Label).set_ellipsize(False) if can_target: temp.connect("clicked", self.show_numpad, device) diff --git a/panels/temperature.py b/panels/temperature.py index 5429c8d1..78042362 100644 --- a/panels/temperature.py +++ b/panels/temperature.py @@ -378,6 +378,7 @@ class Panel(ScreenPanel): self.labels["da"].add_object(device, "temperatures", rgb, False, False) temp = self._gtk.Button(label="", lines=1) + find_widget(temp, Gtk.Label).set_ellipsize(False) if self._printer.device_has_target(device): temp.connect("clicked", self.show_numpad, device)