[fractal] fractal-gtk: room_history: Allow removing a message



commit b04127d0c23152ea76fcff69200cbbd894bacbf6
Author: Alistair Francis <alistair alistair23 me>
Date:   Thu Aug 22 22:07:36 2019 -0700

    fractal-gtk: room_history: Allow removing a message
    
    Signed-off-by: Alistair Francis <alistair alistair23 me>

 fractal-gtk/src/widgets/room_history.rs | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
---
diff --git a/fractal-gtk/src/widgets/room_history.rs b/fractal-gtk/src/widgets/room_history.rs
index ea8407ad..4a6beb4f 100644
--- a/fractal-gtk/src/widgets/room_history.rs
+++ b/fractal-gtk/src/widgets/room_history.rs
@@ -267,6 +267,20 @@ impl RoomHistory {
         None
     }
 
+    pub fn remove_message(&mut self, item: MessageContent) -> Option<()> {
+        let mut rows = self.rows.borrow_mut();
+        let ref mut msg = rows.list.iter_mut().find_map(|e| match e {
+            Element::Message(ref mut itermessage) if itermessage.id == item.id => Some(itermessage),
+            _ => None,
+        })?;
+
+        let msg_widget = msg.widget.clone()?;
+        msg.msg.redacted = true;
+        rows.listbox.remove(msg_widget.get_listbox_row()?);
+
+        None
+    }
+
     pub fn add_new_messages_in_batch(&mut self, messages: Vec<MessageContent>) -> Option<()> {
         /* TODO: use lazy loading */
         for item in messages {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]