Philipp Hörist pushed to branch unify-control at gajim / gajim
Commits: 6c2b2c91 by lovetox at 2022-08-08T15:45:41+02:00 fix: Remove unused imports
- - - - - 31b3831a by lovetox at 2022-08-08T16:45:11+02:00 fix: Make mark_as_read work again
- - - - -
7 changed files:
- gajim/common/modules/chat_markers.py - gajim/common/modules/contacts.py - gajim/gtk/chat_page.py - gajim/gtk/control.py - gajim/gtk/conversation/view.py - gajim/gtk/groupchat_roster.py - gajim/gtk/main.py
Changes:
===================================== gajim/common/modules/chat_markers.py ===================================== @@ -26,6 +26,8 @@ from gajim.common.events import DisplayedReceived from gajim.common.events import ReadStateSync from gajim.common.modules.base import BaseModule +from gajim.common.modules.contacts import GroupchatContact +from gajim.common.modules.contacts import GroupchatParticipant from gajim.common.structs import OutgoingMessage
@@ -112,23 +114,19 @@ def _raise_event(self, name: str, properties: Any) -> None: def _send_marker(self, contact: types.ChatContactT, marker: str, - id_: str, - type_: str) -> None: + id_: str) -> None:
- jid = contact.jid - if contact.is_pm_contact: - jid = contact.jid.new_as_bare() - - if type_ in ('gc', 'pm'): + if isinstance(contact, (GroupchatContact, GroupchatParticipant)): + typ = 'groupchat' if not app.settings.get_group_chat_setting( - self._account, jid, 'send_marker'): + self._account, contact.jid.new_as_bare(), 'send_marker'): return else: + typ = 'chat' if not app.settings.get_contact_setting( - self._account, jid, 'send_marker'): + self._account, contact.jid, 'send_marker'): return
- typ = 'groupchat' if type_ == 'gc' else 'chat' message = OutgoingMessage(account=self._account, contact=contact, message=None, @@ -140,6 +138,6 @@ def _send_marker(self,
def send_displayed_marker(self, contact: types.ChatContactT, - id_: str, - type_: str) -> None: - self._send_marker(contact, 'displayed', id_, type_) + id_: str) -> None: + + self._send_marker(contact, 'displayed', id_)
===================================== gajim/common/modules/contacts.py ===================================== @@ -21,7 +21,6 @@ from typing import overload
import cairo -from gi.repository.GObject import Value from nbxmpp.const import Affiliation from nbxmpp.const import Chatstate from nbxmpp.const import Role
===================================== gajim/gtk/chat_page.py ===================================== @@ -14,8 +14,6 @@
from typing import Any from typing import Literal -from typing import Optional -from typing import Generator
import logging
===================================== gajim/gtk/control.py ===================================== @@ -57,7 +57,6 @@ from gajim.gui.conversation.jump_to_end_button import JumpToEndButton from gajim.gui.builder import get_builder from gajim.gui.util import set_urgency_hint -from gajim.gui.const import ControlType from gajim.gui.dialogs import DialogButton from gajim.gui.dialogs import ConfirmationDialog from gajim.gui.groupchat_roster import GroupchatRoster @@ -278,8 +277,7 @@ def mark_as_read(self, send_marker: bool = True) -> None: # XEP-0333 Send <displayed> marker self._client.get_module('ChatMarkers').send_displayed_marker( self.contact, - self.last_msg_id, - str(self._type)) + self.last_msg_id) self.last_msg_id = None
def set_encryption_state(self, encryption: Optional[str]) -> None: @@ -300,13 +298,14 @@ def _on_autoscroll_changed(self, _widget: ScrolledView, autoscroll: bool ) -> None: + if not autoscroll: self._jump_to_end_button.toggle(True) return
self._jump_to_end_button.toggle(False) - if app.window.is_chat_active(self.account, self.contact.jid): - app.window.mark_as_read(self.account, self.contact.jid) + if app.window.is_chat_active(self.contact.account, self.contact.jid): + app.window.mark_as_read(self.contact.account, self.contact.jid)
def _on_jump_to_end(self, _button: Gtk.Button) -> None: self.reset_view()
===================================== gajim/gtk/conversation/view.py ===================================== @@ -36,7 +36,6 @@ from nbxmpp.protocol import JID
from gajim.common import app -from gajim.common.client import Client from gajim.common.events import JingleRequestReceived from gajim.common.events import FileRequestReceivedEvent from gajim.common.events import FileRequestSent
===================================== gajim/gtk/groupchat_roster.py ===================================== @@ -16,7 +16,6 @@
from typing import Any from typing import Optional -from typing import cast
import locale from enum import IntEnum @@ -42,7 +41,6 @@ from .menus import get_groupchat_roster_menu from .tooltips import GCTooltip from .builder import get_builder -from .types import ControlT from .util import EventHelper
===================================== gajim/gtk/main.py ===================================== @@ -792,16 +792,19 @@ def get_chat_unread_count(self, account, jid, include_silent) return count or 0
- def mark_as_read(self, account: str, jid: JID, - send_marker: bool = True) -> None: - # TODO - return + def mark_as_read(self, + account: str, + jid: JID, + send_marker: bool = True + ) -> None: + set_urgency_hint(self, False) - control = self.get_control(account, jid) - if control is not None: + control = self.get_control() + if control.has_active_chat(): # Send displayed marker and # reset jump to bottom button unread counter control.mark_as_read(send_marker=send_marker) + # Reset chat list unread counter (emits unread-count-changed) chat_list_stack = self._chat_page.get_chat_list_stack() chat_list_stack.mark_as_read(account, jid)
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/compare/65d64165150af3e5bb88f40b8666877e...