From 66c4a0e2169a51e20c9143586c72aa64d4dfde8f Mon Sep 17 00:00:00 2001 From: Frederik Berlaen Date: Fri, 18 Oct 2024 12:35:02 +0200 Subject: [PATCH] Improve adding/changing instances with an empty family or styleName --- .../lib/designspaceEditor/ui.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/DesignspaceEditor2.roboFontExt/lib/designspaceEditor/ui.py b/DesignspaceEditor2.roboFontExt/lib/designspaceEditor/ui.py index 312e6d4..cf51f83 100644 --- a/DesignspaceEditor2.roboFontExt/lib/designspaceEditor/ui.py +++ b/DesignspaceEditor2.roboFontExt/lib/designspaceEditor/ui.py @@ -132,7 +132,9 @@ def removeInstance(self, instanceDescriptor): self.instances.remove(instanceDescriptor) def addInstanceDescriptor(self, **kwargs): - if "familyName" not in kwargs: + familyName = kwargs.get("familyName") + styleName = kwargs.get("styleName") + if familyName is None: if self.instances: familyName = self.instances[0].familyName elif self.sources: @@ -140,8 +142,9 @@ def addInstanceDescriptor(self, **kwargs): else: familyName = "NewFamily" kwargs["familyName"] = familyName - if "styleName" not in kwargs: - kwargs["styleName"] = f"Style_{len(self.instances)}" + if styleName is None: + styleName = kwargs["styleName"] = f"Style_{len(self.instances)}" + if "filename" not in kwargs: filename = postScriptNameTransformer(kwargs["familyName"], kwargs["styleName"]) kwargs["filename"] = os.path.join(getExtensionDefault('instanceFolderName', 'instances'), f"{filename}.ufo") @@ -252,7 +255,11 @@ def __init__(self, parentWindow, operator, instances): # update the path attribute in all given instanceDescriptors for item in instances: instanceDescriptor = item["object"] - instanceDescriptor.path = os.path.abspath(os.path.join(os.path.dirname(self.operator.path), instanceDescriptor.filename)) + # filename could be None + filename = instanceDescriptor.filename + if filename is None: + filename = fileNameForInstance(instanceDescriptor) + instanceDescriptor.path = os.path.abspath(os.path.join(os.path.dirname(self.operator.path), filename)) self.instances = instances self.w = vanilla.Sheet((350, 140), parentWindow=parentWindow)