function to update the config file from version to version
I currently update some var names, add new themes and remove cyan theme, add new proxies, add new emoticons If things are missing add them there
This commit is contained in:
parent
290ca15a7c
commit
c94d1ca48a
1 changed files with 58 additions and 0 deletions
|
@ -26,6 +26,8 @@ _ = i18n._
|
||||||
class OptionsParser:
|
class OptionsParser:
|
||||||
def __init__(self, filename):
|
def __init__(self, filename):
|
||||||
self.__filename = filename
|
self.__filename = filename
|
||||||
|
self.old_values = {} # values that are saved in the file and maybe
|
||||||
|
# no longer valid
|
||||||
|
|
||||||
def read_line(self, line):
|
def read_line(self, line):
|
||||||
index = line.find(' = ')
|
index = line.find(' = ')
|
||||||
|
@ -36,6 +38,7 @@ class OptionsParser:
|
||||||
i_end = var_str.rfind('.')
|
i_end = var_str.rfind('.')
|
||||||
|
|
||||||
if i_start == -1:
|
if i_start == -1:
|
||||||
|
self.old_values[var_str] = value_str
|
||||||
gajim.config.set(var_str, value_str)
|
gajim.config.set(var_str, value_str)
|
||||||
else:
|
else:
|
||||||
optname = var_str[0:i_start]
|
optname = var_str[0:i_start]
|
||||||
|
@ -53,12 +56,17 @@ class OptionsParser:
|
||||||
print _('error: cannot open %s for reading') % self.__filename
|
print _('error: cannot open %s for reading') % self.__filename
|
||||||
return
|
return
|
||||||
|
|
||||||
|
new_version = gajim.config.get('version')
|
||||||
for line in fd.readlines():
|
for line in fd.readlines():
|
||||||
try:
|
try:
|
||||||
line = line.decode('utf-8')
|
line = line.decode('utf-8')
|
||||||
except UnicodeDecodeError:
|
except UnicodeDecodeError:
|
||||||
line = line.decode(locale.getpreferredencoding())
|
line = line.decode(locale.getpreferredencoding())
|
||||||
self.read_line(line)
|
self.read_line(line)
|
||||||
|
old_version = gajim.config.get('version')
|
||||||
|
|
||||||
|
self.update_config(old_version, new_version)
|
||||||
|
self.old_values = {} # clean mem
|
||||||
|
|
||||||
fd.close()
|
fd.close()
|
||||||
|
|
||||||
|
@ -116,3 +124,53 @@ class OptionsParser:
|
||||||
except IOError, e:
|
except IOError, e:
|
||||||
return e.errno
|
return e.errno
|
||||||
os.chmod(self.__filename, 0600)
|
os.chmod(self.__filename, 0600)
|
||||||
|
|
||||||
|
def update_config(self, old_version, new_version):
|
||||||
|
if old_version < '0.9' and new_version == '0.9':
|
||||||
|
self.update_config_x_to_09()
|
||||||
|
|
||||||
|
def update_config_x_to_09(self):
|
||||||
|
# Var name that changed:
|
||||||
|
# avatar_width /height -> chat_avatar_width / height
|
||||||
|
if self.old_values.has_key('avatar_width'):
|
||||||
|
gajim.config.set('chat_avatar_width', self.old_values['avatar_width'])
|
||||||
|
if self.old_values.has_key('avatar_height'):
|
||||||
|
gajim.config.set('chat_avatar_height', self.old_values['avatar_height'])
|
||||||
|
# always_compact_view -> always_compact_view_chat / _gc
|
||||||
|
if self.old_values.has_key('always_compact_view'):
|
||||||
|
gajim.config.set('always_compact_view_chat',
|
||||||
|
self.old_values['always_compact_view'])
|
||||||
|
gajim.config.set('always_compact_view_gc',
|
||||||
|
self.old_values['always_compact_view'])
|
||||||
|
# new theme: grocery, plain
|
||||||
|
d = ['accounttextcolor', 'accountbgcolor', 'accountfont',
|
||||||
|
'accountfontattrs', 'grouptextcolor', 'groupbgcolor', 'groupfont',
|
||||||
|
'groupfontattrs', 'contacttextcolor', 'contactbgcolor', 'contactfont',
|
||||||
|
'contactfontattrs', 'bannertextcolor', 'bannerbgcolor']
|
||||||
|
for theme_name in ['grocery', 'plain']:
|
||||||
|
if theme_name not in gajim.config.get_per('themes'):
|
||||||
|
gajim.config.add_per('themes', theme_name)
|
||||||
|
theme = gajim.config.themes_default[theme_name]
|
||||||
|
for o in d:
|
||||||
|
gajim.config.set_per('themes', theme_name, o, theme[d.index(o)])
|
||||||
|
# Remove cyan theme if it's not the default theme
|
||||||
|
if gajim.config.get('roster_theme') != 'cyan' and \
|
||||||
|
'cyan' in gajim.config.get_per('themes'):
|
||||||
|
gajim.config.del_per('themes', 'cyan')
|
||||||
|
# new proxies in accounts.name.file_transfer_proxies
|
||||||
|
for account in gajim.config.get_per('accounts'):
|
||||||
|
proxies = gajim.config.get_per('accounts', account,
|
||||||
|
'file_transfer_proxies')
|
||||||
|
for new in ['proxy.netlab.cz', 'proxy65.jabber.ccc.de',
|
||||||
|
'proxy65.unstable.nl']:
|
||||||
|
if proxies.find(new) < 0:
|
||||||
|
proxies += ', ' + new
|
||||||
|
gajim.config.set_per('accounts', account,'file_transfer_proxies',
|
||||||
|
proxies)
|
||||||
|
# Add some emots :-* :* >:) >:-) <3
|
||||||
|
for emot in [':-*', ':*', '>:)', '>:-)', '<3']:
|
||||||
|
if emot not in gajim.config.get_per('emoticons'):
|
||||||
|
gajim.config.add_per('emoticons', emot)
|
||||||
|
gajim.config.set_per('emoticons', emot, 'path',
|
||||||
|
gajim.config.emoticons_default[emot])
|
||||||
|
gajim.config.set('version', '0.9')
|
||||||
|
|
Loading…
Add table
Reference in a new issue