[fractal] directory: Remove duplicate entries for rooms



commit 748ab68d0153b77246a82a05501f768e3e4fca69
Author: Daniel Pauls <daniel1708 de+git gmail com>
Date:   Mon Aug 19 18:08:12 2019 +0000

    directory: Remove duplicate entries for rooms
    
    Currently when opening the room directory and scrolling down, the
    already existing rooms will get appended to the list as well as the
    new ones causing duplicates.
    
    Only appending new rooms fixes this issue.

 fractal-gtk/src/appop/directory.rs | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)
---
diff --git a/fractal-gtk/src/appop/directory.rs b/fractal-gtk/src/appop/directory.rs
index e2f3fc9a..48fd9a4f 100644
--- a/fractal-gtk/src/appop/directory.rs
+++ b/fractal-gtk/src/appop/directory.rs
@@ -129,15 +129,6 @@ impl AppOp {
     }
 
     pub fn append_directory_rooms(&mut self, rooms: Vec<Room>) {
-        for r in rooms.iter() {
-            if self.directory.contains(r) {
-                continue;
-            }
-            self.directory.push(r.clone());
-        }
-
-        self.directory.sort_by_key(|a| -a.n_members);
-
         let directory = self
             .ui
             .builder
@@ -157,7 +148,11 @@ impl AppOp {
             .expect("Can't find directory_column in ui file.");
         directory_stack.set_visible_child(&directory_column);
 
-        for r in self.directory.iter() {
+        let mut sorted_rooms = rooms.clone();
+        sorted_rooms.sort_by_key(|a| -a.n_members);
+
+        for r in sorted_rooms.iter() {
+            self.directory.push(r.clone());
             let rb = widgets::RoomBox::new(&r, &self);
             let room_widget = rb.widget();
             directory.add(&room_widget);


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