diff options
| author | fiaxh <git@lightrise.org> | 2025-06-14 17:01:15 +0200 |
|---|---|---|
| committer | fiaxh <git@lightrise.org> | 2025-06-14 17:02:01 +0200 |
| commit | 1254a753eb3c85f35e5bc322dbe4a3f177e79c88 (patch) | |
| tree | 4d63fa7cf2cf89455aaa5ecd1ae891907121a5e8 /main/src/ui/util | |
| parent | 5eabd7ac3805c6dde2ba2c810b73fca14d4fb130 (diff) | |
Support media elements in data forms
Diffstat (limited to 'main/src/ui/util')
| -rw-r--r-- | main/src/ui/util/data_forms.vala | 6 | ||||
| -rw-r--r-- | main/src/ui/util/preference_group.vala | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/main/src/ui/util/data_forms.vala b/main/src/ui/util/data_forms.vala index 1b8d3271..dfdef15c 100644 --- a/main/src/ui/util/data_forms.vala +++ b/main/src/ui/util/data_forms.vala @@ -115,6 +115,12 @@ public static ViewModel.PreferencesRow.Any? get_data_form_field_view_model(DataF return null; } + var media_node = field.node.get_subnode("media", "urn:xmpp:media-element"); + if (media_node != null) { + view_model.media_type = media_node.get_attribute("type", "urn:xmpp:media-element"); + view_model.media_uri = media_node.get_deep_string_content("uri"); + } + view_model.title = label; return view_model; } diff --git a/main/src/ui/util/preference_group.vala b/main/src/ui/util/preference_group.vala index fca3d677..0a8e37c7 100644 --- a/main/src/ui/util/preference_group.vala +++ b/main/src/ui/util/preference_group.vala @@ -1,4 +1,5 @@ using Gee; +using Gdk; using Gtk; using Dino.Entities; @@ -24,6 +25,11 @@ namespace Dino.Ui.Util { var entry_view_model = preferences_row as ViewModel.PreferencesRow.Entry; if (entry_view_model != null) { Adw.EntryRow view = new Adw.EntryRow() { title = entry_view_model.title, show_apply_button=true }; + if (preferences_row.media_uri != null) { + var bytes = BitsOfBinary.get_data_for_uri(preferences_row.media_uri); + Picture picture = new Picture.for_paintable(Texture.from_bytes(bytes)); + view.add_suffix(picture); + } entry_view_model.bind_property("text", view, "text", BindingFlags.SYNC_CREATE | BindingFlags.BIDIRECTIONAL, (_, from, ref to) => { var str = (string) from; to = str ?? ""; |
