Browse Source

room-details: Hide some sections and actions for direct chats

fractal-9
Kévin Commaille 2 years ago
parent
commit
b4118978df
No known key found for this signature in database
GPG Key ID: C971D9DBC9D678D
  1. 17
      src/session/view/content/room_details/general_page.rs
  2. 23
      src/session/view/content/room_details/general_page.ui

17
src/session/view/content/room_details/general_page.rs

@ -402,17 +402,24 @@ mod imp {
return;
};
// Hide edit button when the user cannot edit any detail.
// Hide edit button when the user cannot edit any detail or when the room is
// direct.
let permissions = room.permissions();
let can_change_avatar = permissions.property_expression("can-change-avatar");
let can_change_name = permissions.property_expression("can-change-name");
let can_change_topic = permissions.property_expression("can-change-topic");
let can_change_name_topic = expression::or(can_change_name, can_change_topic);
let can_edit_details = expression::or(can_change_name_topic, can_change_avatar);
let can_change_name_or_topic = expression::or(can_change_name, can_change_topic);
let can_edit_at_least_one_detail =
expression::or(can_change_name_or_topic, can_change_avatar);
let expr_watch =
can_edit_details.bind(&*self.edit_details_btn, "visible", gtk::Widget::NONE);
let is_direct_expr = room.property_expression("is-direct");
let expr_watch = expression::and(
expression::not(is_direct_expr),
can_edit_at_least_one_detail,
)
.bind(&*self.edit_details_btn, "visible", gtk::Widget::NONE);
self.expr_watch.replace(Some(expr_watch));
}

23
src/session/view/content/room_details/general_page.ui

@ -145,6 +145,13 @@
<child>
<object class="AdwPreferencesGroup" id="addresses_group">
<property name="title" translatable="yes">Public Addresses</property>
<binding name="visible">
<closure type="gboolean" function="invert_boolean">
<lookup name="is-direct">
<lookup name="room">RoomDetailsGeneralPage</lookup>
</lookup>
</closure>
</binding>
<child type="header-suffix">
<object class="GtkButton" id="edit_addresses_button">
<!-- Translators: In this string, 'Edit' is a verb. -->
@ -188,6 +195,13 @@
<child>
<object class="AdwPreferencesGroup" id="visibility_group">
<property name="title" translatable="yes">Access and Visibility</property>
<binding name="visible">
<closure type="gboolean" function="invert_boolean">
<lookup name="is-direct">
<lookup name="room">RoomDetailsGeneralPage</lookup>
</lookup>
</closure>
</binding>
<child>
<object class="ComboLoadingRow" id="join_rule">
<property name="title" translatable="yes">Who Can Join</property>
@ -267,8 +281,15 @@
</object>
</child>
<child>
<object class="ButtonCountRow" id="permission">
<object class="ButtonCountRow">
<property name="title" translatable="yes">Permissions</property>
<binding name="visible">
<closure type="gboolean" function="invert_boolean">
<lookup name="is-direct">
<lookup name="room">RoomDetailsGeneralPage</lookup>
</lookup>
</closure>
</binding>
<property name="action-name">details.show-subpage</property>
<property name="action-target">'permissions'</property>
</object>

Loading…
Cancel
Save