diff options
author | wurstsalat <mailtrash@posteo.de> | 2022-09-25 13:55:49 +0300 |
---|---|---|
committer | wurstsalat <mailtrash@posteo.de> | 2022-09-25 13:57:50 +0300 |
commit | 117a4b92338c1b08132ac643558f7a52b154398a (patch) | |
tree | 5db490c4152f9af21bfd0623d4f2d6f08990e784 | |
parent | e3bba1d5ed530c30db52787d51a84ea52eb0efff (diff) |
fix: AccountPage: Disable Ad-Hoc Commands button when offline
Fixes #11167
-rw-r--r-- | gajim/data/gui/account_page.ui | 2 | ||||
-rw-r--r-- | gajim/gtk/account_page.py | 16 | ||||
-rw-r--r-- | gajim/gtk/builder.pyi | 1 |
3 files changed, 18 insertions, 1 deletions
diff --git a/gajim/data/gui/account_page.ui b/gajim/data/gui/account_page.ui index 039af561f..95e04c2d8 100644 --- a/gajim/data/gui/account_page.ui +++ b/gajim/data/gui/account_page.ui @@ -229,7 +229,7 @@ </packing> </child> <child> - <object class="GtkButton"> + <object class="GtkButton" id="adhoc_commands_button"> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">True</property> diff --git a/gajim/gtk/account_page.py b/gajim/gtk/account_page.py index 335dd38ea..bd6f75fa7 100644 --- a/gajim/gtk/account_page.py +++ b/gajim/gtk/account_page.py @@ -14,6 +14,8 @@ from __future__ import annotations +from typing import Union + from gi.repository import Gdk from gi.repository import Gio from gi.repository import Gtk @@ -23,6 +25,8 @@ from nbxmpp.protocol import JID from gajim.common import app from gajim.common import ged from gajim.common.const import AvatarSize +from gajim.common.events import AccountConnected +from gajim.common.events import AccountDisonnected from gajim.common.events import SubscribePresenceReceived from gajim.common.events import UnsubscribedPresenceReceived from gajim.common.events import MucInvitation @@ -88,6 +92,8 @@ class AccountPage(Gtk.Box, EventHelper): ged.GUI1, self._unsubscribed_received), ('muc-invitation', ged.GUI1, self._muc_invitation_received), ('muc-decline', ged.GUI1, self._muc_invitation_declined), + ('account-connected', ged.GUI2, self._on_account_state), + ('account-disconnected', ged.GUI2, self._on_account_state), ]) # pylint: enable=line-too-long @@ -109,6 +115,16 @@ class AccountPage(Gtk.Box, EventHelper): server_jid = JID.from_string(self._jid).domain open_window('AdHocCommands', account=self._account, jid=server_jid) + def _on_account_state(self, + event: Union[AccountConnected, AccountDisonnected] + ) -> None: + + if event.account != self._account: + return + + self._ui.adhoc_commands_button.set_sensitive( + app.account_is_connected(event.account)) + def _on_search_changed(self, widget: Gtk.SearchEntry) -> None: text = widget.get_text().lower() self._roster.set_search_string(text) diff --git a/gajim/gtk/builder.pyi b/gajim/gtk/builder.pyi index 44548c29b..d020f3237 100644 --- a/gajim/gtk/builder.pyi +++ b/gajim/gtk/builder.pyi @@ -18,6 +18,7 @@ class AccountPageBuilder(Builder): avatar_image: Gtk.Image account_label: Gtk.Label account_action_box: Gtk.Box + adhoc_commands_button: Gtk.Button status_message_box: Gtk.Box |