diff options
author | wurstsalat <mailtrash@posteo.de> | 2023-06-05 20:54:06 +0300 |
---|---|---|
committer | wurstsalat <mailtrash@posteo.de> | 2023-06-05 20:54:11 +0300 |
commit | f2c514f317737388cad1eea374c378e4cc933e7c (patch) | |
tree | ebad38e99e4e8bbf396f19a13e962ff0a4b04772 | |
parent | d639b32d8b9edc941373d05d26014f8bcee3ffc4 (diff) |
fix: Fix showing MAM sync errors and show error text
-rw-r--r-- | gajim/data/gui/groupchat_state.ui | 3 | ||||
-rw-r--r-- | gajim/gtk/builder.pyi | 1 | ||||
-rw-r--r-- | gajim/gtk/chat_list_row.py | 24 | ||||
-rw-r--r-- | gajim/gtk/groupchat_state.py | 19 |
4 files changed, 34 insertions, 13 deletions
diff --git a/gajim/data/gui/groupchat_state.ui b/gajim/data/gui/groupchat_state.ui index b7b3914d0..806fbf26c 100644 --- a/gajim/data/gui/groupchat_state.ui +++ b/gajim/data/gui/groupchat_state.ui @@ -165,10 +165,9 @@ </packing> </child> <child> - <object class="GtkLabel"> + <object class="GtkLabel" id="mam_error_label"> <property name="visible">True</property> <property name="can-focus">False</property> - <property name="label" translatable="yes">There has been an error while trying to fetch messages.</property> <property name="wrap">True</property> <property name="max-width-chars">50</property> <property name="xalign">0</property> diff --git a/gajim/gtk/builder.pyi b/gajim/gtk/builder.pyi index 1dd432ce2..78f9d9e2a 100644 --- a/gajim/gtk/builder.pyi +++ b/gajim/gtk/builder.pyi @@ -522,6 +522,7 @@ class GroupchatRosterTooltipBuilder(Builder): class GroupchatStateBuilder(Builder): groupchat_state: Gtk.Stack + mam_error_label: Gtk.Label class GroupsPostWindowBuilder(Builder): diff --git a/gajim/gtk/chat_list_row.py b/gajim/gtk/chat_list_row.py index 51e529ea9..ce68d9502 100644 --- a/gajim/gtk/chat_list_row.py +++ b/gajim/gtk/chat_list_row.py @@ -525,7 +525,7 @@ class ChatListRow(Gtk.ListBoxRow): self.contact.connect('state-changed', self._on_muc_state_changed) self.contact.connect('mam-sync-started', self._on_mam_sync_changed) self.contact.connect('mam-sync-finished', self._on_mam_sync_changed) - self.contact.connect('mam-sync-error', self._on_mam_sync_changed) + self.contact.connect('mam-sync-error', self._on_mam_sync_error) self._client.connect_signal('state-changed', self._on_client_state_changed) @@ -597,13 +597,21 @@ class ChatListRow(Gtk.ListBoxRow): context.add_class('info-color') self._ui.connection_icon.set_tooltip_text(_('Fetching messages…')) self._ui.connection_icon.show() - elif signal_name == 'mam-sync-error': - self._ui.connection_icon.set_from_icon_name( - 'feather-zap-symbolic', Gtk.IconSize.MENU) - context.add_class('error-color') - self._ui.connection_icon.set_tooltip_text( - _('There has been an error while trying to fetch messages.')) - self._ui.connection_icon.show() + + def _on_mam_sync_error(self, + _contact: GroupchatContact, + _signal_name: str, + error_text: str + ) -> None: + + self._reset_connection_icon() + self._ui.connection_icon.set_from_icon_name( + 'feather-zap-symbolic', Gtk.IconSize.MENU) + self._ui.connection_icon.get_style_context().add_class('error-color') + self._ui.connection_icon.set_tooltip_text( + _('There has been an error while trying to ' + 'fetch messages: %s') % error_text) + self._ui.connection_icon.show() def _reset_connection_icon(self) -> None: self._ui.connection_icon.hide() diff --git a/gajim/gtk/groupchat_state.py b/gajim/gtk/groupchat_state.py index 8c35f4f89..983e6d5b8 100644 --- a/gajim/gtk/groupchat_state.py +++ b/gajim/gtk/groupchat_state.py @@ -19,6 +19,7 @@ from gi.repository import Gtk from gajim.common import app from gajim.common import types from gajim.common.const import SimpleClientState +from gajim.common.i18n import _ from gajim.common.modules.contacts import GroupchatContact from gajim.gtk.builder import get_builder @@ -61,7 +62,7 @@ class GroupchatState(Gtk.Box): self._contact.connect('state-changed', self._on_muc_state_changed) self._contact.connect('mam-sync-started', self._on_mam_sync_changed) self._contact.connect('mam-sync-finished', self._on_mam_sync_changed) - self._contact.connect('mam-sync-error', self._on_mam_sync_changed) + self._contact.connect('mam-sync-error', self._on_mam_sync_error) self._client = app.get_client(contact.account) self._client.connect_signal('state-changed', @@ -97,16 +98,28 @@ class GroupchatState(Gtk.Box): def _on_mam_sync_changed(self, _contact: GroupchatContact, - signal_name: str + signal_name: str, ) -> None: - if signal_name in ('mam-sync-started', 'mam-sync-error'): + if signal_name == 'mam-sync-started': self.set_visible(True) self._ui.groupchat_state.set_visible_child_name(signal_name) return self.hide() + def _on_mam_sync_error(self, + _contact: GroupchatContact, + signal_name: str, + error_text: str + ) -> None: + + self.set_visible(True) + self._ui.groupchat_state.set_visible_child_name(signal_name) + self._ui.mam_error_label.set_text( + _('There has been an error while trying to ' + 'fetch messages: %s') % error_text) + def _on_close_clicked(self, _button: Gtk.Button) -> None: self.hide() |