we can now close tabs in tabbed chat window

This commit is contained in:
Yann Leboulanger 2005-01-28 20:41:36 +00:00
parent 726bf8cdd2
commit 3032dba9ef
2 changed files with 44 additions and 17 deletions

View File

@ -9439,6 +9439,33 @@ on the server.</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="button_close">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_close_clicked" last_modification_time="Fri, 28 Jan 2005 20:16:24 GMT"/>
<child>
<widget class="GtkImage" id="image183">
<property name="visible">True</property>
<property name="stock">gtk-close</property>
<property name="icon_size">4</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>

View File

@ -213,6 +213,7 @@ class tabbed_chat_Window:
self.on_notebook_switch_page)
self.xml.signal_connect('on_history_clicked', self.on_history)
self.xml.signal_connect('on_clear_clicked', self.on_clear)
self.xml.signal_connect('on_close_clicked', self.on_close_clicked)
self.xml.signal_connect('on_msg_key_press_event', \
self.on_msg_key_press_event)
self.tagIn = buffer_conv.create_tag("incoming")
@ -313,6 +314,20 @@ class tabbed_chat_Window:
deb, end = buffer.get_bounds()
buffer.delete(deb, end)
def on_close_clicked(self, button):
"""When close button is pressed :
close a tab"""
jid = self.get_active_jid()
if len(self.xmls) == 1:
button.get_toplevel().destroy()
else:
nb = self.xml.get_widget('notebook')
nb.remove_page(nb.get_current_page())
del self.plugin.windows[self.account]['chats'][jid]
del self.users[jid]
del self.nb_unread[jid]
del self.xmls[jid]
def on_focus(self, widget, event):
"""When window get focus"""
jid = self.get_active_jid()
@ -371,26 +386,11 @@ class tabbed_chat_Window:
self.draw_widgets(user)
self.xmls[user.jid].signal_connect('on_history_clicked', self.on_history)
self.xmls[user.jid].signal_connect('on_clear_clicked', self.on_clear)
self.xmls[user.jid].signal_connect('on_close_clicked', \
self.on_close_clicked)
self.xmls[user.jid].signal_connect('on_msg_key_press_event', \
self.on_msg_key_press_event)
def on_button_close_clicked(self, button):
if len(self.xml.get_widget('hbuttonbox').get_children()) == 2:
button.get_toplevel().destroy()
else:
self.xml.get_widget('hbuttonbox').remove(self.active_button)
del self.plugin.windows[self.account]['chats'][self.users[\
self.active_button].jid]
del self.users[self.active_button]
del self.buffers[self.active_button]
del self.nb_unread[self.active_button]
i = 0
if self.xml.get_widget('hbuttonbox').get_children()[i] == \
self.xml.get_widget('button_close'):
i = 1
self.on_button_jid_clicked(self.xml.get_widget('hbuttonbox').\
get_children()[i])
def on_msg_key_press_event(self, widget, event):
"""When a key is pressed :
if enter is pressed without the shit key, message (if not empty) is sent