From 53f92df05635668783a6b9407a01326de14a1291 Mon Sep 17 00:00:00 2001 From: Lex Neva Date: Fri, 24 Aug 2018 16:29:13 -0400 Subject: add 'Add Commands' extension --- lib/commands.py | 3 ++- lib/extensions/__init__.py | 2 ++ lib/extensions/global_commands.py | 14 ++++++++++++++ lib/inx/extensions.py | 9 +++++++-- messages.po | 29 ++++++++++++++++++++++------- templates/global_commands.inx | 26 ++++++++++++++++++++++++++ templates/layer_commands.inx | 4 +++- templates/object_commands.inx | 6 ++++-- 8 files changed, 80 insertions(+), 13 deletions(-) create mode 100644 lib/extensions/global_commands.py create mode 100644 templates/global_commands.inx diff --git a/lib/commands.py b/lib/commands.py index 3a4ca230..db3c8a71 100644 --- a/lib/commands.py +++ b/lib/commands.py @@ -31,11 +31,12 @@ COMMANDS = { N_("origin"): N_("Origin for exported embroidery files"), # L10N command that affects entire document - N_("stop_point"): N_("Jump destination for Stop commands (a.k.a. \"Frame Out position\")."), + N_("stop_position"): N_("Jump destination for Stop commands (a.k.a. \"Frame Out position\")."), } OBJECT_COMMANDS = ["fill_start", "fill_end", "stop", "trim", "ignore_object"] LAYER_COMMANDS = ["ignore_layer"] +GLOBAL_COMMANDS = ["origin", "stop_position"] class CommandParseError(Exception): diff --git a/lib/extensions/__init__.py b/lib/extensions/__init__.py index cf0313b2..5b72ecb3 100644 --- a/lib/extensions/__init__.py +++ b/lib/extensions/__init__.py @@ -9,6 +9,7 @@ from zip import Zip from flip import Flip from object_commands import ObjectCommands from layer_commands import LayerCommands +from global_commands import GlobalCommands from convert_to_satin import ConvertToSatin __all__ = extensions = [Embroider, @@ -22,4 +23,5 @@ __all__ = extensions = [Embroider, Flip, ObjectCommands, LayerCommands, + GlobalCommands, ConvertToSatin] diff --git a/lib/extensions/global_commands.py b/lib/extensions/global_commands.py new file mode 100644 index 00000000..55848be9 --- /dev/null +++ b/lib/extensions/global_commands.py @@ -0,0 +1,14 @@ +import inkex + +from .layer_commands import LayerCommands +from ..commands import GLOBAL_COMMANDS + + +# It's a bit weird subclassing this from LayerCommands, but global commands +# must still be placed in a layer. That means the two extensions +# do the same thing and the code is the same. We keep this as separate +# extensions because we want the user to understand that global commands +# affect the entire document, not just the current layer. + +class GlobalCommands(LayerCommands): + COMMANDS = GLOBAL_COMMANDS diff --git a/lib/inx/extensions.py b/lib/inx/extensions.py index 4b4b3c13..d1a0c7f3 100755 --- a/lib/inx/extensions.py +++ b/lib/inx/extensions.py @@ -3,7 +3,7 @@ import pyembroidery from .utils import build_environment, write_inx_file from .outputs import pyembroidery_output_formats from ..extensions import extensions, Input, Output -from ..commands import LAYER_COMMANDS, OBJECT_COMMANDS, COMMANDS +from ..commands import LAYER_COMMANDS, OBJECT_COMMANDS, GLOBAL_COMMANDS, COMMANDS def layer_commands(): @@ -13,6 +13,10 @@ def layer_commands(): return [(command, COMMANDS[command]) for command in LAYER_COMMANDS] +def global_commands(): + return [(command, COMMANDS[command]) for command in GLOBAL_COMMANDS] + + def object_commands(): return [(command, COMMANDS[command]) for command in OBJECT_COMMANDS] @@ -35,4 +39,5 @@ def generate_extension_inx_files(): write_inx_file(name, template.render(formats=pyembroidery_output_formats(), debug_formats=pyembroidery_debug_formats(), layer_commands=layer_commands(), - object_commands=object_commands())) + object_commands=object_commands(), + global_commands=global_commands())) diff --git a/messages.po b/messages.po index d5dbe507..9105da77 100644 --- a/messages.po +++ b/messages.po @@ -82,14 +82,14 @@ msgstr "" #. command that affects entire document #: lib/commands.py:34 -msgid "stop_point" +msgid "stop_position" msgstr "" #: lib/commands.py:34 msgid "Jump destination for Stop commands (a.k.a. \"Frame Out position\")." msgstr "" -#: lib/commands.py:189 +#: lib/commands.py:190 #, python-format msgid "" "Error: there is more than one %(command)s command in the document, but " @@ -101,7 +101,7 @@ msgstr "" #. command name to them. Contents of %(description)s are in a separate #. translation #. string. -#: lib/commands.py:196 +#: lib/commands.py:197 #, python-format msgid "%(command)s: %(description)s" msgstr "" @@ -1176,9 +1176,10 @@ msgstr "" #. to your language's word for its language, e.g. "EspaƱol" for the spanish #. translation. #: templates/convert_to_satin.inx:12 templates/embroider.inx:24 -#: templates/flip.inx:12 templates/install.inx:12 -#: templates/layer_commands.inx:16 templates/object_commands.inx:15 -#: templates/params.inx:12 templates/print.inx:12 templates/simulate.inx:12 +#: templates/flip.inx:12 templates/global_commands.inx:16 +#: templates/install.inx:12 templates/layer_commands.inx:16 +#: templates/object_commands.inx:15 templates/params.inx:12 +#: templates/print.inx:12 templates/simulate.inx:12 msgid "English" msgstr "" @@ -1224,6 +1225,20 @@ msgstr "" msgid "Flip Satin Columns" msgstr "" +#: templates/global_commands.inx:3 +msgid "Add Commands" +msgstr "" + +#: templates/global_commands.inx:7 +msgid "These commands affect the entire embroidery design." +msgstr "" + +#. Inkscape submenu under Extensions -> Ink/Stitch +#: templates/global_commands.inx:18 templates/layer_commands.inx:17 +#: templates/object_commands.inx:16 +msgid "Commands" +msgstr "" + #: templates/input.inx:11 #, python-format msgid "convert %(file_extension)s file to Ink/Stitch manual-stitch paths" @@ -1242,7 +1257,7 @@ msgid "Commands will be added to the currently-selected layer." msgstr "" #: templates/object_commands.inx:3 -msgid "Attach Commands" +msgid "Attach Commands to Selected Objects" msgstr "" #: templates/output.inx:11 diff --git a/templates/global_commands.inx b/templates/global_commands.inx new file mode 100644 index 00000000..eda2721d --- /dev/null +++ b/templates/global_commands.inx @@ -0,0 +1,26 @@ + + + {% trans %}Add Commands{% endtrans %} + org.inkstitch.global_commands.{{ locale }} + inkstitch.py + inkex.py + {% trans %}These commands affect the entire embroidery design.{% endtrans %} + {% for command, description in global_commands %} + false + {% endfor %} + global_commands + + all + + + + {# L10N Inkscape submenu under Extensions -> Ink/Stitch #} + + + + + + + diff --git a/templates/layer_commands.inx b/templates/layer_commands.inx index a6c0283c..f1a8f987 100644 --- a/templates/layer_commands.inx +++ b/templates/layer_commands.inx @@ -13,7 +13,9 @@ all - + + + diff --git a/templates/object_commands.inx b/templates/object_commands.inx index 6de2a3fc..68535db2 100644 --- a/templates/object_commands.inx +++ b/templates/object_commands.inx @@ -1,6 +1,6 @@ - {% trans %}Attach Commands{% endtrans %} + {% trans %}Attach Commands to Selected Objects{% endtrans %} org.inkstitch.commands.{{ locale }} inkstitch.py inkex.py @@ -12,7 +12,9 @@ all - + + + -- cgit v1.2.3