# HG changeset patch # User souliane # Date 1395070385 -3600 # Node ID ee8ebfe23e16e8ee0497ed4a45f40f6ca7f2597b # Parent 6a6551de4414988f31c0f417b62ef9be8b16f6c4 browser_side: handle the signal "roomUserChangedNick" diff -r 6a6551de4414 -r ee8ebfe23e16 browser_side/panels.py --- a/browser_side/panels.py Sun Mar 16 21:03:50 2014 +0100 +++ b/browser_side/panels.py Mon Mar 17 16:33:05 2014 +0100 @@ -1159,6 +1159,12 @@ self.occupants_list.removeOccupant(nick) self.printInfo("<= %s has left the room" % nick) + def changeUserNick(self, old_nick, new_nick): + assert(self.type == "group") + self.occupants_list.removeOccupant(old_nick) + self.occupants_list.addOccupant(new_nick) + self.printInfo(_("%(old_nick)s is now known as %(new_nick)s") % {'old_nick': old_nick, 'new_nick': new_nick}) + def historyPrint(self, size=20): """Print the initial history""" def getHistoryCB(history): diff -r 6a6551de4414 -r ee8ebfe23e16 libervia.py --- a/libervia.py Sun Mar 16 21:03:50 2014 +0100 +++ b/libervia.py Mon Mar 17 16:33:05 2014 +0100 @@ -426,6 +426,8 @@ self._roomUserJoinedCb(*args) elif name == 'roomUserLeft': self._roomUserLeftCb(*args) + elif name == 'roomUserChangedNick': + self._roomUserChangedNickCb(*args) elif name == 'askConfirmation': self._askConfirmation(*args) elif name == 'newAlert': @@ -703,6 +705,12 @@ if isinstance(lib_wid, panels.ChatPanel) and lib_wid.type == 'group' and lib_wid.target.bare == room_jid_s: lib_wid.userLeft(user_nick, user_data) + def _roomUserChangedNickCb(self, room_jid_s, old_nick, new_nick): + """Called when an user joined a MUC room""" + for lib_wid in self.libervia_widgets: + if isinstance(lib_wid, panels.ChatPanel) and lib_wid.type == 'group' and lib_wid.target.bare == room_jid_s: + lib_wid.changeUserNick(old_nick, new_nick) + def _tarotGameStartedCb(self, waiting, room_jid_s, referee, players): for lib_wid in self.libervia_widgets: if isinstance(lib_wid, panels.ChatPanel) and lib_wid.type == 'group' and lib_wid.target.bare == room_jid_s: diff -r 6a6551de4414 -r ee8ebfe23e16 libervia_server/__init__.py --- a/libervia_server/__init__.py Sun Mar 16 21:03:50 2014 +0100 +++ b/libervia_server/__init__.py Mon Mar 17 16:33:05 2014 +0100 @@ -988,7 +988,7 @@ for signal_name in ['personalEvent', 'roomJoined', 'roomUserJoined', 'roomUserLeft', 'tarotGameStarted', 'tarotGameNew', 'tarotGameChooseContrat', 'tarotGameShowCards', 'tarotGameInvalidCards', 'tarotGameCardsPlayed', 'tarotGameYourTurn', 'tarotGameScore', 'tarotGamePlayers', 'radiocolStarted', 'radiocolPreload', 'radiocolPlay', 'radiocolNoUpload', 'radiocolUploadOk', 'radiocolSongRejected', 'radiocolPlayers', - 'roomLeft', 'chatStateReceived']: + 'roomLeft', 'roomUserChangedNick', 'chatStateReceived']: self.bridge.register(signal_name, self.signal_handler.getGenericCb(signal_name), "plugin") self.media_dir = self.bridge.getConfig('','media_dir') self.local_dir = self.bridge.getConfig('','local_dir')