Philipp Hörist pushed to branch master at gajim / gajim
Commits:
9abfda2a by Philipp Hörist at 2022-10-08T13:52:16+02:00
fix: Fix disabling accounts while reconnecting
Fixes #11194
- - - - -
2 changed files:
- gajim/common/client.py
- gajim/gtk/accounts.py
Changes:
=====================================
gajim/common/client.py
=====================================
@@ -568,7 +568,6 @@ def _schedule_reconnect(self) -> None:
def _abort_reconnect(self) -> None:
self._set_state(ClientState.DISCONNECTED)
self._disable_reconnect_timer()
- self.notify('state-changed', SimpleClientState.DISCONNECTED)
if self._destroy_client:
self._client.destroy()
@@ -576,6 +575,8 @@ def _abort_reconnect(self) -> None:
self._destroy_client = False
self._create_client()
+ self.notify('state-changed', SimpleClientState.DISCONNECTED)
+
def _disable_reconnect_timer(self) -> None:
if self._reconnect_timer_source is not None:
GLib.source_remove(self._reconnect_timer_source)
=====================================
gajim/gtk/accounts.py
=====================================
@@ -28,9 +28,8 @@
from gi.repository import GObject
from gajim.common import app
-from gajim.common import ged
from gajim.common import passwords
-from gajim.common.events import AccountDisconnected
+from gajim.common.const import ClientState
from gajim.common.i18n import _
from gajim.common.i18n import Q_
from gajim.common.settings import AllSettingsT
@@ -541,19 +540,10 @@ def _on_enable_switch(self,
state: bool,
account: str
) -> int:
- def _on_disconnect(event: AccountDisconnected) -> None:
- if event.account != account:
- return
- app.ged.remove_event_handler('account-disconnected',
- ged.POSTGUI,
- _on_disconnect)
- app.interface.disable_account(account)
def _disable() -> None:
- app.ged.register_event_handler('account-disconnected',
- ged.POSTGUI,
- _on_disconnect)
client = app.get_client(account)
+ client.connect_signal('state-changed', self._on_state_changed)
client.change_status('offline', 'offline')
switch.set_state(state)
self._set_label(state)
@@ -585,6 +575,15 @@ def _disable() -> None:
return Gdk.EVENT_PROPAGATE
+ def _on_state_changed(self,
+ client: types.Client,
+ _signal_name: str,
+ client_state: ClientState
+ ) -> None:
+
+ if client_state.is_disconnected:
+ app.interface.disable_account(client.account)
+
class AddNewAccountPage(Gtk.Box):
def __init__(self) -> None:
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/9abfda2a5eb1367e55c0ae6cb68e7b0c36e432ce
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/9abfda2a5eb1367e55c0ae6cb68e7b0c36e432ce
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