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/main.py')
-rw-r--r--gajim/gtk/main.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/gajim/gtk/main.py b/gajim/gtk/main.py
index 5f234af5c..b707c3888 100644
--- a/gajim/gtk/main.py
+++ b/gajim/gtk/main.py
@@ -186,6 +186,22 @@ class MainWindow(Gtk.ApplicationWindow, EventHelper):
self.deiconify()
self.present_with_time(Gtk.get_current_event_time())
+ def mark_workspace_as_read(self, workspace: str) -> None:
+ chat_list_stack = self._chat_page.get_chat_list_stack()
+ chat_list = chat_list_stack.get_chatlist(workspace)
+ open_chats = chat_list.get_open_chats()
+ for chat in open_chats:
+ self.mark_as_read(chat['account'], chat['jid'])
+
+ def _mark_workspace_as_read(self,
+ _action: Gio.SimpleAction,
+ param: GLib.Variant
+ ) -> None:
+
+ workspace_id = param.get_string() or None
+ if workspace_id is not None:
+ self.mark_workspace_as_read(workspace_id)
+
def _prepare_window(self) -> None:
window_width = app.settings.get('mainwin_width')
window_height = app.settings.get('mainwin_height')
@@ -370,6 +386,7 @@ class MainWindow(Gtk.ApplicationWindow, EventHelper):
('edit-workspace', self._edit_workspace),
('remove-workspace', self._remove_workspace),
('activate-workspace', self._activate_workspace),
+ ('mark-workspace-as-read', self._mark_workspace_as_read),
('add-chat', self._add_chat),
('add-group-chat', self._add_group_chat),
('add-to-roster', self._add_to_roster),
@@ -839,6 +856,15 @@ class MainWindow(Gtk.ApplicationWindow, EventHelper):
chat_list_stack = self._chat_page.get_chat_list_stack()
return chat_list_stack.get_total_unread_count()
+ def get_workspace_unread_count(self,
+ workspace: str,
+ include_silent: bool = False
+ ) -> int:
+
+ chat_list_stack = self._chat_page.get_chat_list_stack()
+ chat_list = chat_list_stack.get_chatlist(workspace)
+ return chat_list.get_unread_count(include_silent)
+
def get_chat_unread_count(self,
account: str,
jid: JID,