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"))
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'}