Philipp Hörist pushed to branch mainwindow at gajim / gajim


Commits:
01779713 by lovetox at 2021-07-22T08:42:43+02:00
Fix groupchat creation

- - - - -


3 changed files:

- gajim/common/modules/muc.py
- gajim/gtk/groupchat_creation.py
- gajim/gui_interface.py


Changes:

=====================================
gajim/common/modules/muc.py
=====================================
@@ -231,13 +231,15 @@ def join(self, jid, nick=None, password=None, 
config=None):
         else:
             self._join(muc_data)
 
-    def create(self, muc_data):
+    def create(self, jid, config):
         if not app.account_is_available(self._account):
             return
 
-        self._mucs[muc_data.jid] = muc_data
+        self._con.get_module('Contacts').add_contact(jid, groupchat=True)
+        muc_data = self._create_muc_data(jid, None, None, config)
+        self._mucs[jid] = muc_data
         self._create(muc_data)
-        self._push_muc_added_event(muc_data.jid)
+        self._push_muc_added_event(jid)
 
     def _push_muc_added_event(self, jid):
         app.nec.push_incoming_event(


=====================================
gajim/gtk/groupchat_creation.py
=====================================
@@ -234,7 +234,7 @@ def _create_muc(self, room_jid):
         app.interface.create_groupchat(
             self._account,
             str(room_jid),
-            config=config)
+            config)
 
         self.destroy()
 


=====================================
gajim/gui_interface.py
=====================================
@@ -1257,50 +1257,14 @@ def show_groupchat(self, account, room_jid):
             return True
         return False
 
-    def create_groupchat_control(self, account, room_jid, muc_data,
-                                 minimize=False):
-        avatar_sha = app.storage.cache.get_avatar_sha(room_jid)
-        contact = app.contacts.create_contact(jid=room_jid,
-                                              account=account,
-                                              groups=[_('Group chats')],
-                                              sub='none',
-                                              avatar_sha=avatar_sha,
-                                              groupchat=True)
-        app.contacts.add_contact(account, contact)
-
-        if minimize:
-            control = GroupchatControl(None, contact, muc_data, account)
-            app.interface.minimized_controls[account][room_jid] = control
-            self.roster.add_groupchat(room_jid, account)
-
-        else:
-            mw = self.msg_win_mgr.get_window(room_jid, account)
-            if not mw:
-                mw = self.msg_win_mgr.create_window(contact,
-                                                    account,
-                                                    ControlType.GROUPCHAT)
-            control = GroupchatControl(mw, contact, muc_data, account)
-            mw.new_tab(control)
-            mw.set_active_tab(control)
-
-    @staticmethod
-    def _create_muc_data(account, room_jid, nick, password, config):
-        if not nick:
-            nick = get_group_chat_nick(account, room_jid)
+    def create_groupchat(self, account, room_jid, config):
+        if app.window.chat_exists(account, room_jid):
+            log.error('Trying to create groupchat '
+                      'which is already added as chat')
+            return
 
-        # Fetch data from bookmarks
         client = app.get_client(account)
-        bookmark = client.get_module('Bookmarks').get_bookmark(room_jid)
-        if bookmark is not None:
-            if bookmark.password is not None:
-                password = bookmark.password
-
-        return MUCData(room_jid, nick, password, config)
-
-    def create_groupchat(self, account, room_jid, config=None):
-        muc_data = self._create_muc_data(account, room_jid, None, None, config)
-        self.create_groupchat_control(account, room_jid, muc_data)
-        app.connections[account].get_module('MUC').create(muc_data)
+        client.get_module('MUC').create(room_jid, config)
 
     def show_add_join_groupchat(self, account, jid, nickname=None):
         if not app.window.chat_exists(account, jid):



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/01779713ea762ae71374c1e6fbd6cbc6630458c1

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/01779713ea762ae71374c1e6fbd6cbc6630458c1
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

Reply via email to