Daniel Brötzmann pushed to branch mainwindow at gajim / gajim
Commits:
d64e2b83 by wurstsalat at 2021-12-03T21:54:57+01:00
ChatList: Mark chat as non-silent if mentioned
- - - - -
94a22d4a by wurstsalat at 2021-12-03T21:54:57+01:00
Notifications: Issue notification if silent but mentioned
- - - - -
2 changed files:
- gajim/gtk/chat_list.py
- gajim/gtk/controls/base.py
Changes:
=====================================
gajim/gtk/chat_list.py
=====================================
@@ -38,6 +38,7 @@
from gajim.common.helpers import get_group_chat_nick
from gajim.common.helpers import get_retraction_text
from gajim.common.helpers import get_uf_relative_time
+from gajim.common.helpers import message_needs_highlight
from gajim.common.helpers import AdditionalDataDict
from gajim.common.preview_helpers import filename_from_uri
from gajim.common.preview_helpers import guess_simple_file_type
@@ -361,7 +362,7 @@ def _on_message_received(self, event):
row.set_message_text(
event.msgtxt, additional_data=event.additional_data)
- self._add_unread(row, event.properties)
+ self._add_unread(row, event.properties, event.msgtxt)
self.invalidate_sort()
def _on_message_updated(self, event):
@@ -442,7 +443,7 @@ def _on_file_request_received(self, event):
_('File'), icon_name='text-x-generic-symbolic')
@staticmethod
- def _add_unread(row, properties):
+ def _add_unread(row, properties, text):
if properties.is_carbon_message and properties.carbon.is_sent:
return
@@ -451,7 +452,7 @@ def _add_unread(row, properties):
row.reset_unread()
return
- row.add_unread()
+ row.add_unread(text)
def _on_account_changed(self, *args):
for row in self.get_children():
@@ -678,7 +679,7 @@ def _get_unread_string(count: int) -> str:
return str(count)
return '999+'
- def add_unread(self) -> None:
+ def add_unread(self, text: str) -> None:
control = app.window.get_control(self.account, self.jid)
if self.is_active and control.get_autoscroll():
return
@@ -687,11 +688,24 @@ def add_unread(self) -> None:
self._update_unread()
self.get_parent().emit_unread_changed()
+ needs_highlight = message_needs_highlight(
+ text,
+ self.contact.nickname,
+ self._client.get_own_jid().bare)
+ if needs_highlight:
+ self._ui.unread_label.get_style_context().remove_class(
+ 'unread-counter-silent')
+
def reset_unread(self) -> None:
self._unread_count = 0
self._update_unread()
self.get_parent().emit_unread_changed()
+ # Add class again in case we were mentioned previously
+ if self.contact.is_groupchat and not self.contact.can_notify():
+ self._ui.unread_label.get_style_context().add_class(
+ 'unread-counter-silent')
+
@property
def is_active(self) -> bool:
return (self.is_selected() and
=====================================
gajim/gtk/controls/base.py
=====================================
@@ -1234,8 +1234,8 @@ def _notify(self,
else:
sound = 'muc_message_received'
- if not self.contact.can_notify():
- sound = None
+ if not self.contact.can_notify() and not needs_highlight:
+ return
if self.is_privatechat:
msg_type = 'private-chat-message'
@@ -1250,9 +1250,6 @@ def _notify(self,
if text.startswith('/me') or text.startswith('/me\n'):
text = f'* {name} {text[3:]}'
- if self.is_groupchat and not self.contact.can_notify():
- return
-
app.nec.push_incoming_event(
NetworkEvent('notification',
account=self.account,
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/compare/9c0376d719fc93684054e12c4b773a1fa0bf0284...94a22d4a682ea6c471f6a5646a89486cb787bdfb
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/compare/9c0376d719fc93684054e12c4b773a1fa0bf0284...94a22d4a682ea6c471f6a5646a89486cb787bdfb
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits