Philipp Hörist pushed to branch master at gajim / gajim
Commits:
a783fb10 by Nicoco at 2024-09-10T20:31:38+00:00
fix: Dataforms: Fix completion of single list forms
- - - - -
1 changed file:
- gajim/gtk/dataform.py
Changes:
=====================================
gajim/gtk/dataform.py
=====================================
@@ -397,7 +397,7 @@ def _set_warning(self,
self._warning_image.set_tooltip_text(str(error))
self._warning_image.set_visible(not is_valid)
- def _validate(self) -> None:
+ def _validate(self, delay: bool = True) -> None:
self._form_grid.validate(False)
if self._validate_source_id is not None:
GLib.source_remove(self._validate_source_id)
@@ -408,7 +408,10 @@ def _start_validation() -> None:
self._form_grid.validate(is_valid)
self._validate_source_id = None
- self._validate_source_id = GLib.timeout_add(200, _start_validation)
+ if delay:
+ self._validate_source_id = GLib.timeout_add(200, _start_validation)
+ else:
+ _start_validation()
def destroy(self) -> None:
if self._validate_source_id is not None:
@@ -503,9 +506,14 @@ def _setup_dropdown(self, field: DataField) -> None:
self._widget.set_active_id(field.value)
self._widget.connect('changed', self._changed)
+ def _changed(self, widget: MaxWidthComboBoxText) -> None:
+ self._field.value = widget.get_active_id()
+ self._validate()
+
def _setup_treeview(self, field: DataField) -> None:
self._treeview = ListSingleTreeView(field, self)
self._treeview.connect('row-activated', self._on_row_activated)
+ self._treeview.connect('cursor-changed', self._on_cursor_changed)
self._widget = Gtk.ScrolledWindow()
self._widget.set_propagate_natural_height(True)
@@ -516,11 +524,15 @@ def _setup_treeview(self, field: DataField) -> None:
self._widget.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
self._widget.add(self._treeview)
- def _changed(self, widget: MaxWidthComboBoxText) -> None:
- self._field.value = widget.get_active_id()
- self._validate()
- def _on_row_activated(self, *_args) -> None:
+ def _on_cursor_changed(self, *_args: Any) -> None:
+ model, treeiter = self._treeview.get_selection().get_selected()
+ if treeiter is None:
+ return None
+ self._field.value = model[treeiter][1]
+ self._validate(delay=False)
+
+ def _on_row_activated(self, *_args: Any) -> None:
self.emit('row-activated')
def add(self,
@@ -565,13 +577,6 @@ def __init__(self,
self.set_tooltip_column(2)
self.set_model(self._store)
- self.connect('cursor-changed', self._on_cursor_changed)
-
- def _on_cursor_changed(self, *_args) -> None:
- model, treeiter = self.get_selection().get_selected()
- if treeiter is None:
- return None
- self._field.value = model[treeiter][1]
class ListMultiField(Field):
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/a783fb10194845088c89fd24147cbcba75a333c2
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/a783fb10194845088c89fd24147cbcba75a333c2
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]