aboutsummaryrefslogtreecommitdiff
path: root/main/src/ui
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2025-10-06 00:14:27 +0200
committerfiaxh <git@lightrise.org>2025-10-06 00:14:27 +0200
commit18f87d11986f1021d98f1be58c89296d852120c3 (patch)
tree9606264eee3dac8e8abdc885df4a0a77fee5b278 /main/src/ui
parent61f20787151febd54b7271f686bc4f9de5613c15 (diff)
Conversation details: Move room configuration to separate tab
Diffstat (limited to 'main/src/ui')
-rw-r--r--main/src/ui/contact_details/permissions_provider.vala2
-rw-r--r--main/src/ui/util/preference_group.vala26
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 };