[Yrogirg & I] add a first quote ability. see #2943
This commit is contained in:
		
							parent
							
								
									e4029dddd6
								
							
						
					
					
						commit
						4458db5d2c
					
				
					 2 changed files with 26 additions and 3 deletions
				
			
		| 
						 | 
					@ -200,6 +200,8 @@ class ChatControlBase(MessageControl):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		# Create textviews and connect signals
 | 
							# Create textviews and connect signals
 | 
				
			||||||
		self.conv_textview = ConversationTextview(self.account)
 | 
							self.conv_textview = ConversationTextview(self.account)
 | 
				
			||||||
 | 
							id_ = self.conv_textview.connect('quote', self.on_quote)
 | 
				
			||||||
 | 
							self.handlers[id_] = self.conv_textview.tv
 | 
				
			||||||
		id_ = self.conv_textview.tv.connect('key_press_event',
 | 
							id_ = self.conv_textview.tv.connect('key_press_event',
 | 
				
			||||||
			self._conv_textview_key_press_event)
 | 
								self._conv_textview_key_press_event)
 | 
				
			||||||
		self.handlers[id_] = self.conv_textview.tv
 | 
							self.handlers[id_] = self.conv_textview.tv
 | 
				
			||||||
| 
						 | 
					@ -370,6 +372,11 @@ class ChatControlBase(MessageControl):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		menu.show_all()
 | 
							menu.show_all()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def on_quote(self, widget, text):
 | 
				
			||||||
 | 
							text = '>' + text.replace('\n', '\n>') + '\n'
 | 
				
			||||||
 | 
							message_buffer = self.msg_textview.get_buffer()
 | 
				
			||||||
 | 
							message_buffer.insert_at_cursor(text)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# moved from ChatControl
 | 
						# moved from ChatControl
 | 
				
			||||||
	def _on_banner_eventbox_button_press_event(self, widget, event):
 | 
						def _on_banner_eventbox_button_press_event(self, widget, event):
 | 
				
			||||||
		'''If right-clicked, show popup'''
 | 
							'''If right-clicked, show popup'''
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -154,9 +154,15 @@ class TextViewImage(gtk.Image):
 | 
				
			||||||
		return False
 | 
							return False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ConversationTextview:
 | 
					class ConversationTextview(gobject.GObject):
 | 
				
			||||||
	'''Class for the conversation textview (where user reads already said
 | 
						'''Class for the conversation textview (where user reads already said
 | 
				
			||||||
	messages) for chat/groupchat windows'''
 | 
						messages) for chat/groupchat windows'''
 | 
				
			||||||
 | 
						__gsignals__ = dict(
 | 
				
			||||||
 | 
							quote = (gobject.SIGNAL_RUN_LAST | gobject.SIGNAL_ACTION,
 | 
				
			||||||
 | 
								None, # return value
 | 
				
			||||||
 | 
								(str, ) # arguments
 | 
				
			||||||
 | 
							)
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	FOCUS_OUT_LINE_PIXBUF = gtk.gdk.pixbuf_new_from_file(os.path.join(
 | 
						FOCUS_OUT_LINE_PIXBUF = gtk.gdk.pixbuf_new_from_file(os.path.join(
 | 
				
			||||||
		gajim.DATA_DIR, 'pixmaps', 'muc_separator.png'))
 | 
							gajim.DATA_DIR, 'pixmaps', 'muc_separator.png'))
 | 
				
			||||||
| 
						 | 
					@ -170,6 +176,7 @@ class ConversationTextview:
 | 
				
			||||||
	def __init__(self, account, used_in_history_window = False):
 | 
						def __init__(self, account, used_in_history_window = False):
 | 
				
			||||||
		'''if used_in_history_window is True, then we do not show
 | 
							'''if used_in_history_window is True, then we do not show
 | 
				
			||||||
		Clear menuitem in context menu'''
 | 
							Clear menuitem in context menu'''
 | 
				
			||||||
 | 
							gobject.GObject.__init__(self)
 | 
				
			||||||
		self.used_in_history_window = used_in_history_window
 | 
							self.used_in_history_window = used_in_history_window
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		# no need to inherit TextView, use it as atrribute is safer
 | 
							# no need to inherit TextView, use it as atrribute is safer
 | 
				
			||||||
| 
						 | 
					@ -688,9 +695,15 @@ class ConversationTextview:
 | 
				
			||||||
				item = gtk.SeparatorMenuItem()
 | 
									item = gtk.SeparatorMenuItem()
 | 
				
			||||||
				menu.prepend(item)
 | 
									menu.prepend(item)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			self.selected_phrase = helpers.reduce_chars_newlines(
 | 
								if not self.used_in_history_window:
 | 
				
			||||||
 | 
									item = gtk.MenuItem(_('_Quote'))
 | 
				
			||||||
 | 
									id_ = item.connect('activate', self.on_quote)
 | 
				
			||||||
 | 
									self.handlers[id_] = item
 | 
				
			||||||
 | 
									menu.prepend(item)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								_selected_phrase = helpers.reduce_chars_newlines(
 | 
				
			||||||
				self.selected_phrase, 25, 2)
 | 
									self.selected_phrase, 25, 2)
 | 
				
			||||||
			item = gtk.MenuItem(_('_Actions for "%s"') % self.selected_phrase)
 | 
								item = gtk.MenuItem(_('_Actions for "%s"') % _selected_phrase)
 | 
				
			||||||
			menu.prepend(item)
 | 
								menu.prepend(item)
 | 
				
			||||||
			submenu = gtk.Menu()
 | 
								submenu = gtk.Menu()
 | 
				
			||||||
			item.set_submenu(submenu)
 | 
								item.set_submenu(submenu)
 | 
				
			||||||
| 
						 | 
					@ -753,6 +766,9 @@ class ConversationTextview:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		menu.show_all()
 | 
							menu.show_all()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def on_quote(self, widget):
 | 
				
			||||||
 | 
							self.emit('quote', self.selected_phrase)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	def on_textview_button_press_event(self, widget, event):
 | 
						def on_textview_button_press_event(self, widget, event):
 | 
				
			||||||
		# If we clicked on a taged text do NOT open the standard popup menu
 | 
							# If we clicked on a taged text do NOT open the standard popup menu
 | 
				
			||||||
		# if normal text check if we have sth selected
 | 
							# if normal text check if we have sth selected
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue