Daniel Brötzmann pushed to branch master at gajim / gajim
Commits: f2c514f3 by wurstsalat at 2023-06-05T19:54:11+02:00 fix: Fix showing MAM sync errors and show error text
- - - - -
4 changed files:
- gajim/data/gui/groupchat_state.ui - gajim/gtk/builder.pyi - gajim/gtk/chat_list_row.py - gajim/gtk/groupchat_state.py
Changes:
===================================== 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>
===================================== 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):
===================================== gajim/gtk/chat_list_row.py ===================================== @@ -525,7 +525,7 @@ def _connect_contact_signals(self) -> None: 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 @@ def _on_mam_sync_changed(self, 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()
===================================== gajim/gtk/groupchat_state.py ===================================== @@ -19,6 +19,7 @@ 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 @@ def switch_contact(self, contact: types.ChatContactT) -> None: 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 @@ def _update_state(self, contact: GroupchatContact) -> None:
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()
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/f2c514f317737388cad1eea374c378e4c...