add 'Add Commands' extension

pull/293/head
Lex Neva 2018-08-24 16:29:13 -04:00
rodzic 7f9208ae2a
commit 53f92df056
8 zmienionych plików z 80 dodań i 13 usunięć

Wyświetl plik

@ -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):

Wyświetl plik

@ -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]

Wyświetl plik

@ -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

Wyświetl plik

@ -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()))

Wyświetl plik

@ -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

Wyświetl plik

@ -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>

Wyświetl plik

@ -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>

Wyświetl plik

@ -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>