summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaalleen <36401965+kaalleen@users.noreply.github.com>2021-04-02 19:05:34 +0200
committerGitHub <noreply@github.com>2021-04-02 19:05:34 +0200
commit8a696e1871fc4a75c51ba53433c55f4d240a81bb (patch)
treeeb0aba3e8c412f09cd6e0189e5e7005ddc0e142c
parent354759b6caa114a67b4598ca332b06bdb03971eb (diff)
Lettering: ability to force letter case (#1113)
-rw-r--r--lib/extensions/lettering_generate_json.py2
-rw-r--r--lib/lettering/font.py6
-rw-r--r--templates/lettering_generate_json.xml5
3 files changed, 13 insertions, 0 deletions
diff --git a/lib/extensions/lettering_generate_json.py b/lib/extensions/lettering_generate_json.py
index 3822b0c2..9296751c 100644
--- a/lib/extensions/lettering_generate_json.py
+++ b/lib/extensions/lettering_generate_json.py
@@ -24,6 +24,7 @@ class LetteringGenerateJson(InkstitchExtension):
self.arg_parser.add_argument("-d", "--font-description", type=str, default="Description", dest="font_description")
self.arg_parser.add_argument("-s", "--auto-satin", type=Boolean, default="true", dest="auto_satin")
self.arg_parser.add_argument("-r", "--reversible", type=Boolean, default="true", dest="reversible")
+ self.arg_parser.add_argument("-u", "--letter-case", type=str, default="", dest="letter_case")
self.arg_parser.add_argument("-g", "--default-glyph", type=str, default="", dest="default_glyph")
self.arg_parser.add_argument("-i", "--min-scale", type=float, default=1.0, dest="min_scale")
self.arg_parser.add_argument("-a", "--max-scale", type=float, default=1.0, dest="max_scale")
@@ -68,6 +69,7 @@ class LetteringGenerateJson(InkstitchExtension):
'leading': leading,
'auto_satin': self.options.auto_satin,
'reversible': self.options.reversible,
+ 'letter_case': self.options.letter_case,
'default_glyph': self.options.default_glyph,
'min_scale': round(self.options.min_scale, 1),
'max_scale': round(self.options.max_scale, 1),
diff --git a/lib/lettering/font.py b/lib/lettering/font.py
index b1979067..b47e35c4 100644
--- a/lib/lettering/font.py
+++ b/lib/lettering/font.py
@@ -106,6 +106,7 @@ class Font(object):
name = localized_font_metadata('name', '')
description = localized_font_metadata('description', '')
+ letter_case = font_metadata('letter_case', '')
default_glyph = font_metadata('defalt_glyph', "�")
leading = font_metadata('leading', 100)
kerning_pairs = font_metadata('kerning_pairs', {})
@@ -229,6 +230,11 @@ class Font(object):
last_character = None
for character in line:
+ if self.letter_case == "upper":
+ character = character.upper()
+ elif self.letter_case == "lower":
+ character = character.lower()
+
if character == " ":
position.x += self.word_spacing
last_character = None
diff --git a/templates/lettering_generate_json.xml b/templates/lettering_generate_json.xml
index d6fb1e9a..570184cb 100644
--- a/templates/lettering_generate_json.xml
+++ b/templates/lettering_generate_json.xml
@@ -33,6 +33,11 @@
gui-description="{% trans %}Disable if you defined manual routing in your font.{% endtrans %}" indent="1">true</param>
<param type="bool" name="reversible" gui-text="{% trans %}Reversible{% endtrans %}"
gui-description='{% trans %}If disabled back and forth stitching will not be possile for this font.{% endtrans %}' indent="1">true</param>
+ <param name="letter-case" type="optiongroup" appearance="combo" gui-text="{% trans %}Force letter case{% endtrans %}" indent="1">
+ <option value="">{% trans %}No{% endtrans %}</option>
+ <option value="upper">{% trans %}Upper{% endtrans %}</option>
+ <option value="lower">{% trans %}Lower{% endtrans %}</option>
+ </param>
</vbox>
<vbox indent="20">
<param name="min-scale" type="float" precision="1" min="0.1" max="1" gui-text="{% trans %}Min Scale{% endtrans %}" indent="1">1</param>