diff options
| author | Lex Neva <github.com@lexneva.name> | 2018-08-24 16:29:13 -0400 |
|---|---|---|
| committer | Lex Neva <github.com@lexneva.name> | 2018-08-24 20:56:41 -0400 |
| commit | 53f92df05635668783a6b9407a01326de14a1291 (patch) | |
| tree | bd249267b3cdb965b9c61f644058d679bab48e67 | |
| parent | 7f9208ae2a97026019ff36d28faf37a5c1b9b270 (diff) | |
add 'Add Commands' extension
| -rw-r--r-- | lib/commands.py | 3 | ||||
| -rw-r--r-- | lib/extensions/__init__.py | 2 | ||||
| -rw-r--r-- | lib/extensions/global_commands.py | 14 | ||||
| -rwxr-xr-x | lib/inx/extensions.py | 9 | ||||
| -rw-r--r-- | messages.po | 29 | ||||
| -rw-r--r-- | templates/global_commands.inx | 26 | ||||
| -rw-r--r-- | templates/layer_commands.inx | 4 | ||||
| -rw-r--r-- | templates/object_commands.inx | 6 |
8 files changed, 80 insertions, 13 deletions
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 @@ +<?xml version="1.0" encoding="UTF-8"?> +<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension"> + <name>{% trans %}Add Commands{% endtrans %}</name> + <id>org.inkstitch.global_commands.{{ locale }}</id> + <dependency type="executable" location="extensions">inkstitch.py</dependency> + <dependency type="executable" location="extensions">inkex.py</dependency> + <param name="description" type="description">{% trans %}These commands affect the entire embroidery design.{% endtrans %}</param> + {% for command, description in global_commands %} + <param name="{{ command }}" type="boolean" _gui-text="{{ _(description) }}">false</param> + {% endfor %} + <param name="extension" type="string" gui-hidden="true">global_commands</param> + <effect> + <object-type>all</object-type> + <effects-menu> + <submenu name="Ink/Stitch"> + <submenu name="{% trans %}English{% endtrans %}"> + {# L10N Inkscape submenu under Extensions -> Ink/Stitch #} + <submenu name="{% trans %}Commands{% endtrans %}" /> + </submenu> + </submenu> + </effects-menu> + </effect> + <script> + <command reldir="extensions" interpreter="python">inkstitch.py</command> + </script> +</inkscape-extension> 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 @@ <object-type>all</object-type> <effects-menu> <submenu name="Ink/Stitch"> - <submenu name="{% trans %}English{% endtrans %}" /> + <submenu name="{% trans %}English{% endtrans %}"> + <submenu name="{% trans %}Commands{% endtrans %}" /> + </submenu> </submenu> </effects-menu> </effect> 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 @@ <?xml version="1.0" encoding="UTF-8"?> <inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension"> - <name>{% trans %}Attach Commands{% endtrans %}</name> + <name>{% trans %}Attach Commands to Selected Objects{% endtrans %}</name> <id>org.inkstitch.commands.{{ locale }}</id> <dependency type="executable" location="extensions">inkstitch.py</dependency> <dependency type="executable" location="extensions">inkex.py</dependency> @@ -12,7 +12,9 @@ <object-type>all</object-type> <effects-menu> <submenu name="Ink/Stitch"> - <submenu name="{% trans %}English{% endtrans %}" /> + <submenu name="{% trans %}English{% endtrans %}"> + <submenu name="{% trans %}Commands{% endtrans %}" /> + </submenu> </submenu> </effects-menu> </effect> |
