Commit d1609b97 authored by mathieui's avatar mathieui

Fix #2497/#2498 (/theme should return an error when loading fails)

It was actually doing that for old python version but not recent onces
parent f165d3a4
......@@ -173,10 +173,6 @@ def command_theme(self, arg=''):
args = arg.split()
if args:
self.command_set('theme %s' % (args[0],))
warning = theming.reload_theme()
if warning:
self.information(warning, 'Warning')
self.refresh_window()
def command_win(self, arg):
"""
......
......@@ -250,6 +250,7 @@ class Core(object):
self.add_configuration_handler("connection_timeout_delay", self.xmpp.set_keepalive_values)
self.add_configuration_handler("connection_check_interval", self.xmpp.set_keepalive_values)
self.add_configuration_handler("themes_dir", theming.update_themes_dir)
self.add_configuration_handler("theme", self.on_theme_config_change)
self.add_configuration_handler("", self.on_any_config_change)
def on_any_config_change(self, option, value):
......@@ -305,6 +306,15 @@ class Core(object):
path = os.path.expanduser(value)
self.plugin_manager.on_plugins_conf_dir_change(path)
def on_theme_config_change(self, option, value):
"""
Called when the theme option is changed
"""
error_msg = theming.reload_theme()
if error_msg:
self.information(error_msg, 'Warning')
self.refresh_window()
def sigusr_handler(self, num, stack):
"""
Handle SIGUSR1 (10)
......
......@@ -491,7 +491,7 @@ def reload_theme():
else:
loader = finder.find_module(theme_name, load_path)
if not loader:
return
return 'Failed to load the theme %s' % theme_name
new_theme = loader.load_module()
except Exception as e:
log.error('Failed to load the theme %s', theme_name, exc_info=True)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment