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


Commits:
59dfb9da by Philipp Hörist at 2024-03-17T21:29:12+01:00
imprv: Handle corrected messages correctly

- - - - -


3 changed files:

- gajim/gtk/conversation/rows/message.py
- gajim/gtk/conversation/view.py
- gajim/gtk/menus.py


Changes:

=====================================
gajim/gtk/conversation/rows/message.py
=====================================
@@ -62,9 +62,10 @@ def __init__(self,
         self.db_timestamp = message.timestamp.timestamp()
         self.message_id = message.id
         self.stanza_id = message.stanza_id
-        self.log_line_id = message.pk
         self.direction = ChatDirection(message.direction)
 
+        self._orig_log_line_id = message.pk
+
         assert message.text is not None
         self._original_text = message.text
         self._original_message = message
@@ -106,6 +107,8 @@ def update_with_content(self, message: Message) -> None:
         if message.corrections:
             message = message.get_last_correction()
 
+        self.log_line_id = message.pk
+
         self.encryption = message.encryption
         self.securitylabel = message.security_label
 
@@ -239,6 +242,7 @@ def _on_more_menu_button_clicked(self, button: Gtk.Button) 
-> None:
             self.timestamp,
             self.message_id,
             self.stanza_id,
+            self._orig_log_line_id,
             self.log_line_id)
 
         popover = GajimPopover(menu, relative_to=button)


=====================================
gajim/gtk/conversation/view.py
=====================================
@@ -753,8 +753,10 @@ def get_row_by_log_line_id(self, log_line_id: int) -> 
MessageRow | None:
         for row in cast(list[BaseRow], self._list_box.get_children()):
             if not isinstance(row, MessageRow):
                 continue
-            if row.log_line_id == log_line_id:
+            if (row.log_line_id == log_line_id or
+                    row._orig_log_line_id == log_line_id):
                 return row
+
         return None
 
     def get_row_by_stanza_id(self, stanza_id: str) -> MessageRow | None:


=====================================
gajim/gtk/menus.py
=====================================
@@ -691,7 +691,8 @@ def get_chat_row_menu(contact: types.ChatContactT,
                       timestamp: datetime,
                       message_id: str | None,
                       stanza_id: str | None,
-                      entitykey: int | None
+                      pk: int | None,
+                      corrected_pk: int | None,
                       ) -> GajimMenu:
 
     menu_items: MenuItemListT = []
@@ -728,7 +729,7 @@ def get_chat_row_menu(contact: types.ChatContactT,
     menu_items.append(
         (p_('Message row action', 'Select Messages…'),
          'win.activate-message-selection',
-         GLib.Variant('u', entitykey or 0)))
+         GLib.Variant('u', corrected_pk or 0)))
 
     show_correction = False
     if message_id is not None:
@@ -760,11 +761,11 @@ def get_chat_row_menu(contact: types.ChatContactT,
             'win.retract-message',
             param))
 
-    if entitykey is not None:
+    if pk is not None:
         param = DeleteMessageParam(
             account=contact.account,
             jid=contact.jid,
-            entitykey=entitykey)
+            entitykey=pk)
 
         menu_items.append(
             (p_('Message row action',



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/59dfb9da7d421d19cfe76b56bcec391dce6cedbf

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/59dfb9da7d421d19cfe76b56bcec391dce6cedbf
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