group command extension

pull/1254/head
Kaalleen 2021-06-27 22:47:43 +02:00
rodzic c602c4c517
commit 2f54ff2a43
7 zmienionych plików z 74 dodań i 6 usunięć

Wyświetl plik

@ -6,7 +6,7 @@
from copy import deepcopy
from itertools import chain
from inkex import paths, NSS
from inkex import NSS, paths
from shapely import affinity as shaffinity
from shapely import geometry as shgeo
from shapely.ops import nearest_points

Wyświetl plik

@ -3,7 +3,7 @@
# Copyright (c) 2010 Authors
# Licensed under the GNU GPL version 3.0 or later. See the file LICENSE for details.
from ..commands import is_command
from ..commands import group_commands, is_command
from ..svg.tags import (EMBROIDERABLE_TAGS, INKSTITCH_ATTRIBS, SVG_IMAGE_TAG,
SVG_PATH_TAG, SVG_POLYLINE_TAG, SVG_TEXT_TAG)
from .auto_fill import AutoFill
@ -17,7 +17,6 @@ from .polyline import Polyline
from .satin_column import SatinColumn
from .stroke import Stroke
from .text import TextObject
from ..commands import group_commands
def node_to_elements(node): # noqa: C901

Wyświetl plik

@ -14,6 +14,7 @@ from .duplicate_params import DuplicateParams
from .embroider_settings import EmbroiderSettings
from .flip import Flip
from .global_commands import GlobalCommands
from .group_commands import GroupCommands
from .import_threadlist import ImportThreadlist
from .input import Input
from .install import Install
@ -41,6 +42,7 @@ __all__ = extensions = [StitchPlanPreview,
Zip,
Flip,
ObjectCommands,
GroupCommands,
LayerCommands,
GlobalCommands,
ConvertToSatin,

Wyświetl plik

@ -12,7 +12,7 @@ import inkex
from lxml import etree
from stringcase import snakecase
from ..commands import is_command, layer_commands, group_commands
from ..commands import group_commands, is_command, layer_commands
from ..elements import EmbroideryElement, nodes_to_elements
from ..elements.clone import is_clone
from ..i18n import _

Wyświetl plik

@ -0,0 +1,41 @@
# Authors: see git history
#
# Copyright (c) 2010 Authors
# Licensed under the GNU GPL version 3.0 or later. See the file LICENSE for details.
import inkex
from lxml import etree
from ..commands import GROUP_COMMANDS, ensure_symbol, get_command_description
from ..i18n import _
from ..svg import get_correction_transform
from ..svg.tags import INKSCAPE_LABEL, SVG_USE_TAG, XLINK_HREF
from .commands import CommandsExtension
class GroupCommands(CommandsExtension):
COMMANDS = GROUP_COMMANDS
def effect(self):
commands = [command for command in self.COMMANDS if getattr(self.options, command)]
if not commands:
inkex.errormsg(_("Please choose one or more commands to add."))
return
correction_transform = get_correction_transform(self.svg.get_current_layer(), child=True)
for i, command in enumerate(commands):
ensure_symbol(self.document, command)
etree.SubElement(self.svg.get_current_layer(), SVG_USE_TAG,
{
"id": self.uniqueId("use"),
INKSCAPE_LABEL: _("Ink/Stitch Command") + ": %s" % get_command_description(command),
XLINK_HREF: "#inkstitch_%s" % command,
"height": "100%",
"width": "100%",
"x": str(i * 20),
"y": "-10",
"transform": correction_transform
})

Wyświetl plik

@ -5,8 +5,8 @@
import pyembroidery
from ..commands import (COMMANDS, GLOBAL_COMMANDS, LAYER_COMMANDS,
OBJECT_COMMANDS)
from ..commands import (COMMANDS, GLOBAL_COMMANDS, GROUP_COMMANDS,
LAYER_COMMANDS, OBJECT_COMMANDS)
from ..extensions import Input, Output, extensions
from ..threads import ThreadCatalog
from .outputs import pyembroidery_output_formats
@ -24,6 +24,10 @@ def global_commands():
return [(command, COMMANDS[command]) for command in GLOBAL_COMMANDS]
def group_commands():
return [(command, COMMANDS[command]) for command in GROUP_COMMANDS]
def object_commands():
return [(command, COMMANDS[command]) for command in OBJECT_COMMANDS]
@ -51,6 +55,7 @@ def generate_extension_inx_files():
write_inx_file(name, template.render(formats=pyembroidery_output_formats(),
debug_formats=pyembroidery_debug_formats(),
threadcatalog=threadcatalog(),
group_commands=group_commands(),
layer_commands=layer_commands(),
object_commands=object_commands(),
global_commands=global_commands()))

Wyświetl plik

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
<name>{% trans %}Add Group Commands{% endtrans %}</name>
<id>org.inkstitch.group_commands.{{ locale }}</id>
<param name="description" type="description">{% trans %}Commands will be added to the currently-selected group.{% endtrans %}</param>
{% for command, description in group_commands %}
<param name="{{ command }}" type="boolean" _gui-text="{{ _(description) }}">false</param>
{% endfor %}
<param name="extension" type="string" gui-hidden="true">group_commands</param>
<effect>
<object-type>all</object-type>
<effects-menu>
<submenu name="Ink/Stitch">
<submenu name="{% trans %}Commands{% endtrans %}" />
</submenu>
</effects-menu>
</effect>
<script>
{{ command_tag | safe }}
</script>
</inkscape-extension>