[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
|
||||
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',
|
||||
self._conv_textview_key_press_event)
|
||||
self.handlers[id_] = self.conv_textview.tv
|
||||
|
@ -370,6 +372,11 @@ class ChatControlBase(MessageControl):
|
|||
|
||||
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
|
||||
def _on_banner_eventbox_button_press_event(self, widget, event):
|
||||
'''If right-clicked, show popup'''
|
||||
|
|
|
@ -154,9 +154,15 @@ class TextViewImage(gtk.Image):
|
|||
return False
|
||||
|
||||
|
||||
class ConversationTextview:
|
||||
class ConversationTextview(gobject.GObject):
|
||||
'''Class for the conversation textview (where user reads already said
|
||||
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(
|
||||
gajim.DATA_DIR, 'pixmaps', 'muc_separator.png'))
|
||||
|
@ -170,6 +176,7 @@ class ConversationTextview:
|
|||
def __init__(self, account, used_in_history_window = False):
|
||||
'''if used_in_history_window is True, then we do not show
|
||||
Clear menuitem in context menu'''
|
||||
gobject.GObject.__init__(self)
|
||||
self.used_in_history_window = used_in_history_window
|
||||
|
||||
# no need to inherit TextView, use it as atrribute is safer
|
||||
|
@ -688,9 +695,15 @@ class ConversationTextview:
|
|||
item = gtk.SeparatorMenuItem()
|
||||
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)
|
||||
item = gtk.MenuItem(_('_Actions for "%s"') % self.selected_phrase)
|
||||
item = gtk.MenuItem(_('_Actions for "%s"') % _selected_phrase)
|
||||
menu.prepend(item)
|
||||
submenu = gtk.Menu()
|
||||
item.set_submenu(submenu)
|
||||
|
@ -753,6 +766,9 @@ class ConversationTextview:
|
|||
|
||||
menu.show_all()
|
||||
|
||||
def on_quote(self, widget):
|
||||
self.emit('quote', self.selected_phrase)
|
||||
|
||||
def on_textview_button_press_event(self, widget, event):
|
||||
# If we clicked on a taged text do NOT open the standard popup menu
|
||||
# if normal text check if we have sth selected
|
||||
|
|
Loading…
Add table
Reference in a new issue