def __load_config_xml(self, config): pages = utils.get_notebook_page_names(main) configVersion = config.attributes['version'].value app.debug_print("config version : %s" % configVersion) for page in config.getElementsByTagName('page'): page_name = page.attributes['name'].value page_id = int(page.attributes['id'].value) # normal pages if page_name != 'mainPanel': app.debug_print("loading config page : %s" % page_name) for node in page.getElementsByTagName('value'): id = node.attributes['id'].value # make sure element exists before setting it if hasattr(pages[page_id], id): id = getattr(pages[page_id], id) else: continue type = node.attributes['type'].value try: value = node.childNodes[0].nodeValue except IndexError: value = None self.__set_widget_value(id, type, value) # adjustments if needed if hasattr(pages[page_id], 'on_config_load'): pages[page_id].on_config_load() # main page else: app.debug_print("loading renamer config") # cleanup before loading main.renamer.view.destroy_all_operations() # load values for op in page.getElementsByTagName('operation'): type = op.attributes['type'].value type = operations.get_translated_name(type) app.debug_print("loading operation type : %s" % type) # make sure it's a valid type if type == False: continue id = op.attributes['id'].value # initialise object, passing parameters params = self.__get_operation_params(op) main.renamer.view.stack_operation(type, id, params) # apply node values to widgets operation = main.renamer.operations[int(id)] for node in op.childNodes: if node.nodeType == 1 and node.nodeName != "parameters": self.__apply_values(operation, node) # apply each operation's post load routine if hasattr(operation, 'on_config_load'): operation.on_config_load()
def __create_file(self): """Create an XML configuration file.""" datetime = utils.udate(main, '%Y-%m-%d %H:%M:%S', time.localtime()) cfgFile = u'<?xml version="1.0" encoding="UTF-8"?>\n' cfgFile += u'<configuration application="Métamorphose-2" ' + \ 'version="%s" datetime="%s">\n'\ % (app.version, datetime) # get info for 'normal' notebook tabs pages = utils.get_notebook_page_names(main) for i in (0, 2, 3): # section header is page name cfgFile += u'\t<page id="%s" name="%s">\n' % (i, pages[i].GetName()) for child in pages[i].GetChildren(): try: id, type, value = self.__get_child_values(child) except TypeError: pass else: cfgFile += u'\t\t<value id="%s" type="%s">%s</value>\n'\ % (id, type, value) cfgFile += u'\t</page>\n' # get renaming operations cfgFile += u'\t<page id="1" name="%s">\n' % pages[1].GetName() cfgFile += self._renaming_ops_to_xml() cfgFile += "\t</page>\n</configuration>\n" return cfgFile