Philipp Hörist pushed to branch master at gajim / gajim


Commits:
e36daed0 by Philipp Hörist at 2024-05-24T15:51:58+02:00
refactor: ConversationView: Remove obsolete methods

- - - - -
734c9871 by Philipp Hörist at 2024-05-24T15:51:58+02:00
new: ConversationView: Remove rows from maps on deletion

- - - - -


1 changed file:

- gajim/gtk/conversation/view.py


Changes:

=====================================
gajim/gtk/conversation/view.py
=====================================
@@ -648,56 +648,12 @@ def _on_message_row_state_flags_changed(
             _x_coord, y_coord = coords
             self._message_row_actions.update(y_coord, row)
 
-    def reduce_message_count(self, before: bool) -> bool:
-        success = False
-        row_count = len(self._list_box.get_children())
-        while row_count > self._max_row_count:
-            if before:
-                if self._reduce_messages_before():
-                    row_count -= 1
-                    success = True
-            else:
-                self._reduce_messages_after()
-                row_count -= 1
-                success = True
-
-        return success
-
-    def _reduce_messages_before(self) -> bool:
-        success = False
-
-        # We want to keep relevant DateRows when removing rows
-        row1 = self._get_row_at_index(2)
-        row2 = self._get_row_at_index(3)
-
-        if row1.type == 'date' and row2.type == 'date':
-            # First two rows are date rows,
-            # it’s safe to remove the fist row
-            row1.destroy()
-            success = True
-
-        if row1.type == 'date' and row2.type != 'date':
-            # First one is a date row, keep it and
-            # remove the second row instead
-            row2.destroy()
-            success = True
-
-        if row1.type != 'date':
-            # Not a date row, safe to remove
-            row1.destroy()
-            success = True
-
-        return success
-
-    def _reduce_messages_after(self) -> None:
-        row = self._get_row_at_index(len(self._list_box.get_children()) - 1)
-        row.destroy()
-
     def remove_message(self, pk: int) -> None:
         row = self.get_row_by_pk(pk)
         if row is None:
             return
 
+        self._remove_from_maps(row)
         index = row.get_index()
         row.destroy()
         decendant_row = self._list_box.get_row_at_index(index)
@@ -707,6 +663,15 @@ def remove_message(self, pk: int) -> None:
             # unset merged state.
             decendant_row.set_merged(False)
 
+    def _remove_from_maps(self, row: MessageRow) -> None:
+        for key, val in dict(self._message_id_row_map).items():
+            if val is row:
+                del self._message_id_row_map[key]
+
+        for key, val in dict(self._stanza_id_row_map).items():
+            if val is row:
+                del self._stanza_id_row_map[key]
+
     def acknowledge_message(self, event: events.MessageAcknowledged) -> None:
         row = self.get_row_by_pk(event.pk)
         if row is None:



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/d6c8d4235f40d9c7efc02ce85c4fa6de83ed3035...734c9871d74a96597e7ca8ac56dc54f816e00589

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/d6c8d4235f40d9c7efc02ce85c4fa6de83ed3035...734c9871d74a96597e7ca8ac56dc54f816e00589
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to