Philipp Hörist pushed to branch master at gajim / gajim
Commits: 7ee22d83 by Philipp Hörist at 2019-07-02T19:53:32Z MUC: Add possibility to override default config
- - - - -
3 changed files:
- gajim/common/modules/muc.py - gajim/common/structs.py - gajim/gui_interface.py
Changes:
===================================== gajim/common/modules/muc.py ===================================== @@ -130,11 +130,12 @@ class MUC(BaseModule): def get_mucs_with_state(self, states): return [muc for muc in self._muc_data.values() if muc.state in states]
- def join(self, room_jid, nick, password, rejoin=False): + def join(self, room_jid, nick, password, rejoin=False, config=None): if not app.account_is_connected(self._account): return
- self._muc_data[room_jid] = MUCData(room_jid, nick, password, rejoin) + self._muc_data[room_jid] = MUCData(room_jid, nick, + password, rejoin, config)
self._con.get_module('Discovery').disco_muc( room_jid, partial(self._join, room_jid)) @@ -182,16 +183,19 @@ class MUC(BaseModule): return
self._log.info('Configure room: %s', result.jid) - self._apply_config(result.form) + + muc = self._get_muc_data(result.jid) + self._apply_config(result.form, muc.config) self.set_config(result.jid, result.form, callback=self._on_config_result)
@staticmethod def _apply_config(form, config=None): - if config is None: - config = get_default_muc_config() - for var, value in config.items(): + default_config = get_default_muc_config() + if config is not None: + default_config.update(config) + for var, value in default_config.items(): try: field = form[var] except KeyError:
===================================== gajim/common/structs.py ===================================== @@ -24,11 +24,12 @@ CapsIdentity = namedtuple('CapsIdentity', 'category type name lang')
class MUCData: - def __init__(self, room_jid, nick, password, rejoin): + def __init__(self, room_jid, nick, password, rejoin, config=None): self._room_jid = room_jid self._nick = nick self._password = password self._rejoin = rejoin + self._config = config self._state = MUCJoinedState.NOT_JOINED
@property @@ -62,3 +63,7 @@ class MUCData: @rejoin.setter def rejoin(self, value): self._rejoin = value + + @property + def config(self): + return self._config
===================================== gajim/gui_interface.py ===================================== @@ -1568,7 +1568,7 @@ class Interface: ################################################################################
def join_gc_room(self, account, room_jid, nick, password, minimize=False, - is_continued=False): + is_continued=False, config=None): """ Join the room immediately """ @@ -1628,7 +1628,7 @@ class Interface:
# Connect app.connections[account].get_module('MUC').join( - room_jid, nick, password) + room_jid, nick, password, config=config) if password: app.gc_passwords[room_jid] = password
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/7ee22d832e73d71ff41d75f8a26881101b9...