Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwurstsalat <mailtrash@posteo.de>2022-09-25 13:55:49 +0300
committerwurstsalat <mailtrash@posteo.de>2022-09-25 13:57:50 +0300
commit117a4b92338c1b08132ac643558f7a52b154398a (patch)
tree5db490c4152f9af21bfd0623d4f2d6f08990e784
parente3bba1d5ed530c30db52787d51a84ea52eb0efff (diff)
fix: AccountPage: Disable Ad-Hoc Commands button when offline
Fixes #11167
-rw-r--r--gajim/data/gui/account_page.ui2
-rw-r--r--gajim/gtk/account_page.py16
-rw-r--r--gajim/gtk/builder.pyi1
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