Fix problems creating template functions caused by the changes for the new single-name rule

This commit is contained in:
Charles Haley 2013-07-19 15:42:43 +02:00
parent 34aa6e68b2
commit faa351c208

View File

@ -13,7 +13,8 @@ from calibre.gui2 import error_dialog, warning_dialog
from calibre.gui2.preferences import ConfigWidgetBase, test_widget from calibre.gui2.preferences import ConfigWidgetBase, test_widget
from calibre.gui2.preferences.template_functions_ui import Ui_Form from calibre.gui2.preferences.template_functions_ui import Ui_Form
from calibre.gui2.widgets import PythonHighlighter from calibre.gui2.widgets import PythonHighlighter
from calibre.utils.formatter_functions import formatter_functions, compile_user_function from calibre.utils.formatter_functions import (formatter_functions,
compile_user_function, load_user_template_functions)
class ConfigWidget(ConfigWidgetBase, Ui_Form): class ConfigWidget(ConfigWidgetBase, Ui_Form):
@ -21,7 +22,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
def genesis(self, gui): def genesis(self, gui):
self.gui = gui self.gui = gui
self.db = gui.library_view.model().db self.db = gui.library_view.model().db
self.current_plugboards = self.db.prefs.get('plugboards',{})
help_text = _(''' help_text = _('''
<p>Here you can add and remove functions used in template processing. A <p>Here you can add and remove functions used in template processing. A
template function is written in python. It takes information from the template function is written in python. It takes information from the
@ -217,15 +218,15 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
pass pass
def commit(self): def commit(self):
formatter_functions().reset_to_builtins() # formatter_functions().reset_to_builtins()
pref_value = [] pref_value = []
for f in self.funcs: for f in self.funcs:
if f in self.builtins:
continue
func = self.funcs[f] func = self.funcs[f]
formatter_functions().register_function(self.db.library_id, func)
pref_value.append((func.name, func.doc, func.arg_count, func.program_text)) pref_value.append((func.name, func.doc, func.arg_count, func.program_text))
self.db.prefs.set('user_template_functions', pref_value) self.db.prefs.set('user_template_functions', pref_value)
formatter_functions().unregister_functions(self.db.library_id)
load_user_template_functions(self.db.library_id, pref_value)
return False
if __name__ == '__main__': if __name__ == '__main__':