start to save config on the fly [and not only on quiting gktgui] and fixing #174
This commit is contained in:
parent
9a8f6335aa
commit
ac228f06b3
5 changed files with 60 additions and 77 deletions
10
Core/core.py
10
Core/core.py
|
@ -64,15 +64,7 @@ distro_info = {
|
|||
|
||||
def get_os_info():
|
||||
if os.name =='nt':
|
||||
win_version = {
|
||||
(1, 4, 0): "95",\
|
||||
(1, 4, 10): "98",\
|
||||
(1, 4, 90): "ME",\
|
||||
(2, 4, 0): "NT",\
|
||||
(2, 5, 0): "2000",\
|
||||
(2, 5, 1): "XP"
|
||||
}[os.sys.getwindowsversion()[3], os.sys.getwindowsversion()[0],\
|
||||
os.sys.getwindowsversion()[1]]
|
||||
win_version = platform.release()
|
||||
return 'Windows' + ' ' + win_version
|
||||
elif os.name =='posix':
|
||||
executable = 'lsb_release'
|
||||
|
|
|
@ -60,6 +60,7 @@ class Preferences_window:
|
|||
if change_sensitivity_widgets != None:
|
||||
for w in change_sensitivity_widgets:
|
||||
w.set_sensitive(widget.get_active())
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_tray_icon_checkbutton_toggled(self, widget):
|
||||
if widget.get_active():
|
||||
|
@ -71,12 +72,14 @@ class Preferences_window:
|
|||
self.plugin.hide_systray()
|
||||
self.plugin.send('CONFIG', None, ('GtkGui', self.plugin.config, 'GtkGui'))
|
||||
self.plugin.roster.draw_roster()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_save_position_checkbutton_toggled(self, widget):
|
||||
if widget.get_active():
|
||||
self.plugin.config['saveposition'] = 1
|
||||
else:
|
||||
self.plugin.config['saveposition'] = 0
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_merge_checkbutton_toggled(self, widget):
|
||||
if widget.get_active():
|
||||
|
@ -85,6 +88,7 @@ class Preferences_window:
|
|||
self.plugin.config['mergeaccounts'] = 0
|
||||
self.plugin.roster.regroup = self.plugin.config['mergeaccounts']
|
||||
self.plugin.roster.draw_roster()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_iconset_combobox_changed(self, widget):
|
||||
model = widget.get_model()
|
||||
|
@ -92,6 +96,7 @@ class Preferences_window:
|
|||
icon_string = model[active][0]
|
||||
self.plugin.config['iconset'] = icon_string
|
||||
self.plugin.roster.reload_pixbufs()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_account_text_colorbutton_color_set(self, widget):
|
||||
"""Take The Color For The Account Text"""
|
||||
|
@ -100,6 +105,7 @@ class Preferences_window:
|
|||
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||
self.plugin.config['accounttextcolor'] = color_string
|
||||
self.plugin.roster.draw_roster()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_group_text_colorbutton_color_set(self, widget):
|
||||
"""Take The Color For The Group Text"""
|
||||
|
@ -108,6 +114,7 @@ class Preferences_window:
|
|||
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||
self.plugin.config['grouptextcolor'] = color_string
|
||||
self.plugin.roster.draw_roster()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_user_text_colorbutton_color_set(self, widget):
|
||||
"""Take The Color For The User Text"""
|
||||
|
@ -116,6 +123,7 @@ class Preferences_window:
|
|||
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||
self.plugin.config['usertextcolor'] = color_string
|
||||
self.plugin.roster.draw_roster()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_account_text_bg_colorbutton_color_set(self, widget):
|
||||
"""Take The Color For The Background Of Account Text"""
|
||||
|
@ -124,6 +132,7 @@ class Preferences_window:
|
|||
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||
self.plugin.config['accountbgcolor'] = color_string
|
||||
self.plugin.roster.draw_roster()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_group_text_bg_colorbutton_color_set(self, widget):
|
||||
"""Take The Color For The Background Of Group Text"""
|
||||
|
@ -132,6 +141,7 @@ class Preferences_window:
|
|||
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||
self.plugin.config['groupbgcolor'] = color_string
|
||||
self.plugin.roster.draw_roster()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_user_text_bg_colorbutton_color_set(self, widget):
|
||||
"""Take The Color For The Background Of User Text"""
|
||||
|
@ -140,24 +150,28 @@ class Preferences_window:
|
|||
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||
self.plugin.config['userbgcolor'] = color_string
|
||||
self.plugin.roster.draw_roster()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_account_text_fontbutton_font_set(self, widget):
|
||||
"""Take The Font For The User Text"""
|
||||
font_string = widget.get_font_name()
|
||||
self.plugin.config['accountfont'] = font_string
|
||||
self.plugin.roster.draw_roster()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_group_text_fontbutton_font_set(self, widget):
|
||||
"""Take The Font For The Group Text"""
|
||||
font_string = widget.get_font_name()
|
||||
self.plugin.config['groupfont'] = font_string
|
||||
self.plugin.roster.draw_roster()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_user_text_fontbutton_font_set(self, widget):
|
||||
"""Take The Font For The User Text"""
|
||||
font_string = widget.get_font_name()
|
||||
self.plugin.config['userfont'] = font_string
|
||||
self.plugin.roster.draw_roster()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_reset_colors_and_fonts_button_clicked(self, widget):
|
||||
defaults = self.plugin.default_config
|
||||
|
@ -189,6 +203,7 @@ class Preferences_window:
|
|||
self.xml.get_widget('user_text_fontbutton').set_font_name(\
|
||||
defaults['userfont'])
|
||||
self.plugin.roster.draw_roster()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_use_tabbed_chat_window_checkbutton_toggled(self, widget):
|
||||
buf1 = {}
|
||||
|
@ -243,6 +258,7 @@ class Preferences_window:
|
|||
# buf1[acct][jid])
|
||||
# self.plugin.windows[acct]['chats'][jid].xmls[jid].\
|
||||
# get_widget('message_textview').set_buffer(buf2[acct][jid])
|
||||
self.plugin.save_config()
|
||||
|
||||
def update_print_time(self):
|
||||
"""Update time in Opened Chat Windows"""
|
||||
|
@ -257,28 +273,35 @@ class Preferences_window:
|
|||
if widget.get_active():
|
||||
self.plugin.config['print_time'] = 'never'
|
||||
self.update_print_time()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_time_sometimes_radiobutton_toggled(self, widget):
|
||||
if widget.get_active():
|
||||
self.plugin.config['print_time'] = 'sometimes'
|
||||
self.update_print_time()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_time_always_radiobutton_toggled(self, widget):
|
||||
if widget.get_active():
|
||||
self.plugin.config['print_time'] = 'always'
|
||||
self.update_print_time()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_before_time_entry_focus_out_event(self, widget, event):
|
||||
self.plugin.config['before_time'] = widget.get_text()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_after_time_entry_focus_out_event(self, widget, event):
|
||||
self.plugin.config['after_time'] = widget.get_text()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_before_nickname_entry_focus_out_event(self, widget, event):
|
||||
self.plugin.config['before_nickname'] = widget.get_text()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_after_nickname_entry_focus_out_event(self, widget, event):
|
||||
self.plugin.config['after_nickname'] = widget.get_text()
|
||||
self.plugin.save_config()
|
||||
|
||||
def update_text_tags(self):
|
||||
"""Update color tags in Opened Chat Windows"""
|
||||
|
@ -296,6 +319,7 @@ class Preferences_window:
|
|||
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||
self.plugin.config['inmsgcolor'] = color_string
|
||||
self.update_text_tags()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_outgoing_msg_colorbutton_color_set(self, widget):
|
||||
"""Take The Color For The Outgoing Messages"""
|
||||
|
@ -304,6 +328,7 @@ class Preferences_window:
|
|||
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||
self.plugin.config['outmsgcolor'] = color_string
|
||||
self.update_text_tags()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_status_msg_colorbutton_color_set(self, widget):
|
||||
"""Take The Color For The Status Messages"""
|
||||
|
@ -312,6 +337,7 @@ class Preferences_window:
|
|||
(hex(color.green) + '0')[2:4] + (hex(color.blue) + '0')[2:4]
|
||||
self.plugin.config['statusmsgcolor'] = color_string
|
||||
self.update_text_tags()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_reset_colors_button_clicked(self, widget):
|
||||
defaults = self.plugin.default_config
|
||||
|
@ -325,6 +351,7 @@ class Preferences_window:
|
|||
self.xml.get_widget('status_msg_colorbutton').set_color(\
|
||||
gtk.gdk.color_parse(defaults['statusmsgcolor']))
|
||||
self.update_text_tags()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_use_emoticons_checkbutton_toggled(self, widget):
|
||||
self.on_checkbutton_toggled(widget, 'useemoticons', \
|
||||
|
@ -349,13 +376,13 @@ class Preferences_window:
|
|||
|
||||
def on_play_sounds_checkbutton_toggled(self, widget):
|
||||
self.on_checkbutton_toggled(widget, 'sounds_on',\
|
||||
[self.xml.get_widget('sound_player_hbox'),\
|
||||
[self.xml.get_widget('soundplayer_hbox'),\
|
||||
self.xml.get_widget('sounds_scrolledwindow'),\
|
||||
self.xml.get_widget('browse_sounds_hbox')])
|
||||
|
||||
|
||||
def on_soundplayer_entry_changed(self, widget):
|
||||
self.plugin.config['soundplayer'] = widget.get_text()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_prompt_online_status_message_checkbutton_toggled(self, widget):
|
||||
self.on_checkbutton_toggled(widget, 'ask_online_status')
|
||||
|
@ -375,6 +402,7 @@ class Preferences_window:
|
|||
self.plugin.config['sound_' + sound_event + '_file'] = \
|
||||
model.get_value(iter, 2)
|
||||
iter = model.iter_next(iter)
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_auto_away_checkbutton_toggled(self, widget):
|
||||
self.on_checkbutton_toggled(widget, 'autoaway', \
|
||||
|
@ -386,6 +414,7 @@ class Preferences_window:
|
|||
self.plugin.sleeper = common.sleepy.Sleepy(\
|
||||
self.plugin.config['autoawaytime']*60, \
|
||||
self.plugin.config['autoxatime']*60)
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_auto_xa_checkbutton_toggled(self, widget):
|
||||
self.on_checkbutton_toggled(widget, 'autoxa', \
|
||||
|
@ -397,6 +426,7 @@ class Preferences_window:
|
|||
self.plugin.sleeper = common.sleepy.Sleepy(\
|
||||
self.plugin.config['autoawaytime']*60, \
|
||||
self.plugin.config['autoxatime']*60)
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_msg_treemodel_row_changed(self, model, path, iter):
|
||||
iter = model.get_iter_first()
|
||||
|
@ -410,6 +440,7 @@ class Preferences_window:
|
|||
del self.plugin.config['msg%i_name' % i]
|
||||
del self.plugin.config['msg%i' % i]
|
||||
i += 1
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_msg_treemodel_row_deleted(self, model, path, iter):
|
||||
iter = model.get_iter_first()
|
||||
|
@ -423,6 +454,7 @@ class Preferences_window:
|
|||
del self.plugin.config['msg%i_name' % i]
|
||||
del self.plugin.config['msg%i' % i]
|
||||
i += 1
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_links_open_with_combobox_changed(self, widget):
|
||||
if widget.get_active() == 2:
|
||||
|
@ -434,12 +466,15 @@ class Preferences_window:
|
|||
if widget.get_active() == 1:
|
||||
self.plugin.config['openwith'] = 'kfmclient exec'
|
||||
self.xml.get_widget('custom_apps_frame').set_sensitive(False)
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_custom_browser_entry_changed(self, widget):
|
||||
self.plugin.config['custombrowser'] = widget.get_text()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_custom_mail_client_entry_changed(self, widget):
|
||||
self.plugin.config['custommailapp'] = widget.get_text()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_log_in_contact_checkbutton_toggled(self, widget):
|
||||
if widget.get_active():
|
||||
|
@ -447,6 +482,7 @@ class Preferences_window:
|
|||
else:
|
||||
self.config_logger['lognotusr'] = 0
|
||||
self.plugin.send('CONFIG', None, ('Logger', self.config_logger, 'GtkGui'))
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_log_in_extern_checkbutton_toggled(self, widget):
|
||||
if widget.get_active():
|
||||
|
@ -454,6 +490,7 @@ class Preferences_window:
|
|||
else:
|
||||
self.config_logger['lognotsep'] = 0
|
||||
self.plugin.send('CONFIG', None, ('Logger', self.config_logger, 'GtkGui'))
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_do_not_send_os_info_checkbutton_toggled(self, widget):
|
||||
if widget.get_active():
|
||||
|
@ -461,6 +498,7 @@ class Preferences_window:
|
|||
self.plugin.config['do_not_send_os_info'] = 1
|
||||
else:
|
||||
self.plugin.config['do_not_send_os_info'] = 0
|
||||
self.plugin.save_config()
|
||||
|
||||
|
||||
def fill_msg_treeview(self):
|
||||
|
@ -734,12 +772,12 @@ class Preferences_window:
|
|||
if self.plugin.config['sounds_on']:
|
||||
self.xml.get_widget('play_sounds_checkbutton').set_active(True)
|
||||
else:
|
||||
self.xml.get_widget('sound_player_hbox').set_sensitive(False)
|
||||
self.xml.get_widget('soundplayer_hbox').set_sensitive(False)
|
||||
self.xml.get_widget('sounds_scrolledwindow').set_sensitive(False)
|
||||
self.xml.get_widget('browse_sounds_hbox').set_sensitive(False)
|
||||
|
||||
if os.name == 'nt': # if windows, player must not be changeable
|
||||
self.xml.get_widget('sound_player_hbox').set_sensitive(False)
|
||||
self.xml.get_widget('soundplayer_hbox').set_sensitive(False)
|
||||
|
||||
#sound player
|
||||
self.xml.get_widget('soundplayer_entry').set_text(\
|
||||
|
@ -1445,6 +1483,7 @@ class Add_remove_emoticons_window:
|
|||
iter = model.iter_next(iter)
|
||||
self.plugin.config['emoticons'] = '\t'.join(emots)
|
||||
self.plugin.init_regexp()
|
||||
self.plugin.save_config()
|
||||
|
||||
def on_emoticons_treemodel_row_changed(self, model, path, iter):
|
||||
if model[path][1] != None and len(model[path][1]) != 0:
|
||||
|
@ -1455,7 +1494,8 @@ class Add_remove_emoticons_window:
|
|||
emots.append(model.get_value(iter, 1))
|
||||
iter = model.iter_next(iter)
|
||||
self.plugin.config['emoticons'] = '\t'.join(emots)
|
||||
self.plugin.init_regexp()
|
||||
self.plugin.init_regexp()
|
||||
self.plugin.save_config()
|
||||
|
||||
def image_is_ok(self, image):
|
||||
if not os.path.exists(image):
|
||||
|
@ -1789,6 +1829,7 @@ class Service_discovery_window:
|
|||
' '.join(self.latest_addresses)
|
||||
self.services_treeview.get_model().clear()
|
||||
self.browse(server_address)
|
||||
self.plugin.save_config()
|
||||
|
||||
def __init__(self, plugin, account):
|
||||
if plugin.connected[account] < 2:
|
||||
|
|
|
@ -4458,7 +4458,7 @@
|
|||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="sound_player_hbox">
|
||||
<widget class="GtkHBox" id="soundplayer_hbox">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">5</property>
|
||||
|
|
|
@ -278,7 +278,6 @@ class plugin:
|
|||
def play_timeout(self, pid):
|
||||
pidp, r = os.waitpid(pid, os.WNOHANG)
|
||||
return 0
|
||||
|
||||
|
||||
def play_sound(self, event):
|
||||
if not self.config['sounds_on']:
|
||||
|
@ -471,7 +470,8 @@ class plugin:
|
|||
|
||||
def handle_event_msgsent(self, account, array):
|
||||
#('MSG', account, (jid, msg, keyID))
|
||||
self.play_sound('sound_message_sent')
|
||||
if self.config['sound_message_sent']:
|
||||
self.play_sound('sound_message_sent')
|
||||
|
||||
def handle_event_subscribe(self, account, array):
|
||||
#('SUBSCRIBE', account, (jid, text))
|
||||
|
@ -557,7 +557,12 @@ class plugin:
|
|||
self.roster.draw_roster()
|
||||
|
||||
def handle_event_quit(self, p1, p2):
|
||||
self.roster.on_quit()
|
||||
self.roster.on_quit() # SUCH FUNCTION DOES NOT EXIST!!
|
||||
|
||||
def save_config(self):
|
||||
hidden_lines = self.config['hiddenlines'].split('\t')
|
||||
self.config['hiddenlines'] = '\t'.join(hidden_lines)
|
||||
self.send('CONFIG', None, ('GtkGui', self.config, 'GtkGui'))
|
||||
|
||||
def handle_event_myvcard(self, account, array):
|
||||
nick = ''
|
||||
|
|
|
@ -970,8 +970,7 @@ class Roster_window:
|
|||
self.plugin.config['width'], self.plugin.config['height'] = \
|
||||
self.window.get_size()
|
||||
|
||||
self.plugin.config['hiddenlines'] = '\t'.join(self.hidden_lines)
|
||||
self.plugin.send('CONFIG', None, ('GtkGui', self.plugin.config, 'GtkGui'))
|
||||
self.plugin.save_config()
|
||||
self.plugin.send('QUIT', None, ('gtkgui', 1))
|
||||
print _("plugin gtkgui stopped")
|
||||
self.close_all(self.plugin.windows)
|
||||
|
@ -1165,64 +1164,10 @@ class Roster_window:
|
|||
self.plugin.send('CONFIG', None, ('GtkGui', self.plugin.config, 'GtkGui'))
|
||||
self.draw_roster()
|
||||
|
||||
def get_groups_list(self):
|
||||
model = self.tree.get_model()
|
||||
list = []
|
||||
fin = False
|
||||
role = model.get_iter_root()
|
||||
if not role:
|
||||
return list
|
||||
while not fin:
|
||||
fin2 = False
|
||||
user = model.iter_children(role)
|
||||
if not user:
|
||||
fin2 = True
|
||||
while not fin2:
|
||||
group_name = model.get_value(user, 1)
|
||||
list.append(group_name)
|
||||
user = model.iter_next(user)
|
||||
if not user:
|
||||
fin2 = True
|
||||
role = model.iter_next(role)
|
||||
if not role:
|
||||
fin = True
|
||||
return list
|
||||
|
||||
def get_contacts_list(self):
|
||||
'''
|
||||
groups = self.get_groups_list()
|
||||
for g in groups:
|
||||
bla bla
|
||||
'''
|
||||
#OR TEST WITH CHAT --> ABOUT [freeze atm]
|
||||
'''
|
||||
model = self.tree.get_model()
|
||||
list = []
|
||||
fin = False
|
||||
role = model.get_iter_root()
|
||||
if not role:
|
||||
return list
|
||||
while not fin:
|
||||
fin2 = False
|
||||
group = model.iter_children(role)
|
||||
if not group:
|
||||
fin2 = True
|
||||
while not fin2:
|
||||
fin3 = False
|
||||
user = model.iter_children(group)
|
||||
if not user:
|
||||
fin3 = True
|
||||
while not fin3:
|
||||
contact_nick = model.get_value(user, 1)
|
||||
list.append(contact_nick)
|
||||
user = model.iter_next(user)
|
||||
if not user:
|
||||
fin3 = True
|
||||
role = model.iter_next(role)
|
||||
if not role:
|
||||
fin = True
|
||||
'''
|
||||
return list
|
||||
for acc in self.plugin.accounts.keys():
|
||||
print self.contacts[acc]
|
||||
|
||||
|
||||
def iconCellDataFunc(self, column, renderer, model, iter, data=None):
|
||||
"""When a row is added, set properties for icon renderer"""
|
||||
|
|
Loading…
Add table
Reference in a new issue