[fractal/fractal-next] event-actions: Implement Copy for sent messages
- From: Julian Sparber <jsparber src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [fractal/fractal-next] event-actions: Implement Copy for sent messages
- Date: Sun, 30 Jan 2022 14:42:26 +0000 (UTC)
commit 8b248c0e4ab229229935fae168e24548ba01b31a
Author: Kirill Schmidt <kirill schmidt teckids org>
Date: Fri Jan 21 21:05:37 2022 +0100
event-actions: Implement Copy for sent messages
In order to use the "Copy Text" option only on
text messages the code checks the MessageType.
The macro `action!` sets the body of the
event to the content of the clipboard.
Enhances #745.
src/session/room/event_actions.rs | 49 ++++++++++++++++++++++++---------------
1 file changed, 30 insertions(+), 19 deletions(-)
---
diff --git a/src/session/room/event_actions.rs b/src/session/room/event_actions.rs
index 5301d437..5925e535 100644
--- a/src/session/room/event_actions.rs
+++ b/src/session/room/event_actions.rs
@@ -102,28 +102,39 @@ where
}
}));
action_group.add_action(&toggle_reaction);
+ match message.msgtype {
+ // Copy Text-Message
+ MessageType::Text(text_message) => {
+ gtk_macros::action!(
+ &action_group,
+ "copy-text",
+ clone!(@weak self as widget => move |_, _| {
+ widget.clipboard().set_text(&text_message.body);
+ })
+ );
+ }
+ MessageType::File(_) => {
+ // Save message's file
+ let file_save = gio::SimpleAction::new("file-save", None);
+ file_save.connect_activate(
+ clone!(@weak self as widget, @weak event => move |_, _| {
+ widget.save_event_file(event);
+ }),
+ );
+ action_group.add_action(&file_save);
- if let MessageType::File(_) = message.msgtype {
- // Save message's file
- let file_save = gio::SimpleAction::new("file-save", None);
- file_save.connect_activate(
- clone!(@weak self as widget, @weak event => move |_, _| {
- widget.save_event_file(event);
- }),
- );
- action_group.add_action(&file_save);
-
- // Open message's file
- let file_open = gio::SimpleAction::new("file-open", None);
- file_open.connect_activate(
- clone!(@weak self as widget, @weak event => move |_, _| {
- widget.open_event_file(event);
- }),
- );
- action_group.add_action(&file_open);
+ // Open message's file
+ let file_open = gio::SimpleAction::new("file-open", None);
+ file_open.connect_activate(
+ clone!(@weak self as widget, @weak event => move |_, _| {
+ widget.open_event_file(event);
+ }),
+ );
+ action_group.add_action(&file_open);
+ }
+ _ => {}
}
}
-
self.insert_action_group("event", Some(&action_group));
Some(action_group)
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]