Philipp Hörist pushed to branch master at gajim / gajim
Commits:
23358e1f by Philipp Hörist at 2024-09-10T16:41:06+02:00
imprv: Dataforms: Improve read only form presentation
Fixes #11758
- - - - -
2 changed files:
- gajim/gtk/dataform.py
- test/dialogs/dataform.py
Changes:
=====================================
gajim/gtk/dataform.py
=====================================
@@ -426,7 +426,7 @@ def __init__(self,
if self.read_only:
label = _('Yes') if field.value else _('No')
- self._widget = Gtk.Label(label=label)
+ self._widget = Gtk.Label(label=label, selectable=True)
self._widget.set_xalign(0)
else:
self._widget = Gtk.CheckButton()
@@ -481,6 +481,12 @@ def __init__(self,
Field.__init__(self, field, form_grid, options)
self._unique = treeview
+
+ if self.read_only:
+ self._widget = Gtk.Label(label=field.value, selectable=True)
+ self._widget.set_xalign(0)
+ return
+
if treeview:
self._setup_treeview(field)
else:
@@ -621,12 +627,16 @@ def __init__(self,
cell.connect('toggled', self._toggled)
col.pack_start(cell, True)
col.set_attributes(cell, active=3)
- self.append_column(col)
+
+ if not multi_field.read_only:
+ self.append_column(col)
self.set_headers_visible(False)
for option in field.options:
label, value = option
+ if multi_field.read_only and value not in field.values:
+ continue
self._store.append(
[label, value, label, value in field.values])
@@ -691,7 +701,9 @@ def __init__(self,
self._scrolled_window.add(self._treeview)
self._widget.pack_start(self._scrolled_window, True, True, 0)
- self._widget.pack_end(self._toolbar, False, False, 0)
+
+ if not self._read_only:
+ self._widget.pack_end(self._toolbar, False, False, 0)
def _add_clicked(self, _widget: Gtk.ToolButton) -> None:
model = self._treeview.get_model()
@@ -779,7 +791,7 @@ def __init__(self,
Field.__init__(self, field, form_grid, options)
if self.read_only:
- self._widget = Gtk.Label(label=field.value)
+ self._widget = Gtk.Label(label=field.value, selectable=True)
self._widget.set_xalign(0)
self._widget.set_selectable(True)
else:
@@ -804,9 +816,9 @@ def __init__(self,
) -> None:
TextSingleField.__init__(self, field, form_grid, options)
- assert isinstance(self._widget, Gtk.Entry)
- self._widget.set_input_purpose(Gtk.InputPurpose.PASSWORD)
- self._widget.set_visibility(False)
+ if isinstance(self._widget, Gtk.Entry):
+ self._widget.set_input_purpose(Gtk.InputPurpose.PASSWORD)
+ self._widget.set_visibility(False)
class JidSingleField(TextSingleField):
=====================================
test/dialogs/dataform.py
=====================================
@@ -105,6 +105,8 @@
var='invitelist'>
<desc>Tell all your friends about your new bot!</desc>
<required/>
+ <value>[email protected]</value>
+ <value>[email protected]</value>
</field>
<field var='ocr' type='text-single' label='Fill in what you see'>
<media xmlns='urn:xmpp:media-element'>
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/23358e1f9c4fdd936f446c86e36ad33566fe5290
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/23358e1f9c4fdd936f446c86e36ad33566fe5290
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]