diff --git a/src/config.py b/src/config.py index 897f159f9..aa6b92152 100644 --- a/src/config.py +++ b/src/config.py @@ -197,9 +197,11 @@ class Preferences_window: window.window.destroy() #open new tabbed chat windows for jid in jids: - user = self.plugin.roster.contacts[acct][jid][0] if kind == 'chats': + user = self.plugin.roster.contacts[acct][jid][0] self.plugin.roster.new_chat(user, acct) + if kind == 'gc': + self.plugin.roster.new_room(jid, saved_var[jid]['nick'], acct) window = windows[jid] window.xmls[jid].get_widget('conversation_textview').set_buffer(\ buf1[jid]) @@ -228,9 +230,11 @@ class Preferences_window: windows['tabbed'].window.destroy() #open new tabbed chat windows for jid in jids: - user = self.plugin.roster.contacts[acct][jid][0] if kind == 'chats': + user = self.plugin.roster.contacts[acct][jid][0] self.plugin.roster.new_chat(user, acct) + if kind == 'gc': + self.plugin.roster.new_room(jid, saved_var[jid]['nick'], acct) window = windows[jid] window.xmls[jid].get_widget('conversation_textview').set_buffer(\ buf1[jid]) @@ -242,9 +246,11 @@ class Preferences_window: if widget.get_active(): gajim.config.set('usetabbedchat', True) self.merge_windows('chats') + self.merge_windows('gc') else: gajim.config.set('usetabbedchat', False) self.split_windows('chats') + self.split_windows('gc') self.plugin.save_config() def update_print_time(self): diff --git a/src/groupchat_window.py b/src/groupchat_window.py index 54f2403a8..4738fcf8a 100644 --- a/src/groupchat_window.py +++ b/src/groupchat_window.py @@ -60,6 +60,24 @@ class Groupchat_window(chat.Chat): self.on_set_button_clicked) self.xml.signal_connect('on_configure_button_clicked', \ self.on_configure_button_clicked) + self.window.show_all() + + def save_var(self, jid): + if not jid in self.nicks: + return {} + return { + 'nick': self.nicks[jid], + 'model': self.list_treeview[jid].get_model(), + 'subject': self.subjects[jid], + } + + + def load_var(self, jid, var): + if not self.xmls.has_key(jid): + return + self.list_treeview[jid].set_model(var['model']) + self.list_treeview[jid].expand_all() + self.set_subject(jid, var['subject']) def on_groupchat_window_delete_event(self, widget, event): """close window""" @@ -69,11 +87,11 @@ class Groupchat_window(chat.Chat): room_jid.split('@')[0]) if dialog.get_response() != gtk.RESPONSE_YES: return True #stop the propagation of the event - - def on_groupchat_window_destroy(self, widget): for room_jid in self.xmls: gajim.connections[self.account].send_gc_status(self.nicks[room_jid], \ room_jid, 'offline', 'offline') + + def on_groupchat_window_destroy(self, widget): chat.Chat.on_window_destroy(self, widget, 'gc') def on_groupchat_window_focus_in_event(self, widget, event):