diff options
Diffstat (limited to 'lib/extensions/transfer_params.py')
| -rw-r--r-- | lib/extensions/transfer_params.py | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/lib/extensions/transfer_params.py b/lib/extensions/transfer_params.py deleted file mode 100644 index c10393e2..00000000 --- a/lib/extensions/transfer_params.py +++ /dev/null @@ -1,49 +0,0 @@ -# Authors: see git history -# -# Copyright (c) 2021 Authors -# Licensed under the GNU GPL version 3.0 or later. See the file LICENSE for details. - -import inkex - -from ..i18n import _ -from ..svg.tags import EMBROIDERABLE_TAGS, SVG_GROUP_TAG -from .base import InkstitchExtension - - -class TransferParams(InkstitchExtension): - # Transfer inkstitch namespaced attributes from the first selected element to the rest of selection - - def effect(self): - objects = self.get_selected_in_order() - if len(objects) < 2: - inkex.errormsg(_("This function transfers Ink/Stitch parameters from the first selected element to the rest of the selection. " - "Please select at least two elements.")) - return - - copy_from = objects[0] - copy_from_attribs = self.get_inkstitch_attributes(copy_from) - - copy_to_selection = objects[1:] - self.copy_to = [] - - # extract copy_to group elements - for element in copy_to_selection: - if element.tag == SVG_GROUP_TAG: - for descendant in element.iterdescendants(EMBROIDERABLE_TAGS): - self.copy_to.append(descendant) - elif element.tag in EMBROIDERABLE_TAGS: - self.copy_to.append(element) - - # remove inkstitch params from copy_to elements - for element in self.copy_to: - copy_to_attribs = self.get_inkstitch_attributes(element) - for attrib in copy_to_attribs: - element.pop(attrib) - - # paste inkstitch params from copy_from element to copy_to elements - for attrib in copy_from_attribs: - for element in self.copy_to: - element.attrib[attrib] = copy_from_attribs[attrib] - - def get_inkstitch_attributes(self, node): - return {k: v for k, v in node.attrib.iteritems() if inkex.NSS['inkstitch'] in k} |
