Commit 8f5916de authored by Roman Alifanov's avatar Roman Alifanov

widgets fixes

parent 0ac920aa
...@@ -31,7 +31,7 @@ class FileChooser(BaseWidget): ...@@ -31,7 +31,7 @@ class FileChooser(BaseWidget):
valign=Gtk.Align.CENTER, valign=Gtk.Align.CENTER,
halign=Gtk.Align.END, halign=Gtk.Align.END,
) )
self.entry_handler_id = self.entry.connect("changed", self._on_entry_changed) self.entry_handler_id = self.entry.connect("activate", self._on_entry_changed)
control_box.append(self.entry) control_box.append(self.entry)
else: else:
self.info_label = Gtk.Label( self.info_label = Gtk.Label(
......
...@@ -38,7 +38,7 @@ class NumStepper(BaseWidget): ...@@ -38,7 +38,7 @@ class NumStepper(BaseWidget):
control_box.append(self.spin) control_box.append(self.spin)
row.add_suffix(control_box) row.add_suffix(control_box)
self.spin.connect("value-changed", self._on_num_changed) self.spin_handler_id = self.spin.connect("value-changed", self._on_num_changed)
self._update_reset_visibility() self._update_reset_visibility()
...@@ -46,6 +46,7 @@ class NumStepper(BaseWidget): ...@@ -46,6 +46,7 @@ class NumStepper(BaseWidget):
def update_display(self): def update_display(self):
current_value = self.setting._get_backend_value() current_value = self.setting._get_backend_value()
with self.spin.handler_block(self.spin_handler_id):
self.spin.set_value(float(current_value)) self.spin.set_value(float(current_value))
self._update_reset_visibility() self._update_reset_visibility()
...@@ -60,6 +61,7 @@ class NumStepper(BaseWidget): ...@@ -60,6 +61,7 @@ class NumStepper(BaseWidget):
default_value = self.setting.default default_value = self.setting.default
if default_value is not None: if default_value is not None:
with self.spin.handler_block(self.spin_handler_id):
self.setting._set_backend_value(default_value) self.setting._set_backend_value(default_value)
self.spin.set_value(float(default_value)) self.spin.set_value(float(default_value))
......
from gi.repository import Gtk, Adw from gi.repository import Gtk, Adw, GObject
from .BaseWidget import BaseWidget from .BaseWidget import BaseWidget
...@@ -72,22 +72,20 @@ class RadioChoiceWidget(BaseWidget): ...@@ -72,22 +72,20 @@ class RadioChoiceWidget(BaseWidget):
else: else:
group = radio group = radio
radio.connect("toggled", self._on_toggle, value) handler_id = radio.connect("toggled", self._on_toggle, value)
self.radio_buttons[value] = (radio, handler_id)
radio_container.append(radio) radio_container.append(radio)
self.radio_buttons[value] = radio
self.reset_revealer.set_halign(Gtk.Align.END) self.reset_revealer.set_halign(Gtk.Align.END)
title_horizontal_box.append(self.reset_revealer) title_horizontal_box.append(self.reset_revealer)
self._update_reset_visibility() self._update_reset_visibility()
return main_box return main_box
def update_display(self): def update_display(self):
current_value = self.setting._get_backend_value() current_value = self.setting._get_backend_value()
for value, radio in self.radio_buttons.items(): for value, (radio, handler_id) in self.radio_buttons.items():
with radio.handler_block_by_func(self._on_toggle): with GObject.signal_handler_block(radio, handler_id):
radio.set_active(value == current_value) radio.set_active(value == current_value)
self._update_reset_visibility() self._update_reset_visibility()
...@@ -104,7 +102,9 @@ class RadioChoiceWidget(BaseWidget): ...@@ -104,7 +102,9 @@ class RadioChoiceWidget(BaseWidget):
self.setting._set_backend_value(default_value) self.setting._set_backend_value(default_value)
if default_value in self.radio_buttons: if default_value in self.radio_buttons:
self.radio_buttons[default_value].set_active(True) radio, handler_id = self.radio_buttons[default_value]
with GObject.signal_handler_block(radio, handler_id):
radio.set_active(True)
self._update_reset_visibility() self._update_reset_visibility()
def _update_reset_visibility(self): def _update_reset_visibility(self):
...@@ -112,6 +112,5 @@ class RadioChoiceWidget(BaseWidget): ...@@ -112,6 +112,5 @@ class RadioChoiceWidget(BaseWidget):
default_value = self.setting.default default_value = self.setting.default
self.reset_revealer.set_reveal_child( self.reset_revealer.set_reveal_child(
current_value != default_value if default_value is not None current_value != default_value if default_value is not None else False
else False
) )
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment