led: make the ON preset change only available colors

This commit is contained in:
alfrix 2023-10-14 11:20:56 -03:00
parent 7986ce23cd
commit 836092659d

View File

@ -20,10 +20,7 @@ class Panel(ScreenPanel):
self.preset_list = self._gtk.HomogeneousGrid() self.preset_list = self._gtk.HomogeneousGrid()
self.color_data = [0, 0, 0, 0] self.color_data = [0, 0, 0, 0]
self.color_order = 'RGBW' self.color_order = 'RGBW'
self.presets = { self.presets = {"off": [0.0, 0.0, 0.0, 0.0]}
"on": [1.0, 1.0, 1.0, 1.0],
"off": [0.0, 0.0, 0.0, 0.0]
}
self.scales = {} self.scales = {}
self.buttons = [] self.buttons = []
self.leds = self._printer.get_leds() self.leds = self._printer.get_leds()
@ -81,8 +78,13 @@ class Panel(ScreenPanel):
grid = self._gtk.HomogeneousGrid() grid = self._gtk.HomogeneousGrid()
self.color_order = self._printer.get_led_color_order(led) self.color_order = self._printer.get_led_color_order(led)
if self.color_order is None: if self.color_order is None:
logging.error("Error: Color order is None")
self.back() self.back()
return return
on = []
for i in range(4):
on.append(1 if self.color_available(i) else 0)
self.presets["on"] = on
scale_grid = self._gtk.HomogeneousGrid() scale_grid = self._gtk.HomogeneousGrid()
for idx, col_value in enumerate(self.color_data): for idx, col_value in enumerate(self.color_data):
if not self.color_available(idx): if not self.color_available(idx):
@ -170,7 +172,7 @@ class Panel(ScreenPanel):
def update_scales(self, color_data): def update_scales(self, color_data):
for idx in self.scales: for idx in self.scales:
self.scales[idx].set_value(int(color_data[idx] * 255)) self.scales[idx].set_value(int(color_data[idx] * 255))
self.color_data[idx] = color_data[idx] self.color_data = color_data
def update_color_data(self): def update_color_data(self):
for idx in self.scales: for idx in self.scales: