def draw(self, context):
        _LOG.enter()

        default_json = LocationService.get_user_config(
            "importer_presets.default.json")
        if not os.path.exists(default_json):
            _LOG.warn(
                "The default importer presets do not exist. Will create these."
            )
            excludes = ["available_presets", "name"]
            IMPORTER_PRESETS_PROPERTIES.serialize_to_json(
                default_json, entity_reference=context, exclude_keys=excludes)
        else:
            _LOG.trace("Default presets exist")

        if UiService.get_importer_presets_panel_list() is None:
            UiService.rebuild_importer_presets_panel_list()

        layout = self.layout
        scene = context.scene

        self._load_save_box(
            scene, self._create_box(layout, "Load/save presets", "MODIFIER"))
        self._what_box(scene,
                       self._create_box(layout, "What to import", "MODIFIER"))
        self._general_box(scene, self._create_box(layout, "General",
                                                  "MODIFIER"))
        self._mesh_and_groups_box(
            scene, self._create_box(layout, "Mesh and vGroups", "MODIFIER"))
        self._materials_box(scene,
                            self._create_box(layout, "Materials", "MODIFIER"))
        self._network_box(scene, self._create_box(layout, "Network",
                                                  "MODIFIER"))
示例#2
0
    def execute(self, context):
        _LOG.enter()
        name = IMPORTER_PRESETS_PROPERTIES.get_value("name", entity_reference=context.scene)
        if not name is None:
            name = str(name).strip()
        if name == "" or name is None:
            self.report({'ERROR'}, "A valid name must be given")
            return {'FINISHED'}
        if " " in str(name):
            self.report({'ERROR'}, "Presets names should not contain spaces")
            return {'FINISHED'}

        confdir = LocationService.get_user_config()
        file_name = os.path.join(confdir, "importer_presets." + name + ".json")
        if os.path.exists(file_name):
            self.report({'ERROR'}, "Presets with that name already exist")
            return {'FINISHED'}

        excludes = ["available_presets", "name"]
        IMPORTER_PRESETS_PROPERTIES.serialize_to_json(file_name, entity_reference=context.scene, exclude_keys=excludes)

        UiService.rebuild_importer_presets_panel_list()
        UiService.rebuild_importer_panel_list()
        self.report({'INFO'}, "Presets were written to " + file_name)
        return {'FINISHED'}