refactor widget creation

improves performance and makes the code cleaner

* add parameters instead of calling methods afterwards
* remove a a lot of size requests
* remove parameters that are being set to the default value
* simplify dialogs containers
This commit is contained in:
alfrix
2023-12-30 14:28:50 -03:00
parent 1794d8aa24
commit 6cf639c083
34 changed files with 231 additions and 568 deletions

View File

@@ -16,8 +16,8 @@ class Panel(ScreenPanel):
self.preview = Gtk.DrawingArea(width_request=self.da_size, height_request=self.da_size)
self.preview.set_size_request(-1, self.da_size * 2)
self.preview.connect("draw", self.on_draw)
self.preview_label = Gtk.Label(label='')
self.preset_list = self._gtk.HomogeneousGrid()
self.preview_label = Gtk.Label()
self.preset_list = Gtk.Grid(row_homogeneous=True, column_homogeneous=True)
self.color_data = [0, 0, 0, 0]
self.color_order = 'RGBW'
self.presets = {"off": [0.0, 0.0, 0.0, 0.0]}
@@ -61,7 +61,7 @@ class Panel(ScreenPanel):
def led_selector(self):
self.current_led = None
columns = 3 if self._screen.vertical_mode else 4
grid = self._gtk.HomogeneousGrid()
grid = Gtk.Grid(row_homogeneous=True, column_homogeneous=True)
for i, led in enumerate(self.leds):
name = led.split()[1] if len(led.split()) > 1 else led
button = self._gtk.Button(None, name.upper(), style=f"color{(i % 4) + 1}")
@@ -75,7 +75,7 @@ class Panel(ScreenPanel):
logging.info(led)
self.current_led = led
self.set_title(f"{self.current_led}")
grid = self._gtk.HomogeneousGrid()
grid = Gtk.Grid(row_homogeneous=True, column_homogeneous=True)
self.color_order = self._printer.get_led_color_order(led)
if self.color_order is None:
logging.error("Error: Color order is None")
@@ -83,7 +83,7 @@ class Panel(ScreenPanel):
return
on = [1 if self.color_available(i) else 0 for i in range(4)]
self.presets["on"] = on
scale_grid = self._gtk.HomogeneousGrid()
scale_grid = Gtk.Grid(row_homogeneous=True, column_homogeneous=True)
for idx, col_value in enumerate(self.color_data):
if not self.color_available(idx):
continue
@@ -95,7 +95,7 @@ class Panel(ScreenPanel):
button.set_image(preview)
button.connect("clicked", self.apply_preset, color)
button.set_hexpand(False)
scale = Gtk.Scale.new_with_range(orientation=Gtk.Orientation.HORIZONTAL, min=0, max=255, step=1)
scale = Gtk.Scale.new_with_range(Gtk.Orientation.HORIZONTAL, min=0, max=255, step=1)
scale.set_value(round(col_value * 255))
scale.set_digits(0)
scale.set_hexpand(True)
@@ -126,10 +126,9 @@ class Panel(ScreenPanel):
scroll = self._gtk.ScrolledWindow()
scroll.add(self.preset_list)
preview_box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
preview_box = Gtk.Box(homogeneous=True)
preview_box.add(self.preview_label)
preview_box.add(self.preview)
preview_box.set_homogeneous(True)
box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
box.add(preview_box)
box.add(scroll)