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>jul...@capulet.com</value> + <value>benvo...@montague.net</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 -- commits@gajim.org To unsubscribe send an email to commits-le...@gajim.org