Browse Source

Merge branch 'no_attachments_while_editing' into 'main'

Disable sending files & location while editing/replying

See merge request World/fractal!2153
merge-requests/2153/merge
Bryant Mairs 9 hours ago
parent
commit
3ff84c657b
  1. 2
      src/session_view/room_history/message_toolbar/mod.blp
  2. 20
      src/session_view/room_history/message_toolbar/mod.rs

2
src/session_view/room_history/message_toolbar/mod.blp

@ -83,7 +83,7 @@ template $MessageToolbar: Adw.Bin {
"toolbar",
]
Gtk.Button {
Gtk.Button attach_button {
valign: end;
icon-name: "attachment-symbolic";
tooltip-text: _("Send a File");

20
src/session_view/room_history/message_toolbar/mod.rs

@ -106,6 +106,8 @@ mod imp {
#[template_child]
pub(super) message_entry: TemplateChild<sourceview::View>,
#[template_child]
attach_button: TemplateChild<gtk::Button>,
#[template_child]
send_button: TemplateChild<gtk::Button>,
#[template_child]
related_event_header: TemplateChild<LabelWithWidgets>,
@ -544,6 +546,7 @@ mod imp {
self.related_event_content
.update_for_related_event(&msgtype, message_event, &sender);
self.related_event_content.set_visible(true);
self.enable_sending_non_text_messages(false);
}
/// Update the displayed related event for the given edit.
@ -552,14 +555,29 @@ mod imp {
let label = pgettext("room-history", "Edit");
self.related_event_header
.set_label_and_widgets::<gtk::Widget>(label, vec![]);
self.related_event_content.set_visible(false);
self.enable_sending_non_text_messages(false);
}
/// Disable sending any messages but a text one.
fn enable_sending_non_text_messages(&self, enable: bool) {
if enable {
self.attach_button.set_sensitive(true);
let location = Location::new();
self.obj()
.action_set_enabled("message-toolbar.send-location", location.is_available());
} else {
self.attach_button.set_sensitive(false);
self.obj()
.action_set_enabled("message-toolbar.send-location", false);
}
}
/// Clear the related event.
#[template_callback]
fn clear_related_event(&self) {
self.current_composer_state().set_related_to(None);
self.enable_sending_non_text_messages(true);
}
/// Add a mention of the given member to the message composer.

Loading…
Cancel
Save