summaryrefslogtreecommitdiff
path: root/lib/extensions/group_commands.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/extensions/group_commands.py')
-rw-r--r--lib/extensions/group_commands.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/lib/extensions/group_commands.py b/lib/extensions/group_commands.py
new file mode 100644
index 00000000..af1f9fb1
--- /dev/null
+++ b/lib/extensions/group_commands.py
@@ -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
+ })