we can now close tabs in tabbed chat window
This commit is contained in:
		
							parent
							
								
									726bf8cdd2
								
							
						
					
					
						commit
						3032dba9ef
					
				
					 2 changed files with 44 additions and 17 deletions
				
			
		| 
						 | 
				
			
			@ -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>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue