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'}
def draw(self, context): _LOG.enter() layout = self.layout scn = context.scene from mpfb.ui.eyesettings.eyesettingspanel import ensure_eye_settings_default_exists ensure_eye_settings_default_exists() if UiService.get_importer_panel_list() is None: UiService.rebuild_importer_panel_list() if UiService.get_importer_enhanced_settings_panel_list() is None: UiService.rebuild_importer_enhanced_settings_panel_list() if UiService.get_importer_eye_settings_panel_list() is None: UiService.rebuild_importer_eye_settings_panel_list() IMPORTER_PROPERTIES.draw_properties(scn, layout, [ "presets_for_import", "skin_settings_for_import", "eye_settings_for_import" ]) layout.operator('mpfb.importer_import_body')