diff options
Diffstat (limited to 'main/src/ui')
| -rw-r--r-- | main/src/ui/contact_details/permissions_provider.vala | 2 | ||||
| -rw-r--r-- | main/src/ui/util/preference_group.vala | 26 |
2 files changed, 27 insertions, 1 deletions
diff --git a/main/src/ui/contact_details/permissions_provider.vala b/main/src/ui/contact_details/permissions_provider.vala index 54eac7b1..0e51aa8b 100644 --- a/main/src/ui/contact_details/permissions_provider.vala +++ b/main/src/ui/contact_details/permissions_provider.vala @@ -18,7 +18,7 @@ public class PermissionsProvider : Plugins.ContactDetailsProvider, Object { Xmpp.Jid? own_jid = stream_interactor.get_module(MucManager.IDENTITY).get_own_jid(conversation.counterpart, conversation.account); if (own_jid == null) return; - if (true || stream_interactor.get_module(MucManager.IDENTITY).get_role(own_jid, conversation.account) == Xmpp.Xep.Muc.Role.VISITOR) { + if (stream_interactor.get_module(MucManager.IDENTITY).get_role(own_jid, conversation.account) == Xmpp.Xep.Muc.Role.VISITOR) { var view_model = new Ui.ViewModel.PreferencesRow.Button() { title = _("Request permission to send messages"), button_text = _("Request") diff --git a/main/src/ui/util/preference_group.vala b/main/src/ui/util/preference_group.vala index 268a593c..ab2229f8 100644 --- a/main/src/ui/util/preference_group.vala +++ b/main/src/ui/util/preference_group.vala @@ -6,6 +6,32 @@ using Dino.Entities; using Xmpp.Xep; namespace Dino.Ui.Util { + public Gee.List<Adw.PreferencesGroup> rows_to_preference_window_split_at_text(GLib.ListStore row_view_models) { + var preference_groups = new ArrayList<Adw.PreferencesGroup>(); + Adw.PreferencesGroup? preference_group = null; + + for (int preference_group_i = 0; preference_group_i < row_view_models.get_n_items(); preference_group_i++) { + var preferences_row = (ViewModel.PreferencesRow.Any) row_view_models.get_item(preference_group_i); + + // If it's a text, start a new PreferencesGroup with the text as title. Else, add an item to the current group. + var preferences_row_text = preferences_row as ViewModel.PreferencesRow.Text; + if (preferences_row_text != null) { + if (preference_group != null) preference_groups.add(preference_group); + preference_group = new Adw.PreferencesGroup() { title=preferences_row_text.text }; + } else { + if (preference_group == null) { + preference_group = new Adw.PreferencesGroup(); + } + Widget? w = row_to_preference_row(preferences_row); + if (w == null) continue; + preference_group.add(w); + } + + } + + return preference_groups; + } + public Adw.PreferencesGroup rows_to_preference_group(GLib.ListStore row_view_models, string title) { var preference_group = new Adw.PreferencesGroup() { title=title }; |
