Esempio n. 1
0
    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()
Esempio n. 2
0
    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()
Esempio n. 3
0
    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
Esempio n. 4
0
    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