Merge pull request #3617 from fonttools/visit-param-ui-labels

NameRecordVisitor: include whole sequence of character variants' UI labels, not just the first
This commit is contained in:
Cosimo Lupo 2024-08-30 18:34:46 +01:00 committed by GitHub
commit b3520722ec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1175,17 +1175,8 @@ class NameRecordVisitor(TTVisitor):
@NameRecordVisitor.register_attrs(
(
(otTables.FeatureParamsSize, ("SubfamilyID", "SubfamilyNameID")),
(otTables.FeatureParamsSize, ("SubfamilyNameID",)),
(otTables.FeatureParamsStylisticSet, ("UINameID",)),
(
otTables.FeatureParamsCharacterVariants,
(
"FeatUILabelNameID",
"FeatUITooltipTextNameID",
"SampleTextNameID",
"FirstParamUILabelNameID",
),
),
(otTables.STAT, ("ElidedFallbackNameID",)),
(otTables.AxisRecord, ("AxisNameID",)),
(otTables.AxisValue, ("ValueNameID",)),
@ -1197,6 +1188,22 @@ def visit(visitor, obj, attr, value):
visitor.seen.add(value)
@NameRecordVisitor.register(otTables.FeatureParamsCharacterVariants)
def visit(visitor, obj):
for attr in ("FeatUILabelNameID", "FeatUITooltipTextNameID", "SampleTextNameID"):
value = getattr(obj, attr)
visitor.seen.add(value)
# also include the sequence of UI strings for individual variants, if any
if obj.FirstParamUILabelNameID == 0 or obj.NumNamedParameters == 0:
return
visitor.seen.update(
range(
obj.FirstParamUILabelNameID,
obj.FirstParamUILabelNameID + obj.NumNamedParameters,
)
)
@NameRecordVisitor.register(ttLib.getTableClass("fvar"))
def visit(visitor, obj):
for inst in obj.instances: