Daniel Brötzmann pushed to branch master at gajim / gajim


Commits:
1eb3116b by wurstsalat at 2025-02-01T13:41:29+01:00
refactor: DataForm: Replace Combo with Dropdown

- - - - -
dbdf6b6b by wurstsalat at 2025-02-01T13:41:29+01:00
refactor: Utils: Remove obsolete MaxWidthComboBoxText

- - - - -


2 changed files:

- gajim/gtk/dataform.py
- gajim/gtk/util.py


Changes:

=====================================
gajim/gtk/dataform.py
=====================================
@@ -22,8 +22,8 @@
 from gajim.common.util.image import get_texture_from_data
 from gajim.common.util.uri import open_uri
 
+from gajim.gtk.dropdown import GajimDropDown
 from gajim.gtk.util import make_href_markup
-from gajim.gtk.util import MaxWidthComboBoxText
 from gajim.gtk.util import MultiLineLabel
 from gajim.gtk.util import process_non_spacing_marks
 from gajim.gtk.util import SignalManager
@@ -492,18 +492,21 @@ def destroy(self) -> None:
         del self._treeview
 
     def _setup_dropdown(self, field: DataField) -> None:
-        self._widget = MaxWidthComboBoxText()
-        self._widget.set_valign(Gtk.Align.CENTER)
+        data: dict[str, str] = {}
         for value, label in field.iter_options():
             if not label:
                 label = value
-            self._widget.append(value, label)
+            data[value] = label
 
-        self._widget.set_active_id(field.value)
-        self._connect(self._widget, "changed", self._changed)
+        self._widget = GajimDropDown(data=data)
+        self._widget.set_valign(Gtk.Align.CENTER)
+        self._widget.select_key(field.value)
+        self._connect(self._widget, "notify::selected", self._changed)
 
-    def _changed(self, widget: MaxWidthComboBoxText) -> None:
-        self._field.value = widget.get_active_id()
+    def _changed(self, dropdown: GajimDropDown, *args: Any) -> None:
+        item = dropdown.get_selected_item()
+        assert item is not None
+        self._field.value = item.props.key
         self._validate()
 
     def _setup_treeview(self, field: DataField) -> None:


=====================================
gajim/gtk/util.py
=====================================
@@ -406,21 +406,6 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
         self.set_selectable(True)
 
 
-class MaxWidthComboBoxText(Gtk.ComboBoxText):
-    def __init__(self, *args: Any, **kwargs: Any) -> None:
-        Gtk.ComboBoxText.__init__(self, *args, **kwargs)
-        text_renderer = self.get_cells()[0]
-        text_renderer.set_property("ellipsize", Pango.EllipsizeMode.END)
-
-    def do_unroot(self) -> None:
-        Gtk.ComboBoxText.do_unroot(self)
-        app.check_finalize(self)
-
-    def set_max_width_chars(self, count: int) -> None:
-        text_renderer = self.get_cells()[0]
-        text_renderer.set_property("max-width-chars", count)
-
-
 def text_to_color(text: str) -> tuple[float, float, float]:
     if app.css_config.prefer_dark:
         lightness = 60



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/ecf2eecaa5d63233d2083f008576bfc27ee198c1...dbdf6b6bab8e2ddebec9304c1362aea44e636790

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/ecf2eecaa5d63233d2083f008576bfc27ee198c1...dbdf6b6bab8e2ddebec9304c1362aea44e636790
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]

Reply via email to