ui: add blank field to toggle widgets
This commit is contained in:
parent
573cb6e985
commit
fa0ecc6c2c
|
@ -1736,17 +1736,12 @@ def _from_named_ints(v, all_values):
|
||||||
|
|
||||||
|
|
||||||
class SetValueControl(Gtk.HBox):
|
class SetValueControl(Gtk.HBox):
|
||||||
|
|
||||||
TOGGLE_VALUES = [('~', _('Toggle')), ('t', _('True')), ('f', _('False'))]
|
|
||||||
|
|
||||||
TYPES = ('toggle', 'choice', 'range')
|
|
||||||
|
|
||||||
def __init__(self, on_change, *args, **kwargs):
|
def __init__(self, on_change, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.on_change = on_change
|
self.on_change = on_change
|
||||||
self.toggle_widget = Gtk.ComboBoxText()
|
self.toggle_widget = SmartComboBox([('~', _('Toggle'), _('Toggle')), (True, 'True', _('True'), 'yes', 'on', 't', 'y'),
|
||||||
for v in self.TOGGLE_VALUES:
|
(False, 'False', _('False'), 'no', 'off', 'f', 'n')],
|
||||||
self.toggle_widget.append(*v)
|
case_insensitive=True)
|
||||||
self.toggle_widget.connect('changed', self._changed)
|
self.toggle_widget.connect('changed', self._changed)
|
||||||
self.range_widget = Gtk.SpinButton.new_with_range(0, 0xFFFF, 1)
|
self.range_widget = Gtk.SpinButton.new_with_range(0, 0xFFFF, 1)
|
||||||
self.range_widget.connect('value-changed', self._changed)
|
self.range_widget.connect('value-changed', self._changed)
|
||||||
|
@ -1787,8 +1782,7 @@ class SetValueControl(Gtk.HBox):
|
||||||
|
|
||||||
def get_value(self):
|
def get_value(self):
|
||||||
if self.current_kind == 'toggle':
|
if self.current_kind == 'toggle':
|
||||||
value = self.toggle_widget.get_active_id()
|
return self.toggle_widget.get_value()
|
||||||
return True if value == 't' else False if value == 'f' else value
|
|
||||||
if self.current_kind == 'range':
|
if self.current_kind == 'range':
|
||||||
return int(self.range_widget.get_value())
|
return int(self.range_widget.get_value())
|
||||||
if self.current_kind == 'range_with_key':
|
if self.current_kind == 'range_with_key':
|
||||||
|
@ -1799,15 +1793,7 @@ class SetValueControl(Gtk.HBox):
|
||||||
|
|
||||||
def set_value(self, value):
|
def set_value(self, value):
|
||||||
if self.current_kind == 'toggle':
|
if self.current_kind == 'toggle':
|
||||||
value = str(value).lower()
|
self.toggle_widget.set_value(value if value is not None else '')
|
||||||
if value in ('true', 'yes', 'on', 't', 'y'):
|
|
||||||
self.toggle_widget.set_active_id('t')
|
|
||||||
elif value in ('false', 'no', 'off', 'f', 'n'):
|
|
||||||
self.toggle_widget.set_active_id('f')
|
|
||||||
elif value in ('~', 'toggle'):
|
|
||||||
self.toggle_widget.set_active_id('~')
|
|
||||||
else:
|
|
||||||
self.toggle_widget.set_active_id(None)
|
|
||||||
elif self.current_kind == 'range':
|
elif self.current_kind == 'range':
|
||||||
minimum, maximum = self.range_widget.get_range()
|
minimum, maximum = self.range_widget.get_range()
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in New Issue