Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'gajim/gtk/conversation/rows/message.py')
-rw-r--r--gajim/gtk/conversation/rows/message.py21
1 files changed, 19 insertions, 2 deletions
diff --git a/gajim/gtk/conversation/rows/message.py b/gajim/gtk/conversation/rows/message.py
index 614405993..c2df4ab00 100644
--- a/gajim/gtk/conversation/rows/message.py
+++ b/gajim/gtk/conversation/rows/message.py
@@ -39,6 +39,7 @@ from gajim.common.i18n import _
from gajim.common.i18n import is_rtl_text
from gajim.common.modules.contacts import GroupchatContact
from gajim.common.modules.contacts import GroupchatParticipant
+from gajim.common.storage.archive import ReferredMessageRow
from gajim.common.types import ChatContactT
from gajim.gtk.conversation.message_widget import MessageWidget
@@ -50,6 +51,7 @@ from gajim.gtk.conversation.rows.widgets import MoreMenuButton
from gajim.gtk.conversation.rows.widgets import NicknameLabel
from gajim.gtk.menus import get_chat_row_menu
from gajim.gtk.preview import PreviewWidget
+from gajim.gtk.referred_message_widget import ReferredMessageWidget
from gajim.gtk.util import format_fingerprint
from gajim.gtk.util import GajimPopover
@@ -70,7 +72,9 @@ class MessageRow(BaseRow):
display_marking: Displaymarking | None = None,
marker: str | None = None,
error: CommonError | StanzaError | None = None,
- log_line_id: int | None = None) -> None:
+ log_line_id: int | None = None,
+ referred_message: ReferredMessageRow | None = None
+ ) -> None:
BaseRow.__init__(self, account)
self.type = 'chat'
@@ -100,6 +104,8 @@ class MessageRow(BaseRow):
# Keep original text for message correction
self._original_text: str = text
+ self._ref_message_widget = None
+
if self._is_groupchat:
our_nick = get_group_chat_nick(self._account, self._contact.jid)
from_us = name == our_nick
@@ -115,6 +121,11 @@ class MessageRow(BaseRow):
app.preview_manager.create_preview(
text, self._message_widget, from_us, muc_context)
else:
+ if referred_message is not None:
+ self._ref_message_widget = ReferredMessageWidget(
+ self._contact,
+ referred_message)
+
self._message_widget = MessageWidget(account)
self._message_widget.add_with_styling(text, nickname=name)
if self._is_groupchat:
@@ -173,7 +184,13 @@ class MessageRow(BaseRow):
self._avatar_box = AvatarBox(self._contact, name, avatar)
self._bottom_box = Gtk.Box(spacing=6)
- self._bottom_box.add(self._message_widget)
+ if self._ref_message_widget is not None:
+ box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=3)
+ box.add(self._ref_message_widget)
+ box.add(self._message_widget)
+ self._bottom_box.add(box)
+ else:
+ self._bottom_box.add(self._message_widget)
if is_rtl_text(text):
self._bottom_box.set_halign(Gtk.Align.END)