* In order to allow the viewing of the roster when we are offline (and some other cool stuffs), with and without roster versioning, now we load roster when RosterWindow is created (at gajim startup). Fixes #3190
This commit is contained in:
parent
5e4fb8fddb
commit
4d10bdcf6f
|
@ -2452,6 +2452,7 @@ class ConnectionHandlers(ConnectionVcard, ConnectionBytestream, ConnectionDisco,
|
||||||
|
|
||||||
def _on_roster_set(self, roster):
|
def _on_roster_set(self, roster):
|
||||||
roster_version = roster.version
|
roster_version = roster.version
|
||||||
|
received_from_server = roster.received_from_server
|
||||||
raw_roster = roster.getRaw()
|
raw_roster = roster.getRaw()
|
||||||
roster = {}
|
roster = {}
|
||||||
our_jid = helpers.parse_jid(gajim.get_jid_from_account(self.name))
|
our_jid = helpers.parse_jid(gajim.get_jid_from_account(self.name))
|
||||||
|
@ -2490,9 +2491,10 @@ class ConnectionHandlers(ConnectionVcard, ConnectionBytestream, ConnectionDisco,
|
||||||
# we can't determine which iconset to use
|
# we can't determine which iconset to use
|
||||||
self.discoverInfo(jid)
|
self.discoverInfo(jid)
|
||||||
|
|
||||||
self.dispatch('ROSTER', roster)
|
|
||||||
gajim.logger.replace_roster(self.name, roster_version, roster)
|
|
||||||
print raw_roster
|
print raw_roster
|
||||||
|
gajim.logger.replace_roster(self.name, roster_version, roster)
|
||||||
|
if received_from_server:
|
||||||
|
self.dispatch('ROSTER', roster)
|
||||||
|
|
||||||
def _send_first_presence(self, signed = ''):
|
def _send_first_presence(self, signed = ''):
|
||||||
show = self.continue_connect_info[0]
|
show = self.continue_connect_info[0]
|
||||||
|
|
|
@ -43,6 +43,7 @@ class NonBlockingRoster(PlugIn):
|
||||||
self._data = {}
|
self._data = {}
|
||||||
self.set=None
|
self.set=None
|
||||||
self._exported_methods=[self.getRoster]
|
self._exported_methods=[self.getRoster]
|
||||||
|
self.received_from_server = False
|
||||||
|
|
||||||
def Request(self,force=0):
|
def Request(self,force=0):
|
||||||
''' Request roster from server if it were not yet requested
|
''' Request roster from server if it were not yet requested
|
||||||
|
@ -67,6 +68,7 @@ class NonBlockingRoster(PlugIn):
|
||||||
return
|
return
|
||||||
query = stanza.getTag('query')
|
query = stanza.getTag('query')
|
||||||
if query:
|
if query:
|
||||||
|
self.received_from_server = True
|
||||||
self.version = stanza.getTagAttr('query', 'ver')
|
self.version = stanza.getTagAttr('query', 'ver')
|
||||||
if self.version is None:
|
if self.version is None:
|
||||||
self.version = ''
|
self.version = ''
|
||||||
|
|
|
@ -3423,6 +3423,7 @@ class Interface:
|
||||||
gtk.window_set_default_icon(pix)
|
gtk.window_set_default_icon(pix)
|
||||||
|
|
||||||
self.roster = roster_window.RosterWindow()
|
self.roster = roster_window.RosterWindow()
|
||||||
|
self.roster.init_roster()
|
||||||
|
|
||||||
self.init_emoticons()
|
self.init_emoticons()
|
||||||
self.make_regexps()
|
self.make_regexps()
|
||||||
|
|
|
@ -6176,6 +6176,11 @@ class RosterWindow:
|
||||||
# #self.xml.get_widget('menubar').hide()
|
# #self.xml.get_widget('menubar').hide()
|
||||||
# return
|
# return
|
||||||
|
|
||||||
|
def init_roster(self):
|
||||||
|
for account in gajim.connections:
|
||||||
|
roster = gajim.logger.get_roster(gajim.get_jid_from_account(account))
|
||||||
|
gajim.handlers['ROSTER'](account, roster)
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
###
|
###
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
Loading…
Reference in New Issue