Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann Leboulanger <asterix@lagaule.org>2009-04-30 17:36:29 +0400
committerYann Leboulanger <asterix@lagaule.org>2009-04-30 17:36:29 +0400
commit4458db5d2cfc5bf2d472925b6633e7d7b27f9ab5 (patch)
tree2e9766fcd552ac219d98cd3feb75ebbcf987f24a
parente4029dddd658560e30876981538075520b8cb987 (diff)
[Yrogirg & I] add a first quote ability. see #2943
-rw-r--r--src/chat_control.py7
-rw-r--r--src/conversation_textview.py22
2 files changed, 26 insertions, 3 deletions
diff --git a/src/chat_control.py b/src/chat_control.py
index e18acd1ea..1adab2f55 100644
--- a/src/chat_control.py
+++ b/src/chat_control.py
@@ -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'''
diff --git a/src/conversation_textview.py b/src/conversation_textview.py
index 86b1f2565..6c27f4a84 100644
--- a/src/conversation_textview.py
+++ b/src/conversation_textview.py
@@ -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