some fixes
This commit is contained in:
parent
6d67431f37
commit
c9d65729df
|
@ -6833,7 +6833,6 @@ Custom</property>
|
|||
</widget>
|
||||
|
||||
<widget class="GtkWindow" id="groupchat_window">
|
||||
<property name="border_width">4</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Groupchat</property>
|
||||
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||
|
@ -6895,8 +6894,7 @@ Custom</property>
|
|||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
<signal name="key_press_event" handler="on_subject_entry_key_press_event" last_modification_time="Fri, 04 Mar 2005 20:46:50 GMT"/>
|
||||
<property name="activates_default">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
|
@ -6908,6 +6906,8 @@ Custom</property>
|
|||
<child>
|
||||
<widget class="GtkButton" id="set_button">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="has_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Set</property>
|
||||
<property name="use_underline">True</property>
|
||||
|
@ -6931,9 +6931,7 @@ Custom</property>
|
|||
|
||||
<child>
|
||||
<widget class="GtkNotebook" id="chat_notebook">
|
||||
<property name="border_width">4</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="show_tabs">True</property>
|
||||
<property name="show_border">True</property>
|
||||
<property name="tab_pos">GTK_POS_TOP</property>
|
||||
|
@ -6978,7 +6976,6 @@ Custom</property>
|
|||
<child>
|
||||
<widget class="GtkButton" id="close_button">
|
||||
<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_button_clicked" last_modification_time="Sat, 05 Mar 2005 10:52:53 GMT"/>
|
||||
|
@ -7012,19 +7009,16 @@ Custom</property>
|
|||
<child>
|
||||
<widget class="GtkVPaned" id="vpaned4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="position">225</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHPaned" id="hpaned">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="position">100</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkScrolledWindow" id="scrolledwindow17">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
|
||||
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
||||
<property name="shadow_type">GTK_SHADOW_IN</property>
|
||||
|
@ -7055,7 +7049,6 @@ Custom</property>
|
|||
<child>
|
||||
<widget class="GtkScrolledWindow" id="scrolledwindow18">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
||||
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
||||
<property name="shadow_type">GTK_SHADOW_IN</property>
|
||||
|
@ -7064,7 +7057,6 @@ Custom</property>
|
|||
<child>
|
||||
<widget class="GtkTextView" id="conversation_textview">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">False</property>
|
||||
<property name="overwrite">False</property>
|
||||
<property name="accepts_tab">True</property>
|
||||
|
@ -7096,7 +7088,6 @@ Custom</property>
|
|||
<child>
|
||||
<widget class="GtkScrolledWindow" id="scrolledwindow19">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
||||
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
||||
<property name="shadow_type">GTK_SHADOW_IN</property>
|
||||
|
@ -7106,6 +7097,7 @@ Custom</property>
|
|||
<widget class="GtkTextView" id="message_textview">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="has_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="overwrite">False</property>
|
||||
<property name="accepts_tab">True</property>
|
||||
|
|
|
@ -488,8 +488,7 @@ class tabbed_chat_window:
|
|||
else:
|
||||
self.chat_notebook.set_current_page(0)
|
||||
else: # it's a normal key press make sure message_textview has focus
|
||||
message_textview = self.xmls[jid].\
|
||||
get_widget('message_textview')
|
||||
message_textview = self.xmls[jid].get_widget('message_textview')
|
||||
if not message_textview.is_focus():
|
||||
message_textview.grab_focus()
|
||||
|
||||
|
@ -805,12 +804,6 @@ class Groupchat_window:
|
|||
self.subjects[room_jid] = subject
|
||||
self.xml.get_widget('subject_entry').set_text(subject)
|
||||
|
||||
def on_subject_entry_key_press_event(self, widget, event):
|
||||
if event.keyval == gtk.keysyms.Return:
|
||||
room_jid = self.get_active_jid()
|
||||
subject = widget.get_text()
|
||||
self.plugin.send('GC_SUBJECT', self.account, (room_jid, subject))
|
||||
|
||||
def on_set_button_clicked(self, widget):
|
||||
room_jid = self.get_active_jid()
|
||||
subject = self.xml.get_widget('subject_entry').get_text()
|
||||
|
@ -823,8 +816,8 @@ class Groupchat_window:
|
|||
def on_message_textview_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
|
||||
and printed in the conversation"""
|
||||
if event.keyval == gtk.keysyms.Return:
|
||||
and printed in the conversation. Tab does autocompete in nickames"""
|
||||
if event.keyval == gtk.keysyms.Return: # ENTER
|
||||
if (event.state & gtk.gdk.SHIFT_MASK):
|
||||
return 0
|
||||
message_buffer = widget.get_buffer()
|
||||
|
@ -837,7 +830,7 @@ class Groupchat_window:
|
|||
message_buffer.set_text('', -1)
|
||||
widget.grab_focus()
|
||||
return 1
|
||||
elif event.keyval == gtk.keysyms.Tab:
|
||||
elif event.keyval == gtk.keysyms.Tab: # TAB
|
||||
room_jid = self.get_active_jid()
|
||||
list_nick = self.get_user_list(room_jid)
|
||||
message_buffer = widget.get_buffer()
|
||||
|
@ -848,19 +841,19 @@ class Groupchat_window:
|
|||
begin = txt.split()[-1]
|
||||
for nick in list_nick:
|
||||
if nick.find(begin) == 0:
|
||||
message_buffer.insert_at_cursor(nick[len(begin):] + ' ')
|
||||
message_buffer.insert_at_cursor(nick[len(begin):] + ': ')
|
||||
return 1
|
||||
return 0
|
||||
|
||||
def on_groupchat_window_key_press_event(self, widget, event):
|
||||
st = "1234567890"
|
||||
st = "1234567890" # humans count from 1, pc from 0 :P
|
||||
room_jid = self.get_active_jid()
|
||||
if event.keyval == gtk.keysyms.Escape:
|
||||
if event.keyval == gtk.keysyms.Escape: #ESCAPE
|
||||
self.remove_tab(room_jid)
|
||||
elif event.string and event.string in st \
|
||||
and (event.state & gtk.gdk.MOD1_MASK):
|
||||
and (event.state & gtk.gdk.MOD1_MASK): # alt + 1,2,3 ...
|
||||
self.chat_notebook.set_current_page(st.index(event.string))
|
||||
elif event.keyval == gtk.keysyms.Page_Down:
|
||||
elif event.keyval == gtk.keysyms.Page_Down: # PAGEDOWN
|
||||
if event.state & gtk.gdk.CONTROL_MASK:
|
||||
current = self.chat_notebook.get_current_page()
|
||||
if current > 0:
|
||||
|
@ -875,7 +868,7 @@ class Groupchat_window:
|
|||
iter = conversation_textview.get_iter_at_location(rect.x,\
|
||||
rect.y + rect.height)
|
||||
conversation_textview.scroll_to_iter(iter, 0.1, True, 0, 0)
|
||||
elif event.keyval == gtk.keysyms.Page_Up:
|
||||
elif event.keyval == gtk.keysyms.Page_Up: # PAGEUP
|
||||
if event.state & gtk.gdk.CONTROL_MASK:
|
||||
current = self.chat_notebook.get_current_page()
|
||||
if current < (self.chat_notebook.get_n_pages()-1):
|
||||
|
@ -889,13 +882,22 @@ class Groupchat_window:
|
|||
iter = conversation_textview.get_iter_at_location(rect.x, rect.y)
|
||||
conversation_textview.scroll_to_iter(iter, 0.1, True, 0, 1)
|
||||
elif event.keyval == gtk.keysyms.Tab and \
|
||||
(event.state & gtk.gdk.CONTROL_MASK):
|
||||
(event.state & gtk.gdk.CONTROL_MASK): # CTRL+TAB
|
||||
current = self.chat_notebook.get_current_page()
|
||||
if current < (self.chat_notebook.get_n_pages()-1):
|
||||
self.chat_notebook.set_current_page(current+1)
|
||||
else:
|
||||
self.chat_notebook.set_current_page(0)
|
||||
|
||||
'''FIXME:
|
||||
NOT GOOD steals focus from Subject entry and I cannot find a way to prevent this
|
||||
|
||||
else: # it's a normal key press make sure message_textview has focus
|
||||
message_textview = self.xmls[room_jid].get_widget('message_textview')
|
||||
if not message_textview.is_focus():
|
||||
message_textview.grab_focus()
|
||||
'''
|
||||
|
||||
def print_conversation(self, txt, room_jid, contact = None, tim = None):
|
||||
"""Print a line in the conversation :
|
||||
if contact is set : it's a message from someone
|
||||
|
@ -1237,10 +1239,9 @@ class Groupchat_window:
|
|||
self.on_groupchat_window_key_press_event)
|
||||
self.xml.signal_connect('on_chat_notebook_switch_page', \
|
||||
self.on_chat_notebook_switch_page)
|
||||
self.xml.signal_connect('on_subject_entry_key_press_event', \
|
||||
self.on_subject_entry_key_press_event)
|
||||
self.xml.signal_connect('on_set_button_clicked', \
|
||||
self.on_set_button_clicked)
|
||||
#FIXME: (nk) WHY AUTOCONNECT segfaults? [haven't test here but looks the same] with tabbed chat window ;P
|
||||
|
||||
class history_window:
|
||||
"""Class for bowser agent window :
|
||||
|
|
Loading…
Reference in New Issue