Daniel Brötzmann pushed to branch master at gajim / gajim
Commits:
8aa872b9 by wurstsalat at 2023-05-06T12:17:51+02:00
imprv: ChatList: Show indicator when joining group chat
- - - - -
4 changed files:
- gajim/data/gui/chat_list_row.ui
- gajim/data/style/gajim.css
- gajim/gtk/builder.pyi
- gajim/gtk/chat_list_row.py
Changes:
=====================================
gajim/data/gui/chat_list_row.ui
=====================================
@@ -87,9 +87,24 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
+ <property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkSpinner" id="spinner">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="tooltip-text"
translatable="yes">Joining Group Chat…</property>
+ <property name="opacity">0.60</property>
+ <property name="active">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
=====================================
gajim/data/style/gajim.css
=====================================
@@ -433,6 +433,9 @@ .chatlist-row:selected button {
.chatlist-row:selected image {
color: @theme_fg_color;
}
+.chatlist-row:selected spinner {
+ color: @theme_fg_color;
+}
.dnd-target-chatlist {
animation-name: pulse-opacity;
animation-duration: 2.0s;
=====================================
gajim/gtk/builder.pyi
=====================================
@@ -218,6 +218,7 @@ class ChatListRowBuilder(Builder):
avatar_image: Gtk.Image
group_chat_indicator: Gtk.Image
name_label: Gtk.Label
+ spinner: Gtk.Spinner
chatstate_image: Gtk.Image
mute_image: Gtk.Image
timestamp_label: Gtk.Label
=====================================
gajim/gtk/chat_list_row.py
=====================================
@@ -507,6 +507,10 @@ def _connect_contact_signals(self) -> None:
elif isinstance(self.contact, GroupchatContact):
self.contact.connect('avatar-update', self._on_avatar_update)
+ self.contact.connect('state-changed', self._on_muc_state_changed)
+
+ self._client.connect_signal('state-changed',
+ self._on_client_state_changed)
elif isinstance(self.contact, GroupchatParticipant):
self.contact.connect('chatstate-update', self._on_chatstate_update)
@@ -535,6 +539,16 @@ def _on_avatar_update(self,
) -> None:
self.update_avatar()
+ def _on_client_state_changed(self, *args: Any) -> None:
+ self._update_joined_state()
+
+ def _on_muc_state_changed(self, *args: Any) -> None:
+ self._update_joined_state()
+
+ def _update_joined_state(self) -> None:
+ self._ui.spinner.set_visible(
+ self.contact.is_joining and self._client.state.is_available)
+
def _on_muc_user_update(self,
_contact: GroupchatParticipant,
_signal_name: str,
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/8aa872b9632aeea75866ecad4d0364301d453cb9
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/8aa872b9632aeea75866ecad4d0364301d453cb9
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits