add a new event that is sent just before changing status. Fixes #7593
This commit is contained in:
parent
76d0f16d4a
commit
b9ff018a03
2 changed files with 12 additions and 0 deletions
|
@ -708,12 +708,16 @@ class CommonConnection:
|
||||||
if gajim.HAVE_GPG:
|
if gajim.HAVE_GPG:
|
||||||
self.USE_GPG = True
|
self.USE_GPG = True
|
||||||
self.gpg = gpg.GnuPG(gajim.config.get('use_gpg_agent'))
|
self.gpg = gpg.GnuPG(gajim.config.get('use_gpg_agent'))
|
||||||
|
gajim.nec.push_incoming_event(BeforeChangeShowEvent(None,
|
||||||
|
conn=self, show=show, message=msg))
|
||||||
self.connect_and_init(show, msg, sign_msg)
|
self.connect_and_init(show, msg, sign_msg)
|
||||||
return
|
return
|
||||||
|
|
||||||
if show == 'offline':
|
if show == 'offline':
|
||||||
self.connected = 0
|
self.connected = 0
|
||||||
if self.connection:
|
if self.connection:
|
||||||
|
gajim.nec.push_incoming_event(BeforeChangeShowEvent(None,
|
||||||
|
conn=self, show=show, message=msg))
|
||||||
p = nbxmpp.Presence(typ = 'unavailable')
|
p = nbxmpp.Presence(typ = 'unavailable')
|
||||||
p = self.add_sha(p, False)
|
p = self.add_sha(p, False)
|
||||||
if msg:
|
if msg:
|
||||||
|
@ -731,12 +735,16 @@ class CommonConnection:
|
||||||
if self.connected == 1:
|
if self.connected == 1:
|
||||||
return
|
return
|
||||||
if show == 'invisible':
|
if show == 'invisible':
|
||||||
|
gajim.nec.push_incoming_event(BeforeChangeShowEvent(None,
|
||||||
|
conn=self, show=show, message=msg))
|
||||||
self._change_to_invisible(msg)
|
self._change_to_invisible(msg)
|
||||||
return
|
return
|
||||||
if show not in ['offline', 'online', 'chat', 'away', 'xa', 'dnd']:
|
if show not in ['offline', 'online', 'chat', 'away', 'xa', 'dnd']:
|
||||||
return -1
|
return -1
|
||||||
was_invisible = self.connected == gajim.SHOW_LIST.index('invisible')
|
was_invisible = self.connected == gajim.SHOW_LIST.index('invisible')
|
||||||
self.connected = gajim.SHOW_LIST.index(show)
|
self.connected = gajim.SHOW_LIST.index(show)
|
||||||
|
gajim.nec.push_incoming_event(BeforeChangeShowEvent(None,
|
||||||
|
conn=self, show=show, message=msg))
|
||||||
if was_invisible:
|
if was_invisible:
|
||||||
self._change_from_invisible()
|
self._change_from_invisible()
|
||||||
self._update_status(show, msg)
|
self._update_status(show, msg)
|
||||||
|
|
|
@ -997,6 +997,10 @@ class OurShowEvent(nec.NetworkIncomingEvent):
|
||||||
name = 'our-show'
|
name = 'our-show'
|
||||||
base_network_events = []
|
base_network_events = []
|
||||||
|
|
||||||
|
class BeforeChangeShowEvent(nec.NetworkIncomingEvent):
|
||||||
|
name = 'before-change-show'
|
||||||
|
base_network_events = []
|
||||||
|
|
||||||
class MessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
|
class MessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
|
||||||
name = 'message-received'
|
name = 'message-received'
|
||||||
base_network_events = ['raw-message-received']
|
base_network_events = ['raw-message-received']
|
||||||
|
|
Loading…
Add table
Reference in a new issue