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