Apply slider value on release (#430)

Scale will do the action when released instead of many times for every step while sliding.
This commit is contained in:
Randell Hodges 2022-02-13 13:15:39 -06:00 committed by GitHub
parent bf67129528
commit 926773f4f3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 8 deletions

View File

@ -57,7 +57,7 @@ class FanPanel(ScreenPanel):
self.fan_speed[fan] = round(float(speed) * 100)
self.devices[fan]['scale'].disconnect_by_func(self.set_fan_speed)
self.devices[fan]['scale'].set_value(self.fan_speed[fan])
self.devices[fan]['scale'].connect("value-changed", self.set_fan_speed, fan)
self.devices[fan]['scale'].connect("button-release-event", self.set_fan_speed, fan)
else:
self.fan_speed[fan] = float(speed)
self.devices[fan]['scale'].set_fraction(self.fan_speed[fan])
@ -101,7 +101,7 @@ class FanPanel(ScreenPanel):
scale.set_hexpand(True)
scale.set_has_origin(True)
scale.get_style_context().add_class("fan_slider")
scale.connect("value-changed", self.set_fan_speed, fan)
scale.connect("button-release-event", self.set_fan_speed, fan)
else:
scale = Gtk.ProgressBar()
scale.set_fraction(self.fan_speed[fan])
@ -147,7 +147,7 @@ class FanPanel(ScreenPanel):
continue
self.add_fan(fan)
def set_fan_speed(self, widget, fan):
def set_fan_speed(self, widget, event, fan):
value = self.devices[fan]['scale'].get_value()
if fan == "fan":

View File

@ -73,7 +73,7 @@ class LimitsPanel(ScreenPanel):
self.values[option] = int(value)
self.devices[option]['scale'].disconnect_by_func(self.set_opt_value)
self.devices[option]['scale'].set_value(self.values[option])
self.devices[option]['scale'].connect("value-changed", self.set_opt_value, option)
self.devices[option]['scale'].connect("button-release-event", self.set_opt_value, option)
def add_option(self, option, optname, units, value):
logging.info("Adding option: %s" % option)
@ -99,7 +99,7 @@ class LimitsPanel(ScreenPanel):
scale.set_hexpand(True)
scale.set_has_origin(True)
scale.get_style_context().add_class("option_slider")
scale.connect("value-changed", self.set_opt_value, option)
scale.connect("button-release-event", self.set_opt_value, option)
labels = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
labels.add(name)
@ -123,7 +123,7 @@ class LimitsPanel(ScreenPanel):
self.labels['devices'].attach(self.devices[option]['row'], 0, pos, 1, 1)
self.labels['devices'].show_all()
def set_opt_value(self, widget, opt):
def set_opt_value(self, widget, event, opt):
value = self.devices[opt]['scale'].get_value()
if opt == "max_accel":

View File

@ -162,8 +162,8 @@ class SettingsPanel(ScreenPanel):
scale = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL, adjustment=adj)
scale.set_hexpand(True)
scale.set_digits(0)
scale.connect("button-release-event", self.scale_moved, option['section'], opt_name)
scale.set_property("width-request", round(self._screen.width/2.2))
scale.connect("value-changed", self.scale_moved, option['section'], opt_name)
dev.add(scale)
elif option['type'] == "printer":
logging.debug("Option: %s" % option)
@ -230,7 +230,7 @@ class SettingsPanel(ScreenPanel):
if callback is not None:
callback(value)
def scale_moved(self, widget, section, option):
def scale_moved(self, widget, event, section, option):
logging.debug("[%s] %s changed to %s" % (section, option, widget.get_value()))
if section not in self._config.get_config().sections():
self._config.get_config().add_section(section)