Philipp Hörist pushed to branch master at gajim / gajim


Commits:
fc8b11fa by Philipp Hörist at 2024-09-24T19:09:36+02:00
fix: Dataforms: Don’t try to calculate label size

Fixes #11990

- - - - -
5a98774b by Philipp Hörist at 2024-09-24T19:09:36+02:00
imprv: Datafroms: Display text-multi fields without scrolled window

Only in read-only mode

- - - - -


2 changed files:

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


Changes:

=====================================
gajim/gtk/dataform.py
=====================================
@@ -846,24 +846,27 @@ def __init__(self,
         Field.__init__(self, field, form_grid, options)
         self._label.set_valign(Gtk.Align.START)
 
-        self._widget = Gtk.ScrolledWindow()
-        self._widget.set_policy(Gtk.PolicyType.NEVER,
-                                Gtk.PolicyType.AUTOMATIC)
-        self._widget.set_propagate_natural_height(True)
-        self._widget.set_min_content_height(100)
-        self._widget.set_max_content_height(300)
+        length = len(field.value)
 
         if self.read_only:
-            self._textview = MultiLineLabel(label=field.value)
-            self._textview.set_xalign(0)
-            self._textview.set_yalign(0)
+            self._textview = MultiLineLabel(label=field.value, xalign=0)
+
         else:
             self._textview = Gtk.TextView()
             self._textview.set_wrap_mode(Gtk.WrapMode.WORD_CHAR)
             self._textview.get_buffer().set_text(field.value)
             self._textview.get_buffer().connect('changed', self._changed)
 
-        self._widget.add(self._textview)
+        if self.read_only and length < 500:
+            self._widget = self._textview
+        else:
+            self._widget = Gtk.ScrolledWindow()
+            self._widget.set_policy(Gtk.PolicyType.NEVER,
+                                    Gtk.PolicyType.AUTOMATIC)
+            self._widget.set_propagate_natural_height(True)
+            self._widget.set_min_content_height(100)
+
+            self._widget.add(self._textview)
 
     def _changed(self, widget: Gtk.TextBuffer) -> None:
         self._field.value = widget.get_text(*widget.get_bounds(), False)


=====================================
gajim/gtk/util.py
=====================================
@@ -491,13 +491,6 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
         self.set_single_line_mode(False)
         self.set_selectable(True)
 
-    # make sure full width is used when fitting into GtkGrid
-    def do_get_preferred_width(self):
-        layout = self.get_layout()
-        layout.set_width(-1)
-        width, _ = layout.get_pixel_size()
-        return width, width
-
 
 class MaxWidthComboBoxText(Gtk.ComboBoxText):
     def __init__(self, *args: Any, **kwargs: Any) -> None:



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/cacdbb07af29f7f43f1ff9ab958db9b6e3db5455...5a98774b23edd69340e557d5d49793bfe10c752c

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/cacdbb07af29f7f43f1ff9ab958db9b6e3db5455...5a98774b23edd69340e557d5d49793bfe10c752c
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