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/3b8d7f1e4956136cd5a5caf8e31413371...