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:
authorwurstsalat <mailtrash@posteo.de>2023-06-05 20:54:06 +0300
committerwurstsalat <mailtrash@posteo.de>2023-06-05 20:54:11 +0300
commitf2c514f317737388cad1eea374c378e4cc933e7c (patch)
treeebad38e99e4e8bbf396f19a13e962ff0a4b04772
parentd639b32d8b9edc941373d05d26014f8bcee3ffc4 (diff)
fix: Fix showing MAM sync errors and show error text
-rw-r--r--gajim/data/gui/groupchat_state.ui3
-rw-r--r--gajim/gtk/builder.pyi1
-rw-r--r--gajim/gtk/chat_list_row.py24
-rw-r--r--gajim/gtk/groupchat_state.py19
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()