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]