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

Reply via email to