altering a patch by denis craven and commiting

This commit is contained in:
Nikos Kouremenos 2005-06-10 22:04:59 +00:00
parent 3d59234f7f
commit f82addfce5
3 changed files with 125 additions and 18 deletions

View File

@ -60,12 +60,6 @@ class Groupchat_window(chat.Chat):
self.on_chat_notebook_key_press_event)
self.xml.signal_connect('on_chat_notebook_switch_page',
self.on_chat_notebook_switch_page)
self.xml.signal_connect('on_change_subject_menuitem_activate',
self.on_change_subject_menuitem_activate)
self.xml.signal_connect('on_configure_room_menuitem_activate',
self.on_configure_room_menuitem_activate)
self.xml.signal_connect('on_add_bookmark_menuitem_activate',
self.on_add_bookmark_menuitem_activate)
self.xml.signal_connect('on_close_window_activate',
self.on_close_window_activate)
self.window.show_all()
@ -351,7 +345,9 @@ class Groupchat_window(chat.Chat):
if not self.last_key_tabs[room_jid]: # if we are nick cycling, last char will always be space
return False
splitted_text = text.split()
begin = splitted_text[-1] # last word we typed
# check if tab is pressed with empty message
if len(splitted_text): # if there are any words
begin = splitted_text[-1] # last word we typed
if len(self.nick_hits[room_jid]) and self.nick_hits[room_jid][0].startswith(begin.replace(':', '')) \
and self.last_key_tabs[room_jid]: # we should cycle
@ -396,15 +392,8 @@ class Groupchat_window(chat.Chat):
if (event.state & gtk.gdk.SHIFT_MASK):
self.last_key_tabs[room_jid] = False
return False
if message != '' or message != '\n':
self.save_sent_message(room_jid, message)
if message == '/clear':
self.on_clear(None, conversation_textview) # clear conversation
self.on_clear(None, widget) # clear message textview too
return True
gajim.connections[self.account].send_gc_message(room_jid, message)
message_buffer.set_text('', -1)
widget.grab_focus()
self.send_gc_message(message)
message_buffer.set_text('', -1)
return True
elif event.keyval == gtk.keysyms.Up:
if event.state & gtk.gdk.CONTROL_MASK: #Ctrl+UP
@ -415,6 +404,36 @@ class Groupchat_window(chat.Chat):
else:
self.last_key_tabs[room_jid] = False
def on_send_button_clicked(self, widget):
"""When send button is pressed: send the current message"""
room_jid = self.get_active_jid()
message_textview = self.xmls[room_jid].get_widget(
'message_textview')
message_buffer = message_textview.get_buffer()
start_iter = message_buffer.get_start_iter()
end_iter = message_buffer.get_end_iter()
message = message_buffer.get_text(start_iter, end_iter, 0)
# send the message
self.send_gc_message(message)
message_buffer.set_text('', -1)
def send_gc_message(self, message):
room_jid = self.get_active_jid()
message_textview = self.xmls[room_jid].get_widget(
'message_textview')
message_buffer = message_textview.get_buffer()
if message != '' or message != '\n':
self.save_sent_message(room_jid, message)
if message == '/clear':
self.on_clear(None, conversation_textview) # clear conversation
self.on_clear(None, widget) # clear message textview too
return True
gajim.connections[self.account].send_gc_message(room_jid, message)
message_buffer.set_text('', -1)
message_textview.grab_focus()
def print_conversation(self, text, room_jid, contact = '', tim = None):
"""Print a line in the conversation:
if contact is set: it's a message from someone
@ -634,6 +653,27 @@ class Groupchat_window(chat.Chat):
bgcolor = gajim.config.get('accountbgcolor')
banner_eventbox.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse(bgcolor))
# connect the menuitems to their respective functions
xm = gtk.glade.XML(GTKGUI_GLADE, 'gc_actions_menu', APP)
self.gc_actions_menu = xm.get_widget('gc_actions_menu')
configure_menuitem, change_subject_menuitem, add_bookmark_menuitem = self.gc_actions_menu.get_children()
configure_menuitem.connect('activate',
self.on_configure_room_menuitem_activate)
change_subject_menuitem.connect('activate',
self.on_change_subject_menuitem_activate)
add_bookmark_menuitem.connect('activate',
self.on_add_bookmark_menuitem_activate)
# connect the buttons to their respective functions
actions_button = self.xmls[room_jid].get_widget(
'actions_button')
actions_button.connect('clicked', self.on_actions_button_clicked)
send_button = self.xmls[room_jid].get_widget(
'send_button')
send_button.connect('clicked', self.on_send_button_clicked)
#status_image, nickname, real_jid, show
store = gtk.TreeStore(gtk.Image, str, str, str)
store.set_sort_column_id(1, gtk.SORT_ASCENDING)
@ -661,6 +701,11 @@ class Groupchat_window(chat.Chat):
self.show_title()
conversation_textview.grab_focus()
def on_actions_button_clicked(self, button):
"""popup action menu"""
self.gc_actions_menu.popup(None, None, None, 1, 0)
self.gc_actions_menu.show_all()
def on_list_treeview_button_press_event(self, widget, event):
"""popup user's group's or agent menu"""
if event.button == 3: # right click

View File

@ -15028,4 +15028,67 @@ the Jabber network.</property>
</child>
</widget>
<widget class="GtkMenu" id="gc_actions_menu">
<child>
<widget class="GtkImageMenuItem" id="configure_room_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">Configure _Room</property>
<property name="use_underline">True</property>
<child internal-child="image">
<widget class="GtkImage" id="image664">
<property name="visible">True</property>
<property name="stock">gtk-properties</property>
<property name="icon_size">1</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>
</child>
<child>
<widget class="GtkImageMenuItem" id="change_subject_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">Change _Subject</property>
<property name="use_underline">True</property>
<child internal-child="image">
<widget class="GtkImage" id="image665">
<property name="visible">True</property>
<property name="stock">gtk-refresh</property>
<property name="icon_size">1</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>
</child>
<child>
<widget class="GtkImageMenuItem" id="add_bookmark1">
<property name="visible">True</property>
<property name="label" translatable="yes">Add _Bookmark</property>
<property name="use_underline">True</property>
<child internal-child="image">
<widget class="GtkImage" id="image666">
<property name="visible">True</property>
<property name="stock">gtk-add</property>
<property name="icon_size">1</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>
</child>
</widget>
</glade-interface>

View File

@ -112,7 +112,6 @@ class Vcard_window:
dialog.set_filter(filter)
dialog.set_use_preview_label(False)
dialog.set_preview_widget(gtk.Image())
dialog.set_preview_widget(True)
dialog.connect('selection-changed', self.update_preview)
ok = False
@ -129,7 +128,7 @@ class Vcard_window:
if file:
filesize = os.path.getsize(file) # in bytes
if filesize > 8192:
dialogs.ErrorDialog(_('The filesize of image "%s" is too large') % file, _('The file must not be more than 8 kilobytes'))
dialogs.ErrorDialog(_('The filesize of image "%s" is too large') % file, _('The file must not be more than 8 kilobytes')).get_response()
return
fd = open(file)
data = fd.read()