Daniel Brötzmann pushed to branch master at gajim / gajim


Commits:
3b8d7f1e by wurstsalat at 2022-04-06T18:44:59+02:00
fix: PrivateChatControl: Update text input if contact changes availability

Fixes #10816

- - - - -


4 changed files:

- gajim/gtk/controls/base.py
- gajim/gtk/controls/chat.py
- gajim/gtk/controls/groupchat.py
- gajim/gtk/controls/private.py


Changes:

=====================================
gajim/gtk/controls/base.py
=====================================
@@ -1387,6 +1387,11 @@ def set_control_active(self, state: bool) -> None:
             self._client.get_module('Chatstate').set_chatstate(
                 self.contact, Chatstate.INACTIVE)
 
+    def set_message_input_state(self, state: bool) -> None:
+        self.xml.formattings_button.set_sensitive(state)
+        self.msg_textview.set_sensitive(state)
+        self.msg_textview.set_editable(state)
+
     @property
     def is_chat_loaded(self) -> bool:
         return self._chat_loaded


=====================================
gajim/gtk/controls/chat.py
=====================================
@@ -662,8 +662,7 @@ def _on_client_state_changed(self,
                                  _client: Client,
                                  _signal_name: str,
                                  state: SimpleClientState):
-        self.msg_textview.set_sensitive(state.is_connected)
-        self.msg_textview.set_editable(state.is_connected)
+        self.set_message_input_state(state.is_connected)
 
         self._update_avatar()
         self.update_toolbar()


=====================================
gajim/gtk/controls/groupchat.py
=====================================
@@ -744,17 +744,12 @@ def _nec_ping(self, event: events.ApplicationEvent) -> 
None:
         elif isinstance(event, events.PingError):
             self.add_info_message(event.error)
 
-    def _set_message_input_sensitive(self, state: bool) -> None:
-        self.xml.formattings_button.set_sensitive(state)
-        self.msg_textview.set_sensitive(state)
-        self.msg_textview.set_editable(state)
-
     def _set_control_active(self) -> None:
         contact = self.contact.get_self()
         if contact.role.is_visitor:
             self.xml.visitor_box.show()
         else:
-            self._set_message_input_sensitive(True)
+            self.set_message_input_state(True)
 
         self.roster.initial_draw()
         self.conversation_view.update_avatars()
@@ -762,7 +757,7 @@ def _set_control_active(self) -> None:
         self.update_actions()
 
     def _set_control_inactive(self) -> None:
-        self._set_message_input_sensitive(False)
+        self.set_message_input_state(False)
         self.xml.visitor_box.hide()
 
         self.roster.enable_sort(False)
@@ -911,7 +906,7 @@ def _on_user_role_changed(self,
                 self.xml.visitor_box.show()
             else:
                 self.xml.visitor_box.hide()
-            self._set_message_input_sensitive(not user_contact.role.is_visitor)
+            self.set_message_input_state(not user_contact.role.is_visitor)
             message = _('** Your Role has been set to '
                         '{role}{actor}{reason}').format(role=role,
                                                         actor=actor,


=====================================
gajim/gtk/controls/private.py
=====================================
@@ -24,6 +24,8 @@
 # You should have received a copy of the GNU General Public License
 # along with Gajim. If not, see <http://www.gnu.org/licenses/>.
 
+from typing import Any
+
 from nbxmpp import JID
 
 from gajim.common import app
@@ -122,18 +124,18 @@ def _on_user_status_show_changed(self,
     # def _on_disconnected(self, event):
     #     if event.properties.jid != self.contact.jid:
     #         return
-    #     self.got_disconnected()
+    #     self.set_message_input_state(False)
 
-    def _on_user_left(self, *args):
-        self.got_disconnected()
+    def _on_user_left(self, *args: Any) -> None:
+        self.set_message_input_state(False)
 
-    def _on_user_joined(self, *args):
-        self.got_connected()
+    def _on_user_joined(self, *args: Any) -> None:
+        self.set_message_input_state(True)
 
-    def _on_room_joined(self, *args):
+    def _on_room_joined(self, *args: Any) -> None:
         if not self.contact.is_available:
             return
-        self.got_connected()
+        self.set_message_input_state(True)
 
     def send_message(self,
                      message: str,



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/3b8d7f1e4956136cd5a5caf8e3141337106e3c8f

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/3b8d7f1e4956136cd5a5caf8e3141337106e3c8f
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