in config.py, in preferences window : order the functions in the order they apear in the window
add the code for the time printing option
This commit is contained in:
parent
3510549238
commit
723a83c380
3 changed files with 369 additions and 268 deletions
|
@ -41,75 +41,83 @@ class preferences_window:
|
||||||
"""close window"""
|
"""close window"""
|
||||||
del self.plugin.windows['preferences']
|
del self.plugin.windows['preferences']
|
||||||
|
|
||||||
def on_incoming_msg_colorbutton_color_set(self, widget):
|
def on_tray_icon_checkbutton_toggled(self, widget):
|
||||||
"""Take The Color For The Incoming Messages"""
|
"""On Tray Icon Checkbutton Toggled"""
|
||||||
color = widget.get_color()
|
if self.widget.get_active():
|
||||||
color_string = '#'+(hex(color.red)+'0')[2:4] + (hex(color.green)+'0')[2:4]\
|
self.plugin.config['trayicon'] = 1
|
||||||
+(hex(color.blue)+'0')[2:4]
|
self.plugin.show_systray()
|
||||||
self.plugin.config['inmsgcolor'] = color_string
|
else:
|
||||||
self.update_text_tags()
|
self.plugin.config['trayicon'] = 0
|
||||||
|
self.plugin.hide_systray()
|
||||||
|
self.plugin.send('CONFIG', None, ('GtkGui', self.plugin.config, 'GtkGui'))
|
||||||
|
self.plugin.roster.draw_roster()
|
||||||
|
|
||||||
|
def on_save_position_checkbutton_toggled(self, widget):
|
||||||
|
"""On Save Position Checkbutton Toggled"""
|
||||||
|
if widget.get_active():
|
||||||
|
self.plugin.config['saveposition'] = 1
|
||||||
|
else:
|
||||||
|
self.plugin.config['saveposition'] = 0
|
||||||
|
|
||||||
|
def on_merge_checkbutton_toggled(self, widget):
|
||||||
|
"""On Merge Accounts Checkbutton Toggled"""
|
||||||
|
if widget.get_active():
|
||||||
|
self.plugin.config['mergeaccounts'] = 1
|
||||||
|
else:
|
||||||
|
self.plugin.config['mergeaccounts'] = 0
|
||||||
|
self.plugin.roster.regroup = self.plugin.config['mergeaccounts']
|
||||||
|
|
||||||
|
def on_iconstyle_combobox_changed(self, widget, path):
|
||||||
|
model = widget.get_model()
|
||||||
|
icon_string = model[path][0]
|
||||||
|
self.plugin.config['iconstyle'] = icon_string
|
||||||
|
self.plugin.roster.mkpixbufs()
|
||||||
|
|
||||||
def on_outgoing_msg_colorbutton_color_set(self, widget):
|
|
||||||
"""Take The Color For The Outgoing Messages"""
|
|
||||||
color = widget.get_color()
|
|
||||||
color_string = '#'+(hex(color.red)+'0')[2:4] + (hex(color.green)+'0')[2:4]\
|
|
||||||
+(hex(color.blue)+'0')[2:4]
|
|
||||||
self.plugin.config['outmsgcolor'] = color_string
|
|
||||||
self.update_text_tags()
|
|
||||||
|
|
||||||
def on_status_msg_colorbutton_color_set(self, widget):
|
|
||||||
"""Take The Color For The Status Messages"""
|
|
||||||
color = widget.get_color()
|
|
||||||
color_string = '#'+(hex(color.red)+'0')[2:4] + (hex(color.green)+'0')[2:4]\
|
|
||||||
+(hex(color.blue)+'0')[2:4]
|
|
||||||
self.plugin.config['statusmsgcolor'] = color_string
|
|
||||||
self.update_text_tags()
|
|
||||||
|
|
||||||
def on_account_text_colorbutton_color_set(self, widget):
|
def on_account_text_colorbutton_color_set(self, widget):
|
||||||
"""Take The Color For The Account Text"""
|
"""Take The Color For The Account Text"""
|
||||||
color = widget.get_color()
|
color = widget.get_color()
|
||||||
color_string = '#'+(hex(color.red)+'0')[2:4] + (hex(color.green)+'0')[2:4]\
|
color_string = '#' + (hex(color.red) + '0')[2:4] + \
|
||||||
+(hex(color.blue)+'0')[2:4]
|
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||||
self.plugin.config['accounttextcolor'] = color_string
|
self.plugin.config['accounttextcolor'] = color_string
|
||||||
self.plugin.roster.draw_roster()
|
self.plugin.roster.draw_roster()
|
||||||
|
|
||||||
def on_group_text_colorbutton_color_set(self, widget):
|
def on_group_text_colorbutton_color_set(self, widget):
|
||||||
"""Take The Color For The Group Text"""
|
"""Take The Color For The Group Text"""
|
||||||
color = widget.get_color()
|
color = widget.get_color()
|
||||||
color_string = '#'+(hex(color.red)+'0')[2:4] + (hex(color.green)+'0')[2:4]\
|
color_string = '#' + (hex(color.red) + '0')[2:4] + \
|
||||||
+(hex(color.blue)+'0')[2:4]
|
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||||
self.plugin.config['grouptextcolor'] = color_string
|
self.plugin.config['grouptextcolor'] = color_string
|
||||||
self.plugin.roster.draw_roster()
|
self.plugin.roster.draw_roster()
|
||||||
|
|
||||||
def on_user_text_colorbutton_color_set(self, widget):
|
def on_user_text_colorbutton_color_set(self, widget):
|
||||||
"""Take The Color For The User Text"""
|
"""Take The Color For The User Text"""
|
||||||
color = widget.get_color()
|
color = widget.get_color()
|
||||||
color_string = '#'+(hex(color.red)+'0')[2:4] + (hex(color.green)+'0')[2:4]\
|
color_string = '#' + (hex(color.red) + '0')[2:4] + \
|
||||||
+(hex(color.blue)+'0')[2:4]
|
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||||
self.plugin.config['usertextcolor'] = color_string
|
self.plugin.config['usertextcolor'] = color_string
|
||||||
self.plugin.roster.draw_roster()
|
self.plugin.roster.draw_roster()
|
||||||
|
|
||||||
def on_account_text_bg_colorbutton_color_set(self, widget):
|
def on_account_text_bg_colorbutton_color_set(self, widget):
|
||||||
"""Take The Color For The Background Of Account Text"""
|
"""Take The Color For The Background Of Account Text"""
|
||||||
color = widget.get_color()
|
color = widget.get_color()
|
||||||
color_string = '#'+(hex(color.red)+'0')[2:4] + (hex(color.green)+'0')[2:4]\
|
color_string = '#' + (hex(color.red) + '0')[2:4] + \
|
||||||
+(hex(color.blue)+'0')[2:4]
|
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||||
self.plugin.config['accountbgcolor'] = color_string
|
self.plugin.config['accountbgcolor'] = color_string
|
||||||
self.plugin.roster.draw_roster()
|
self.plugin.roster.draw_roster()
|
||||||
|
|
||||||
def on_group_text_bg_colorbutton_color_set(self, widget):
|
def on_group_text_bg_colorbutton_color_set(self, widget):
|
||||||
"""Take The Color For The Background Of Group Text"""
|
"""Take The Color For The Background Of Group Text"""
|
||||||
color = widget.get_color()
|
color = widget.get_color()
|
||||||
color_string = '#'+(hex(color.red)+'0')[2:4] + (hex(color.green)+'0')[2:4]\
|
color_string = '#' + (hex(color.red) + '0')[2:4] + \
|
||||||
+(hex(color.blue)+'0')[2:4]
|
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||||
self.plugin.config['groupbgcolor'] = color_string
|
self.plugin.config['groupbgcolor'] = color_string
|
||||||
self.plugin.roster.draw_roster()
|
self.plugin.roster.draw_roster()
|
||||||
|
|
||||||
def on_user_text_bg_colorbutton_color_set(self, widget):
|
def on_user_text_bg_colorbutton_color_set(self, widget):
|
||||||
"""Take The Color For The Background Of User Text"""
|
"""Take The Color For The Background Of User Text"""
|
||||||
color = widget.get_color()
|
color = widget.get_color()
|
||||||
color_string = '#'+(hex(color.red)+'0')[2:4] + (hex(color.green)+'0')[2:4]\
|
color_string = '#' + (hex(color.red) + '0')[2:4] + \
|
||||||
+(hex(color.blue)+'0')[2:4]
|
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||||
self.plugin.config['userbgcolor'] = color_string
|
self.plugin.config['userbgcolor'] = color_string
|
||||||
self.plugin.roster.draw_roster()
|
self.plugin.roster.draw_roster()
|
||||||
|
|
||||||
|
@ -131,69 +139,6 @@ class preferences_window:
|
||||||
self.plugin.config['userfont'] = font_string
|
self.plugin.config['userfont'] = font_string
|
||||||
self.plugin.roster.draw_roster()
|
self.plugin.roster.draw_roster()
|
||||||
|
|
||||||
def update_text_tags(self):
|
|
||||||
"""Update Opened Chat Windows"""
|
|
||||||
for a in self.plugin.accounts.keys():
|
|
||||||
if self.plugin.windows[a]['chats'].has_key('tabbed'):
|
|
||||||
self.plugin.windows[a]['chats']['tabbed'].update_tags()
|
|
||||||
else:
|
|
||||||
for jid in self.plugin.windows[a]['chats'].keys():
|
|
||||||
self.plugin.windows[a]['chats'][jid].update_tags()
|
|
||||||
|
|
||||||
def on_iconstyle_combobox_changed(self, widget, path):
|
|
||||||
model = widget.get_model()
|
|
||||||
icon_string = model[path][0]
|
|
||||||
self.plugin.config['iconstyle'] = icon_string
|
|
||||||
self.plugin.roster.mkpixbufs()
|
|
||||||
|
|
||||||
def on_save_position_checkbutton_toggled(self, widget):
|
|
||||||
"""On Save Position Checkbutton Toggled"""
|
|
||||||
if widget.get_active():
|
|
||||||
self.plugin.config['saveposition'] = 1
|
|
||||||
else:
|
|
||||||
self.plugin.config['saveposition'] = 0
|
|
||||||
|
|
||||||
def on_merge_checkbutton_toggled(self, widget):
|
|
||||||
"""On Merge Accounts Checkbutton Toggled"""
|
|
||||||
if widget.get_active():
|
|
||||||
self.plugin.config['mergeaccounts'] = 1
|
|
||||||
else:
|
|
||||||
self.plugin.config['mergeaccounts'] = 0
|
|
||||||
self.plugin.roster.regroup = self.plugin.config['mergeaccounts']
|
|
||||||
|
|
||||||
def on_use_tabbed_chat_window_checkbutton_toggled(self, widget):
|
|
||||||
"""On Use Tabbed Chat Window Checkbutton Toggled"""
|
|
||||||
if widget.get_active():
|
|
||||||
self.plugin.config['usetabbedchat'] = 1
|
|
||||||
#TODO: merge opened chat windows
|
|
||||||
else:
|
|
||||||
self.plugin.config['usetabbedchat'] = 0
|
|
||||||
#TODO: split the tabbed chat window
|
|
||||||
|
|
||||||
def on_tray_icon_checkbutton_toggled(self, widget):
|
|
||||||
"""On Tray Icon Checkbutton Toggled"""
|
|
||||||
if self.widget.get_active():
|
|
||||||
self.plugin.config['trayicon'] = 1
|
|
||||||
self.plugin.show_systray()
|
|
||||||
else:
|
|
||||||
self.plugin.config['trayicon'] = 0
|
|
||||||
self.plugin.hide_systray()
|
|
||||||
self.plugin.send('CONFIG', None, ('GtkGui', self.plugin.config, 'GtkGui'))
|
|
||||||
self.plugin.roster.draw_roster()
|
|
||||||
|
|
||||||
def on_reset_colors_button_clicked(self, widget):
|
|
||||||
defaults = self.plugin.default_config
|
|
||||||
self.plugin.config['inmsgcolor'] = defaults['inmsgcolor']
|
|
||||||
self.plugin.config['outmsgcolor'] = defaults['outmsgcolor']
|
|
||||||
self.plugin.config['statusmsgcolor'] = defaults['statusmsgcolor']
|
|
||||||
self.xml.get_widget('incoming_msg_colorbutton').set_color(\
|
|
||||||
gtk.gdk.color_parse(defaults['inmsgcolor']))
|
|
||||||
self.xml.get_widget('outgoing_msg_colorbutton').set_color(\
|
|
||||||
gtk.gdk.color_parse(defaults['outmsgcolor']))
|
|
||||||
self.xml.get_widget('status_msg_colorbutton').set_color(\
|
|
||||||
gtk.gdk.color_parse(defaults['statusmsgcolor']))
|
|
||||||
self.update_text_tags()
|
|
||||||
|
|
||||||
def on_reset_colors_and_fonts_button_clicked(self, widget):
|
def on_reset_colors_and_fonts_button_clicked(self, widget):
|
||||||
defaults = self.plugin.default_config
|
defaults = self.plugin.default_config
|
||||||
self.plugin.config['accounttextcolor'] = defaults['accounttextcolor']
|
self.plugin.config['accounttextcolor'] = defaults['accounttextcolor']
|
||||||
|
@ -225,6 +170,85 @@ class preferences_window:
|
||||||
defaults['userfont'])
|
defaults['userfont'])
|
||||||
self.plugin.roster.draw_roster()
|
self.plugin.roster.draw_roster()
|
||||||
|
|
||||||
|
def on_use_tabbed_chat_window_checkbutton_toggled(self, widget):
|
||||||
|
"""On Use Tabbed Chat Window Checkbutton Toggled"""
|
||||||
|
if widget.get_active():
|
||||||
|
self.plugin.config['usetabbedchat'] = 1
|
||||||
|
#TODO: merge opened chat windows
|
||||||
|
else:
|
||||||
|
self.plugin.config['usetabbedchat'] = 0
|
||||||
|
#TODO: split the tabbed chat window
|
||||||
|
|
||||||
|
def update_text_tags(self):
|
||||||
|
"""Update Opened Chat Windows"""
|
||||||
|
for a in self.plugin.accounts.keys():
|
||||||
|
if self.plugin.windows[a]['chats'].has_key('tabbed'):
|
||||||
|
self.plugin.windows[a]['chats']['tabbed'].update_tags()
|
||||||
|
else:
|
||||||
|
for jid in self.plugin.windows[a]['chats'].keys():
|
||||||
|
self.plugin.windows[a]['chats'][jid].update_tags()
|
||||||
|
|
||||||
|
def update_print_time(self):
|
||||||
|
"""Update Opened Chat Windows"""
|
||||||
|
for a in self.plugin.accounts.keys():
|
||||||
|
if self.plugin.windows[a]['chats'].has_key('tabbed'):
|
||||||
|
self.plugin.windows[a]['chats']['tabbed'].update_print_time()
|
||||||
|
else:
|
||||||
|
for jid in self.plugin.windows[a]['chats'].keys():
|
||||||
|
self.plugin.windows[a]['chats'][jid].update_print_time()
|
||||||
|
|
||||||
|
def on_incoming_msg_colorbutton_color_set(self, widget):
|
||||||
|
"""Take The Color For The Incoming Messages"""
|
||||||
|
color = widget.get_color()
|
||||||
|
color_string = '#' + (hex(color.red) + '0')[2:4] + \
|
||||||
|
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||||
|
self.plugin.config['inmsgcolor'] = color_string
|
||||||
|
self.update_text_tags()
|
||||||
|
|
||||||
|
def on_outgoing_msg_colorbutton_color_set(self, widget):
|
||||||
|
"""Take The Color For The Outgoing Messages"""
|
||||||
|
color = widget.get_color()
|
||||||
|
color_string = '#' + (hex(color.red) + '0')[2:4] + \
|
||||||
|
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||||
|
self.plugin.config['outmsgcolor'] = color_string
|
||||||
|
self.update_text_tags()
|
||||||
|
|
||||||
|
def on_status_msg_colorbutton_color_set(self, widget):
|
||||||
|
"""Take The Color For The Status Messages"""
|
||||||
|
color = widget.get_color()
|
||||||
|
color_string = '#' + (hex(color.red) + '0')[2:4] + \
|
||||||
|
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||||
|
self.plugin.config['statusmsgcolor'] = color_string
|
||||||
|
self.update_text_tags()
|
||||||
|
|
||||||
|
def on_reset_colors_button_clicked(self, widget):
|
||||||
|
defaults = self.plugin.default_config
|
||||||
|
self.plugin.config['inmsgcolor'] = defaults['inmsgcolor']
|
||||||
|
self.plugin.config['outmsgcolor'] = defaults['outmsgcolor']
|
||||||
|
self.plugin.config['statusmsgcolor'] = defaults['statusmsgcolor']
|
||||||
|
self.xml.get_widget('incoming_msg_colorbutton').set_color(\
|
||||||
|
gtk.gdk.color_parse(defaults['inmsgcolor']))
|
||||||
|
self.xml.get_widget('outgoing_msg_colorbutton').set_color(\
|
||||||
|
gtk.gdk.color_parse(defaults['outmsgcolor']))
|
||||||
|
self.xml.get_widget('status_msg_colorbutton').set_color(\
|
||||||
|
gtk.gdk.color_parse(defaults['statusmsgcolor']))
|
||||||
|
self.update_text_tags()
|
||||||
|
|
||||||
|
def on_time_never_radiobutton_toggled(self, widget):
|
||||||
|
if widget.get_active():
|
||||||
|
self.plugin.config['print_time'] = 'never'
|
||||||
|
self.update_print_time()
|
||||||
|
|
||||||
|
def on_time_sometimes_radiobutton_toggled(self, widget):
|
||||||
|
if widget.get_active():
|
||||||
|
self.plugin.config['print_time'] = 'sometimes'
|
||||||
|
self.update_print_time()
|
||||||
|
|
||||||
|
def on_time_always_radiobutton_toggled(self, widget):
|
||||||
|
if widget.get_active():
|
||||||
|
self.plugin.config['print_time'] = 'always'
|
||||||
|
self.update_print_time()
|
||||||
|
|
||||||
def on_use_emoticons_checkbutton_function(self):
|
def on_use_emoticons_checkbutton_function(self):
|
||||||
"""
|
"""
|
||||||
model = self.emot_tree.get_model()
|
model = self.emot_tree.get_model()
|
||||||
|
@ -619,21 +643,20 @@ class preferences_window:
|
||||||
self.tray_icon_checkbutton = self.xml.get_widget('tray_icon_checkbutton')
|
self.tray_icon_checkbutton = self.xml.get_widget('tray_icon_checkbutton')
|
||||||
self.notebook = self.xml.get_widget('preferences_notebook')
|
self.notebook = self.xml.get_widget('preferences_notebook')
|
||||||
|
|
||||||
#Color for incomming messages
|
#trayicon
|
||||||
colSt = self.plugin.config['inmsgcolor']
|
st = self.plugin.config['trayicon']
|
||||||
self.xml.get_widget('incoming_msg_colorbutton').set_color(\
|
self.tray_icon_checkbutton.set_active(st)
|
||||||
gtk.gdk.color_parse(colSt))
|
if isinstance(self.plugin.systray, gtkgui.systrayDummy):
|
||||||
|
self.tray_icon_checkbutton.set_sensitive(False)
|
||||||
#Color for outgoing messages
|
|
||||||
colSt = self.plugin.config['outmsgcolor']
|
#Save position
|
||||||
self.xml.get_widget('outgoing_msg_colorbutton').set_color(\
|
st = self.plugin.config['saveposition']
|
||||||
gtk.gdk.color_parse(colSt))
|
self.xml.get_widget('save_position_checkbutton').set_active(st)
|
||||||
|
|
||||||
#Color for status messages
|
|
||||||
colSt = self.plugin.config['statusmsgcolor']
|
|
||||||
self.xml.get_widget('status_msg_colorbutton').set_color(\
|
|
||||||
gtk.gdk.color_parse(colSt))
|
|
||||||
|
|
||||||
|
#Merge accounts
|
||||||
|
st = self.plugin.config['mergeaccounts']
|
||||||
|
self.xml.get_widget('merge_checkbutton').set_active(st)
|
||||||
|
|
||||||
#iconStyle
|
#iconStyle
|
||||||
list_style = os.listdir('plugins/gtkgui/icons/')
|
list_style = os.listdir('plugins/gtkgui/icons/')
|
||||||
model = gtk.ListStore(gobject.TYPE_STRING)
|
model = gtk.ListStore(gobject.TYPE_STRING)
|
||||||
|
@ -649,131 +672,6 @@ class preferences_window:
|
||||||
if self.plugin.config['iconstyle'] == l[i]:
|
if self.plugin.config['iconstyle'] == l[i]:
|
||||||
self.iconstyle_combobox.set_active(i)
|
self.iconstyle_combobox.set_active(i)
|
||||||
|
|
||||||
#Save position
|
|
||||||
st = self.plugin.config['saveposition']
|
|
||||||
self.xml.get_widget('save_position_checkbutton').set_active(st)
|
|
||||||
|
|
||||||
#Merge accounts
|
|
||||||
st = self.plugin.config['mergeaccounts']
|
|
||||||
self.xml.get_widget('merge_checkbutton').set_active(st)
|
|
||||||
|
|
||||||
#use tabbed chat window
|
|
||||||
st = self.plugin.config['usetabbedchat']
|
|
||||||
self.xml.get_widget('use_tabbed_chat_window_checkbutton').set_active(st)
|
|
||||||
|
|
||||||
#Use emoticons
|
|
||||||
st = self.plugin.config['useemoticons']
|
|
||||||
self.xml.get_widget('use_emoticons_checkbutton').set_active(st)
|
|
||||||
self.xml.get_widget('button_new_emoticon').set_sensitive(st)
|
|
||||||
self.xml.get_widget('button_remove_emoticon').set_sensitive(st)
|
|
||||||
self.xml.get_widget('treeview_emoticons').set_sensitive(st)
|
|
||||||
self.xml.get_widget('set_image_button').set_sensitive(st)
|
|
||||||
|
|
||||||
#emoticons
|
|
||||||
self.emot_tree = self.xml.get_widget('treeview_emoticons')
|
|
||||||
model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gtk.Image)
|
|
||||||
self.emot_tree.set_model(model)
|
|
||||||
col = gtk.TreeViewColumn('name')
|
|
||||||
self.emot_tree.append_column(col)
|
|
||||||
renderer = gtk.CellRendererText()
|
|
||||||
renderer.connect('edited', self.on_emot_cell_edited)
|
|
||||||
renderer.set_property('editable', True)
|
|
||||||
col.pack_start(renderer, True)
|
|
||||||
col.set_attributes(renderer, text=0)
|
|
||||||
|
|
||||||
col = gtk.TreeViewColumn('Image')
|
|
||||||
self.emot_tree.append_column(col)
|
|
||||||
renderer = gtkgui.ImageCellRenderer()
|
|
||||||
col.pack_start(renderer, expand = False)
|
|
||||||
col.add_attribute(renderer, 'image', 2)
|
|
||||||
|
|
||||||
self.fill_emot_treeview()
|
|
||||||
|
|
||||||
#sound player
|
|
||||||
self.xml.get_widget('entry_soundplayer').set_text(\
|
|
||||||
self.plugin.config['soundplayer'])
|
|
||||||
|
|
||||||
#sounds
|
|
||||||
self.sound_tree = self.xml.get_widget('treeview_sounds')
|
|
||||||
model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_BOOLEAN, \
|
|
||||||
gobject.TYPE_STRING)
|
|
||||||
self.sound_tree.set_model(model)
|
|
||||||
|
|
||||||
col = gtk.TreeViewColumn('Active')
|
|
||||||
self.sound_tree.append_column(col)
|
|
||||||
renderer = gtk.CellRendererToggle()
|
|
||||||
renderer.set_property('activatable', True)
|
|
||||||
renderer.connect("toggled", self.sound_toggled_cb)
|
|
||||||
col.pack_start(renderer)
|
|
||||||
col.set_attributes(renderer, active=1)
|
|
||||||
|
|
||||||
col = gtk.TreeViewColumn('Event')
|
|
||||||
self.sound_tree.append_column(col)
|
|
||||||
renderer = gtk.CellRendererText()
|
|
||||||
col.pack_start(renderer)
|
|
||||||
col.set_attributes(renderer, text=0)
|
|
||||||
|
|
||||||
col = gtk.TreeViewColumn('Sound')
|
|
||||||
self.sound_tree.append_column(col)
|
|
||||||
renderer = gtk.CellRendererText()
|
|
||||||
col.pack_start(renderer)
|
|
||||||
col.set_attributes(renderer, text=2)
|
|
||||||
self.fill_sound_treeview()
|
|
||||||
|
|
||||||
if not os.name == 'posix':
|
|
||||||
self.xml.get_widget('entry_soundplayer').set_sensitive(False)
|
|
||||||
self.sound_tree.set_sensitive(False)
|
|
||||||
self.xml.get_widget('entry_sounds').set_sensitive(False)
|
|
||||||
self.xml.get_widget('button_sounds').set_sensitive(False)
|
|
||||||
|
|
||||||
#Autopopup
|
|
||||||
st = self.plugin.config['autopopup']
|
|
||||||
self.auto_pp_checkbutton.set_active(st)
|
|
||||||
|
|
||||||
#Autopopupaway
|
|
||||||
st = self.plugin.config['autopopupaway']
|
|
||||||
self.auto_pp_away_checkbutton.set_active(st)
|
|
||||||
self.auto_pp_away_checkbutton.set_sensitive(self.plugin.config['autopopup'])
|
|
||||||
|
|
||||||
#Autoaway
|
|
||||||
st = self.plugin.config['autoaway']
|
|
||||||
self.auto_away_checkbutton.set_active(st)
|
|
||||||
|
|
||||||
#Autoawaytime
|
|
||||||
st = self.plugin.config['autoawaytime']
|
|
||||||
self.auto_away_time_spinbutton.set_value(st)
|
|
||||||
self.auto_away_time_spinbutton.set_sensitive(self.plugin.config['autoaway'])
|
|
||||||
|
|
||||||
#Autoxa
|
|
||||||
st = self.plugin.config['autoxa']
|
|
||||||
self.auto_xa_checkbutton.set_active(st)
|
|
||||||
|
|
||||||
#Autoxatime
|
|
||||||
st = self.plugin.config['autoxatime']
|
|
||||||
self.auto_xa_time_spinbutton.set_value(st)
|
|
||||||
self.auto_xa_time_spinbutton.set_sensitive(self.plugin.config['autoxa'])
|
|
||||||
|
|
||||||
#Status messages
|
|
||||||
self.msg_tree = self.xml.get_widget('msg_treeview')
|
|
||||||
model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
|
|
||||||
self.msg_tree.set_model(model)
|
|
||||||
col = gtk.TreeViewColumn('name')
|
|
||||||
self.msg_tree.append_column(col)
|
|
||||||
renderer = gtk.CellRendererText()
|
|
||||||
col.pack_start(renderer, True)
|
|
||||||
col.set_attributes(renderer, text=0)
|
|
||||||
renderer.connect('edited', self.on_msg_cell_edited)
|
|
||||||
renderer.set_property('editable', True)
|
|
||||||
self.fill_msg_treeview()
|
|
||||||
buf = self.xml.get_widget('msg_textview').get_buffer()
|
|
||||||
buf.connect('changed', self.on_msg_textview_changed)
|
|
||||||
|
|
||||||
#trayicon
|
|
||||||
st = self.plugin.config['trayicon']
|
|
||||||
self.tray_icon_checkbutton.set_active(st)
|
|
||||||
if isinstance(self.plugin.systray, gtkgui.systrayDummy):
|
|
||||||
self.tray_icon_checkbutton.set_sensitive(False)
|
|
||||||
|
|
||||||
#Color for account text
|
#Color for account text
|
||||||
colSt = self.plugin.config['accounttextcolor']
|
colSt = self.plugin.config['accounttextcolor']
|
||||||
self.xml.get_widget('account_text_colorbutton').set_color(\
|
self.xml.get_widget('account_text_colorbutton').set_color(\
|
||||||
|
@ -816,6 +714,148 @@ class preferences_window:
|
||||||
fontStr = self.plugin.config['userfont']
|
fontStr = self.plugin.config['userfont']
|
||||||
self.xml.get_widget('user_text_fontbutton').set_font_name(fontStr)
|
self.xml.get_widget('user_text_fontbutton').set_font_name(fontStr)
|
||||||
|
|
||||||
|
#use tabbed chat window
|
||||||
|
st = self.plugin.config['usetabbedchat']
|
||||||
|
self.xml.get_widget('use_tabbed_chat_window_checkbutton').set_active(st)
|
||||||
|
|
||||||
|
#Color for incomming messages
|
||||||
|
colSt = self.plugin.config['inmsgcolor']
|
||||||
|
self.xml.get_widget('incoming_msg_colorbutton').set_color(\
|
||||||
|
gtk.gdk.color_parse(colSt))
|
||||||
|
|
||||||
|
#Color for outgoing messages
|
||||||
|
colSt = self.plugin.config['outmsgcolor']
|
||||||
|
self.xml.get_widget('outgoing_msg_colorbutton').set_color(\
|
||||||
|
gtk.gdk.color_parse(colSt))
|
||||||
|
|
||||||
|
#Color for status messages
|
||||||
|
colSt = self.plugin.config['statusmsgcolor']
|
||||||
|
self.xml.get_widget('status_msg_colorbutton').set_color(\
|
||||||
|
gtk.gdk.color_parse(colSt))
|
||||||
|
|
||||||
|
#Print time
|
||||||
|
if self.plugin.config['print_time'] == 'never':
|
||||||
|
self.xml.get_widget('time_never_radiobutton').set_active(1)
|
||||||
|
elif self.plugin.config['print_time'] == 'sometimes':
|
||||||
|
self.xml.get_widget('time_sometimes_radiobutton').set_active(1)
|
||||||
|
else:
|
||||||
|
self.xml.get_widget('time_always_radiobutton').set_active(1)
|
||||||
|
|
||||||
|
#Use emoticons
|
||||||
|
st = self.plugin.config['useemoticons']
|
||||||
|
self.xml.get_widget('use_emoticons_checkbutton').set_active(st)
|
||||||
|
self.xml.get_widget('button_new_emoticon').set_sensitive(st)
|
||||||
|
self.xml.get_widget('button_remove_emoticon').set_sensitive(st)
|
||||||
|
self.xml.get_widget('treeview_emoticons').set_sensitive(st)
|
||||||
|
self.xml.get_widget('set_image_button').set_sensitive(st)
|
||||||
|
|
||||||
|
#emoticons
|
||||||
|
self.emot_tree = self.xml.get_widget('treeview_emoticons')
|
||||||
|
model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gtk.Image)
|
||||||
|
self.emot_tree.set_model(model)
|
||||||
|
col = gtk.TreeViewColumn('name')
|
||||||
|
self.emot_tree.append_column(col)
|
||||||
|
renderer = gtk.CellRendererText()
|
||||||
|
renderer.connect('edited', self.on_emot_cell_edited)
|
||||||
|
renderer.set_property('editable', True)
|
||||||
|
col.pack_start(renderer, True)
|
||||||
|
col.set_attributes(renderer, text=0)
|
||||||
|
|
||||||
|
col = gtk.TreeViewColumn('Image')
|
||||||
|
self.emot_tree.append_column(col)
|
||||||
|
renderer = gtkgui.ImageCellRenderer()
|
||||||
|
col.pack_start(renderer, expand = False)
|
||||||
|
col.add_attribute(renderer, 'image', 2)
|
||||||
|
|
||||||
|
self.fill_emot_treeview()
|
||||||
|
|
||||||
|
#Autopopup
|
||||||
|
st = self.plugin.config['autopopup']
|
||||||
|
self.auto_pp_checkbutton.set_active(st)
|
||||||
|
|
||||||
|
#Autopopupaway
|
||||||
|
st = self.plugin.config['autopopupaway']
|
||||||
|
self.auto_pp_away_checkbutton.set_active(st)
|
||||||
|
self.auto_pp_away_checkbutton.set_sensitive(self.plugin.config['autopopup'])
|
||||||
|
|
||||||
|
#sound player
|
||||||
|
self.xml.get_widget('entry_soundplayer').set_text(\
|
||||||
|
self.plugin.config['soundplayer'])
|
||||||
|
|
||||||
|
#sounds
|
||||||
|
self.sound_tree = self.xml.get_widget('treeview_sounds')
|
||||||
|
model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_BOOLEAN, \
|
||||||
|
gobject.TYPE_STRING)
|
||||||
|
self.sound_tree.set_model(model)
|
||||||
|
|
||||||
|
col = gtk.TreeViewColumn('Active')
|
||||||
|
self.sound_tree.append_column(col)
|
||||||
|
renderer = gtk.CellRendererToggle()
|
||||||
|
renderer.set_property('activatable', True)
|
||||||
|
renderer.connect("toggled", self.sound_toggled_cb)
|
||||||
|
col.pack_start(renderer)
|
||||||
|
col.set_attributes(renderer, active=1)
|
||||||
|
|
||||||
|
col = gtk.TreeViewColumn('Event')
|
||||||
|
self.sound_tree.append_column(col)
|
||||||
|
renderer = gtk.CellRendererText()
|
||||||
|
col.pack_start(renderer)
|
||||||
|
col.set_attributes(renderer, text=0)
|
||||||
|
|
||||||
|
col = gtk.TreeViewColumn('Sound')
|
||||||
|
self.sound_tree.append_column(col)
|
||||||
|
renderer = gtk.CellRendererText()
|
||||||
|
col.pack_start(renderer)
|
||||||
|
col.set_attributes(renderer, text=2)
|
||||||
|
self.fill_sound_treeview()
|
||||||
|
|
||||||
|
if not os.name == 'posix':
|
||||||
|
self.xml.get_widget('entry_soundplayer').set_sensitive(False)
|
||||||
|
self.sound_tree.set_sensitive(False)
|
||||||
|
self.xml.get_widget('entry_sounds').set_sensitive(False)
|
||||||
|
self.xml.get_widget('button_sounds').set_sensitive(False)
|
||||||
|
|
||||||
|
#Autoaway
|
||||||
|
st = self.plugin.config['autoaway']
|
||||||
|
self.auto_away_checkbutton.set_active(st)
|
||||||
|
|
||||||
|
#Autoawaytime
|
||||||
|
st = self.plugin.config['autoawaytime']
|
||||||
|
self.auto_away_time_spinbutton.set_value(st)
|
||||||
|
self.auto_away_time_spinbutton.set_sensitive(self.plugin.config['autoaway'])
|
||||||
|
|
||||||
|
#Autoxa
|
||||||
|
st = self.plugin.config['autoxa']
|
||||||
|
self.auto_xa_checkbutton.set_active(st)
|
||||||
|
|
||||||
|
#Autoxatime
|
||||||
|
st = self.plugin.config['autoxatime']
|
||||||
|
self.auto_xa_time_spinbutton.set_value(st)
|
||||||
|
self.auto_xa_time_spinbutton.set_sensitive(self.plugin.config['autoxa'])
|
||||||
|
|
||||||
|
#ask_status when online / offline
|
||||||
|
st = self.plugin.config['ask_online_status']
|
||||||
|
self.xml.get_widget('prompt_online_status_message_checkbutton').\
|
||||||
|
set_active(st)
|
||||||
|
st = self.plugin.config['ask_offline_status']
|
||||||
|
self.xml.get_widget('prompt_offline_status_message_checkbutton').\
|
||||||
|
set_active(st)
|
||||||
|
|
||||||
|
#Status messages
|
||||||
|
self.msg_tree = self.xml.get_widget('msg_treeview')
|
||||||
|
model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
|
||||||
|
self.msg_tree.set_model(model)
|
||||||
|
col = gtk.TreeViewColumn('name')
|
||||||
|
self.msg_tree.append_column(col)
|
||||||
|
renderer = gtk.CellRendererText()
|
||||||
|
col.pack_start(renderer, True)
|
||||||
|
col.set_attributes(renderer, text=0)
|
||||||
|
renderer.connect('edited', self.on_msg_cell_edited)
|
||||||
|
renderer.set_property('editable', True)
|
||||||
|
self.fill_msg_treeview()
|
||||||
|
buf = self.xml.get_widget('msg_textview').get_buffer()
|
||||||
|
buf.connect('changed', self.on_msg_textview_changed)
|
||||||
|
|
||||||
self.xml.signal_connect('on_auto_pop_up_checkbox_toggled', \
|
self.xml.signal_connect('on_auto_pop_up_checkbox_toggled', \
|
||||||
self.on_checkbutton_toggled, 'autopopup', None,\
|
self.on_checkbutton_toggled, 'autopopup', None,\
|
||||||
[self.auto_pp_away_checkbutton])
|
[self.auto_pp_away_checkbutton])
|
||||||
|
|
|
@ -4031,6 +4031,7 @@ on the server as a vCard</property>
|
||||||
<property name="active">False</property>
|
<property name="active">False</property>
|
||||||
<property name="inconsistent">False</property>
|
<property name="inconsistent">False</property>
|
||||||
<property name="draw_indicator">True</property>
|
<property name="draw_indicator">True</property>
|
||||||
|
<signal name="toggled" handler="on_time_never_radiobutton_toggled" last_modification_time="Tue, 08 Mar 2005 12:58:31 GMT"/>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
|
@ -4042,29 +4043,6 @@ on the server as a vCard</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
|
||||||
<widget class="GtkRadioButton" id="time_always_radiobutton">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="label" translatable="yes">On every lines</property>
|
|
||||||
<property name="use_underline">True</property>
|
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
|
||||||
<property name="focus_on_click">True</property>
|
|
||||||
<property name="active">False</property>
|
|
||||||
<property name="inconsistent">False</property>
|
|
||||||
<property name="draw_indicator">True</property>
|
|
||||||
<property name="group">time_never_radiobutton</property>
|
|
||||||
</widget>
|
|
||||||
<packing>
|
|
||||||
<property name="left_attach">1</property>
|
|
||||||
<property name="right_attach">2</property>
|
|
||||||
<property name="top_attach">1</property>
|
|
||||||
<property name="bottom_attach">2</property>
|
|
||||||
<property name="x_options">fill</property>
|
|
||||||
<property name="y_options"></property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkRadioButton" id="time_sometimes_radiobutton">
|
<widget class="GtkRadioButton" id="time_sometimes_radiobutton">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
@ -4077,6 +4055,31 @@ on the server as a vCard</property>
|
||||||
<property name="inconsistent">False</property>
|
<property name="inconsistent">False</property>
|
||||||
<property name="draw_indicator">True</property>
|
<property name="draw_indicator">True</property>
|
||||||
<property name="group">time_never_radiobutton</property>
|
<property name="group">time_never_radiobutton</property>
|
||||||
|
<signal name="toggled" handler="on_time_sometimes_radiobutton_toggled" last_modification_time="Tue, 08 Mar 2005 13:00:36 GMT"/>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">1</property>
|
||||||
|
<property name="right_attach">2</property>
|
||||||
|
<property name="top_attach">1</property>
|
||||||
|
<property name="bottom_attach">2</property>
|
||||||
|
<property name="x_options">fill</property>
|
||||||
|
<property name="y_options"></property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget class="GtkRadioButton" id="time_always_radiobutton">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="label" translatable="yes">On every lines</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
|
<property name="active">False</property>
|
||||||
|
<property name="inconsistent">False</property>
|
||||||
|
<property name="draw_indicator">True</property>
|
||||||
|
<property name="group">time_never_radiobutton</property>
|
||||||
|
<signal name="toggled" handler="on_time_always_radiobutton_toggled" last_modification_time="Tue, 08 Mar 2005 13:00:42 GMT"/>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
|
|
|
@ -55,6 +55,7 @@ import pygtk
|
||||||
pygtk.require('2.0')
|
pygtk.require('2.0')
|
||||||
import gtk
|
import gtk
|
||||||
import gtk.glade
|
import gtk.glade
|
||||||
|
import pango
|
||||||
import gobject
|
import gobject
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
@ -209,9 +210,11 @@ class tabbed_chat_window:
|
||||||
self.tagIn = {}
|
self.tagIn = {}
|
||||||
self.tagOut = {}
|
self.tagOut = {}
|
||||||
self.tagStatus = {}
|
self.tagStatus = {}
|
||||||
|
self.tagTimeSometimes = {}
|
||||||
self.users = {}
|
self.users = {}
|
||||||
self.nb_unread = {}
|
self.nb_unread = {}
|
||||||
self.last_message_time = {}
|
self.last_message_time = {}
|
||||||
|
self.print_time_timeout_id = {}
|
||||||
self.window = self.xml.get_widget('tabbed_chat_window')
|
self.window = self.xml.get_widget('tabbed_chat_window')
|
||||||
self.new_user(user)
|
self.new_user(user)
|
||||||
self.show_title()
|
self.show_title()
|
||||||
|
@ -236,6 +239,19 @@ class tabbed_chat_window:
|
||||||
self.tagStatus[jid].set_property("foreground", \
|
self.tagStatus[jid].set_property("foreground", \
|
||||||
self.plugin.config['statusmsgcolor'])
|
self.plugin.config['statusmsgcolor'])
|
||||||
|
|
||||||
|
def update_print_time(self):
|
||||||
|
if self.plugin.config['print_time'] != 'sometimes':
|
||||||
|
list_jid = self.print_time_timeout_id.keys()
|
||||||
|
for jid in list_jid:
|
||||||
|
gobject.source_remove(self.print_time_timeout_id[jid])
|
||||||
|
del self.print_time_timeout_id[jid]
|
||||||
|
else:
|
||||||
|
for jid in self.xmls:
|
||||||
|
if not self.print_time_timeout_id.has_key(jid):
|
||||||
|
self.print_time_timeout(jid)
|
||||||
|
self.print_time_timeout_id[jid] = gobject.timeout_add(300000, \
|
||||||
|
self.print_time_timeout, jid)
|
||||||
|
|
||||||
def show_title(self):
|
def show_title(self):
|
||||||
"""redraw the window's title"""
|
"""redraw the window's title"""
|
||||||
unread = 0
|
unread = 0
|
||||||
|
@ -296,6 +312,7 @@ class tabbed_chat_window:
|
||||||
#clean self.plugin.windows[self.account]['chats']
|
#clean self.plugin.windows[self.account]['chats']
|
||||||
for jid in self.users:
|
for jid in self.users:
|
||||||
del self.plugin.windows[self.account]['chats'][jid]
|
del self.plugin.windows[self.account]['chats'][jid]
|
||||||
|
#TODO: stop all print time timout
|
||||||
if self.plugin.windows[self.account]['chats'].has_key('tabbed'):
|
if self.plugin.windows[self.account]['chats'].has_key('tabbed'):
|
||||||
del self.plugin.windows[self.account]['chats']['tabbed']
|
del self.plugin.windows[self.account]['chats']['tabbed']
|
||||||
|
|
||||||
|
@ -384,6 +401,9 @@ class tabbed_chat_window:
|
||||||
if len(self.xmls) == 1:
|
if len(self.xmls) == 1:
|
||||||
self.window.destroy()
|
self.window.destroy()
|
||||||
else:
|
else:
|
||||||
|
if self.print_time_timeout_id.has_key(jid):
|
||||||
|
gobject.source_remove(self.print_time_timeout_id[jid])
|
||||||
|
del self.print_time_timeout_id[jid]
|
||||||
self.chat_notebook.remove_page(\
|
self.chat_notebook.remove_page(\
|
||||||
self.chat_notebook.get_current_page())
|
self.chat_notebook.get_current_page())
|
||||||
del self.plugin.windows[self.account]['chats'][jid]
|
del self.plugin.windows[self.account]['chats'][jid]
|
||||||
|
@ -394,6 +414,7 @@ class tabbed_chat_window:
|
||||||
del self.tagIn[jid]
|
del self.tagIn[jid]
|
||||||
del self.tagOut[jid]
|
del self.tagOut[jid]
|
||||||
del self.tagStatus[jid]
|
del self.tagStatus[jid]
|
||||||
|
del self.tagTimeSometimes[jid]
|
||||||
if len(self.xmls) == 1:
|
if len(self.xmls) == 1:
|
||||||
self.chat_notebook.set_show_tabs(False)
|
self.chat_notebook.set_show_tabs(False)
|
||||||
self.show_title()
|
self.show_title()
|
||||||
|
@ -418,6 +439,11 @@ class tabbed_chat_window:
|
||||||
self.tagStatus[user.jid] = conversation_buffer.create_tag('status')
|
self.tagStatus[user.jid] = conversation_buffer.create_tag('status')
|
||||||
color = self.plugin.config['statusmsgcolor']
|
color = self.plugin.config['statusmsgcolor']
|
||||||
self.tagStatus[user.jid].set_property('foreground', color)
|
self.tagStatus[user.jid].set_property('foreground', color)
|
||||||
|
self.tagTimeSometimes[user.jid] = conversation_buffer.\
|
||||||
|
create_tag('time_sometimes')
|
||||||
|
self.tagTimeSometimes[user.jid].set_property('foreground', '#9e9e9e')
|
||||||
|
self.tagTimeSometimes[user.jid].set_property('scale', pango.SCALE_SMALL)
|
||||||
|
self.tagTimeSometimes[user.jid].set_property('justification', gtk.JUSTIFY_CENTER)
|
||||||
|
|
||||||
self.link_tag = conversation_buffer.create_tag('hyperlink', foreground='blue')
|
self.link_tag = conversation_buffer.create_tag('hyperlink', foreground='blue')
|
||||||
self.xmls[user.jid].signal_autoconnect(self)
|
self.xmls[user.jid].signal_autoconnect(self)
|
||||||
|
@ -442,6 +468,11 @@ class tabbed_chat_window:
|
||||||
self.print_conversation(_("%s is now %s (%s)") % (user.name, \
|
self.print_conversation(_("%s is now %s (%s)") % (user.name, \
|
||||||
user.show, user.status), user.jid, 'status')
|
user.show, user.status), user.jid, 'status')
|
||||||
|
|
||||||
|
if self.plugin.config['print_time'] == 'sometimes':
|
||||||
|
self.print_time_timeout(user.jid)
|
||||||
|
self.print_time_timeout_id[user.jid] = gobject.timeout_add(3000, \
|
||||||
|
self.print_time_timeout, user.jid)
|
||||||
|
|
||||||
def on_message_textview_key_press_event(self, widget, event):
|
def on_message_textview_key_press_event(self, widget, event):
|
||||||
"""When a key is pressed :
|
"""When a key is pressed :
|
||||||
if enter is pressed without the shit key, message (if not empty) is sent
|
if enter is pressed without the shit key, message (if not empty) is sent
|
||||||
|
@ -552,6 +583,30 @@ class tabbed_chat_window:
|
||||||
self.redraw_tab(jid)
|
self.redraw_tab(jid)
|
||||||
self.show_title()
|
self.show_title()
|
||||||
self.plugin.systray.remove_jid(jid, self.account)
|
self.plugin.systray.remove_jid(jid, self.account)
|
||||||
|
|
||||||
|
def print_time_timeout(self, jid):
|
||||||
|
if not jid in self.xmls.keys():
|
||||||
|
return 0
|
||||||
|
if self.plugin.config['print_time'] == 'sometimes':
|
||||||
|
conversation_textview = self.xmls[jid].\
|
||||||
|
get_widget('conversation_textview')
|
||||||
|
conversation_buffer = conversation_textview.get_buffer()
|
||||||
|
end_iter = conversation_buffer.get_end_iter()
|
||||||
|
tim = time.localtime()
|
||||||
|
tim_format = time.strftime('%H:%M', tim)
|
||||||
|
conversation_buffer.insert_with_tags_by_name(end_iter, tim_format + \
|
||||||
|
'\n', 'time_sometimes')
|
||||||
|
#scroll to the end of the textview
|
||||||
|
end_rect = conversation_textview.get_iter_location(end_iter)
|
||||||
|
visible_rect = conversation_textview.get_visible_rect()
|
||||||
|
if end_rect.y <= (visible_rect.y + visible_rect.height):
|
||||||
|
#we are at the end
|
||||||
|
conversation_textview.scroll_to_mark(conversation_buffer.\
|
||||||
|
get_mark('end'), 0.1, 0, 0, 0)
|
||||||
|
return 1
|
||||||
|
if self.print_time_timeout_id.has_key(jid):
|
||||||
|
del self.print_time_timeout_id[jid]
|
||||||
|
return 0
|
||||||
|
|
||||||
def print_conversation(self, text, jid, contact = '', tim = None):
|
def print_conversation(self, text, jid, contact = '', tim = None):
|
||||||
"""Print a line in the conversation :
|
"""Print a line in the conversation :
|
||||||
|
@ -564,10 +619,11 @@ class tabbed_chat_window:
|
||||||
if not text:
|
if not text:
|
||||||
text = ''
|
text = ''
|
||||||
end_iter = conversation_buffer.get_end_iter()
|
end_iter = conversation_buffer.get_end_iter()
|
||||||
if not tim:
|
if self.plugin.config['print_time'] == 'always':
|
||||||
tim = time.localtime()
|
if not tim:
|
||||||
tim_format = time.strftime("[%H:%M:%S]", tim)
|
tim = time.localtime()
|
||||||
conversation_buffer.insert(end_iter, tim_format + ' ')
|
tim_format = time.strftime("[%H:%M:%S]", tim)
|
||||||
|
conversation_buffer.insert(end_iter, tim_format + ' ')
|
||||||
|
|
||||||
otext = ''
|
otext = ''
|
||||||
ttext = ''
|
ttext = ''
|
||||||
|
@ -918,10 +974,11 @@ class Groupchat_window:
|
||||||
if not text:
|
if not text:
|
||||||
text = ''
|
text = ''
|
||||||
end_iter = conversation_buffer.get_end_iter()
|
end_iter = conversation_buffer.get_end_iter()
|
||||||
if not tim:
|
if self.plugin.config['print_time'] == 'always':
|
||||||
tim = time.localtime()
|
if not tim:
|
||||||
tim_format = time.strftime('[%H:%M:%S]', tim)
|
tim = time.localtime()
|
||||||
conversation_buffer.insert(end_iter, tim_format + ' ')
|
tim_format = time.strftime('[%H:%M:%S]', tim)
|
||||||
|
conversation_buffer.insert(end_iter, tim_format + ' ')
|
||||||
|
|
||||||
otext = ''
|
otext = ''
|
||||||
ttext = ''
|
ttext = ''
|
||||||
|
@ -3343,6 +3400,7 @@ class plugin:
|
||||||
'saveposition': 1,\
|
'saveposition': 1,\
|
||||||
'mergeaccounts': 0,\
|
'mergeaccounts': 0,\
|
||||||
'usetabbedchat': 1,\
|
'usetabbedchat': 1,\
|
||||||
|
'print_time': 'always',\
|
||||||
'useemoticons': 1,\
|
'useemoticons': 1,\
|
||||||
'emoticons':':-)\tplugins/gtkgui/emoticons/smile.png\t(@)\tplugins/gtkgui/emoticons/pussy.png\t8)\tplugins/gtkgui/emoticons/coolglasses.png\t:(\tplugins/gtkgui/emoticons/unhappy.png\t:)\tplugins/gtkgui/emoticons/smile.png\t(})\tplugins/gtkgui/emoticons/hugleft.png\t:$\tplugins/gtkgui/emoticons/blush.png\t(Y)\tplugins/gtkgui/emoticons/yes.png\t:-@\tplugins/gtkgui/emoticons/angry.png\t:-D\tplugins/gtkgui/emoticons/biggrin.png\t(U)\tplugins/gtkgui/emoticons/brheart.png\t(F)\tplugins/gtkgui/emoticons/flower.png\t:-[\tplugins/gtkgui/emoticons/bat.png\t:>\tplugins/gtkgui/emoticons/biggrin.png\t(T)\tplugins/gtkgui/emoticons/phone.png\t(l)\tplugins/gtkgui/emoticons/heart.png\t:-S\tplugins/gtkgui/emoticons/frowing.png\t:-P\tplugins/gtkgui/emoticons/tongue.png\t(h)\tplugins/gtkgui/emoticons/coolglasses.png\t(D)\tplugins/gtkgui/emoticons/drink.png\t:-O\tplugins/gtkgui/emoticons/oh.png\t(f)\tplugins/gtkgui/emoticons/flower.png\t(C)\tplugins/gtkgui/emoticons/coffee.png\t:-o\tplugins/gtkgui/emoticons/oh.png\t({)\tplugins/gtkgui/emoticons/hugright.png\t(*)\tplugins/gtkgui/emoticons/star.png\tB-)\tplugins/gtkgui/emoticons/coolglasses.png\t(z)\tplugins/gtkgui/emoticons/boy.png\t:-d\tplugins/gtkgui/emoticons/biggrin.png\t(E)\tplugins/gtkgui/emoticons/mail.png\t(N)\tplugins/gtkgui/emoticons/no.png\t(p)\tplugins/gtkgui/emoticons/photo.png\t(K)\tplugins/gtkgui/emoticons/kiss.png\t(r)\tplugins/gtkgui/emoticons/rainbow.png\t:-|\tplugins/gtkgui/emoticons/stare.png\t:-s\tplugins/gtkgui/emoticons/frowing.png\t:-p\tplugins/gtkgui/emoticons/tongue.png\t(c)\tplugins/gtkgui/emoticons/coffee.png\t(e)\tplugins/gtkgui/emoticons/mail.png\t;-)\tplugins/gtkgui/emoticons/wink.png\t;-(\tplugins/gtkgui/emoticons/cry.png\t(6)\tplugins/gtkgui/emoticons/devil.png\t:o\tplugins/gtkgui/emoticons/oh.png\t(L)\tplugins/gtkgui/emoticons/heart.png\t(w)\tplugins/gtkgui/emoticons/brflower.png\t:d\tplugins/gtkgui/emoticons/biggrin.png\t(Z)\tplugins/gtkgui/emoticons/boy.png\t(u)\tplugins/gtkgui/emoticons/brheart.png\t:|\tplugins/gtkgui/emoticons/stare.png\t(P)\tplugins/gtkgui/emoticons/photo.png\t:O\tplugins/gtkgui/emoticons/oh.png\t(R)\tplugins/gtkgui/emoticons/rainbow.png\t(t)\tplugins/gtkgui/emoticons/phone.png\t(i)\tplugins/gtkgui/emoticons/lamp.png\t;)\tplugins/gtkgui/emoticons/wink.png\t;(\tplugins/gtkgui/emoticons/cry.png\t:p\tplugins/gtkgui/emoticons/tongue.png\t(H)\tplugins/gtkgui/emoticons/coolglasses.png\t:s\tplugins/gtkgui/emoticons/frowing.png\t;\'-(\tplugins/gtkgui/emoticons/cry.png\t:-(\tplugins/gtkgui/emoticons/unhappy.png\t:-)\tplugins/gtkgui/emoticons/smile.png\t(b)\tplugins/gtkgui/emoticons/beer.png\t8-)\tplugins/gtkgui/emoticons/coolglasses.png\t(B)\tplugins/gtkgui/emoticons/beer.png\t(W)\tplugins/gtkgui/emoticons/brflower.png\t:D\tplugins/gtkgui/emoticons/biggrin.png\t(y)\tplugins/gtkgui/emoticons/yes.png\t(8)\tplugins/gtkgui/emoticons/music.png\t:@\tplugins/gtkgui/emoticons/angry.png\tB)\tplugins/gtkgui/emoticons/coolglasses.png\t:-$\tplugins/gtkgui/emoticons/blush.png\t:\'(\tplugins/gtkgui/emoticons/cry.png\t(n)\tplugins/gtkgui/emoticons/no.png\t(k)\tplugins/gtkgui/emoticons/kiss.png\t:->\tplugins/gtkgui/emoticons/biggrin.png\t:[\tplugins/gtkgui/emoticons/bat.png\t(I)\tplugins/gtkgui/emoticons/lamp.png\t:P\tplugins/gtkgui/emoticons/tongue.png\t(%)\tplugins/gtkgui/emoticons/cuffs.png\t(d)\tplugins/gtkgui/emoticons/drink.png\t:S\tplugins/gtkgui/emoticons/frowing.png\t:(S)\tplugins/gtkgui/emoticons/moon.png',\
|
'emoticons':':-)\tplugins/gtkgui/emoticons/smile.png\t(@)\tplugins/gtkgui/emoticons/pussy.png\t8)\tplugins/gtkgui/emoticons/coolglasses.png\t:(\tplugins/gtkgui/emoticons/unhappy.png\t:)\tplugins/gtkgui/emoticons/smile.png\t(})\tplugins/gtkgui/emoticons/hugleft.png\t:$\tplugins/gtkgui/emoticons/blush.png\t(Y)\tplugins/gtkgui/emoticons/yes.png\t:-@\tplugins/gtkgui/emoticons/angry.png\t:-D\tplugins/gtkgui/emoticons/biggrin.png\t(U)\tplugins/gtkgui/emoticons/brheart.png\t(F)\tplugins/gtkgui/emoticons/flower.png\t:-[\tplugins/gtkgui/emoticons/bat.png\t:>\tplugins/gtkgui/emoticons/biggrin.png\t(T)\tplugins/gtkgui/emoticons/phone.png\t(l)\tplugins/gtkgui/emoticons/heart.png\t:-S\tplugins/gtkgui/emoticons/frowing.png\t:-P\tplugins/gtkgui/emoticons/tongue.png\t(h)\tplugins/gtkgui/emoticons/coolglasses.png\t(D)\tplugins/gtkgui/emoticons/drink.png\t:-O\tplugins/gtkgui/emoticons/oh.png\t(f)\tplugins/gtkgui/emoticons/flower.png\t(C)\tplugins/gtkgui/emoticons/coffee.png\t:-o\tplugins/gtkgui/emoticons/oh.png\t({)\tplugins/gtkgui/emoticons/hugright.png\t(*)\tplugins/gtkgui/emoticons/star.png\tB-)\tplugins/gtkgui/emoticons/coolglasses.png\t(z)\tplugins/gtkgui/emoticons/boy.png\t:-d\tplugins/gtkgui/emoticons/biggrin.png\t(E)\tplugins/gtkgui/emoticons/mail.png\t(N)\tplugins/gtkgui/emoticons/no.png\t(p)\tplugins/gtkgui/emoticons/photo.png\t(K)\tplugins/gtkgui/emoticons/kiss.png\t(r)\tplugins/gtkgui/emoticons/rainbow.png\t:-|\tplugins/gtkgui/emoticons/stare.png\t:-s\tplugins/gtkgui/emoticons/frowing.png\t:-p\tplugins/gtkgui/emoticons/tongue.png\t(c)\tplugins/gtkgui/emoticons/coffee.png\t(e)\tplugins/gtkgui/emoticons/mail.png\t;-)\tplugins/gtkgui/emoticons/wink.png\t;-(\tplugins/gtkgui/emoticons/cry.png\t(6)\tplugins/gtkgui/emoticons/devil.png\t:o\tplugins/gtkgui/emoticons/oh.png\t(L)\tplugins/gtkgui/emoticons/heart.png\t(w)\tplugins/gtkgui/emoticons/brflower.png\t:d\tplugins/gtkgui/emoticons/biggrin.png\t(Z)\tplugins/gtkgui/emoticons/boy.png\t(u)\tplugins/gtkgui/emoticons/brheart.png\t:|\tplugins/gtkgui/emoticons/stare.png\t(P)\tplugins/gtkgui/emoticons/photo.png\t:O\tplugins/gtkgui/emoticons/oh.png\t(R)\tplugins/gtkgui/emoticons/rainbow.png\t(t)\tplugins/gtkgui/emoticons/phone.png\t(i)\tplugins/gtkgui/emoticons/lamp.png\t;)\tplugins/gtkgui/emoticons/wink.png\t;(\tplugins/gtkgui/emoticons/cry.png\t:p\tplugins/gtkgui/emoticons/tongue.png\t(H)\tplugins/gtkgui/emoticons/coolglasses.png\t:s\tplugins/gtkgui/emoticons/frowing.png\t;\'-(\tplugins/gtkgui/emoticons/cry.png\t:-(\tplugins/gtkgui/emoticons/unhappy.png\t:-)\tplugins/gtkgui/emoticons/smile.png\t(b)\tplugins/gtkgui/emoticons/beer.png\t8-)\tplugins/gtkgui/emoticons/coolglasses.png\t(B)\tplugins/gtkgui/emoticons/beer.png\t(W)\tplugins/gtkgui/emoticons/brflower.png\t:D\tplugins/gtkgui/emoticons/biggrin.png\t(y)\tplugins/gtkgui/emoticons/yes.png\t(8)\tplugins/gtkgui/emoticons/music.png\t:@\tplugins/gtkgui/emoticons/angry.png\tB)\tplugins/gtkgui/emoticons/coolglasses.png\t:-$\tplugins/gtkgui/emoticons/blush.png\t:\'(\tplugins/gtkgui/emoticons/cry.png\t(n)\tplugins/gtkgui/emoticons/no.png\t(k)\tplugins/gtkgui/emoticons/kiss.png\t:->\tplugins/gtkgui/emoticons/biggrin.png\t:[\tplugins/gtkgui/emoticons/bat.png\t(I)\tplugins/gtkgui/emoticons/lamp.png\t:P\tplugins/gtkgui/emoticons/tongue.png\t(%)\tplugins/gtkgui/emoticons/cuffs.png\t(d)\tplugins/gtkgui/emoticons/drink.png\t:S\tplugins/gtkgui/emoticons/frowing.png\t:(S)\tplugins/gtkgui/emoticons/moon.png',\
|
||||||
'soundplayer': 'play',\
|
'soundplayer': 'play',\
|
||||||
|
|
Loading…
Add table
Reference in a new issue