summaryrefslogtreecommitdiff
path: root/lib/extensions/remove_embroidery_settings.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/extensions/remove_embroidery_settings.py')
-rw-r--r--lib/extensions/remove_embroidery_settings.py15
1 files changed, 7 insertions, 8 deletions
diff --git a/lib/extensions/remove_embroidery_settings.py b/lib/extensions/remove_embroidery_settings.py
index 223e4811..31c15cd9 100644
--- a/lib/extensions/remove_embroidery_settings.py
+++ b/lib/extensions/remove_embroidery_settings.py
@@ -46,22 +46,21 @@ class RemoveEmbroiderySettings(InkstitchExtension):
def remove_commands(self):
if not self.svg.selected:
- # we are not able to grab commands by a specific id
- # so let's move through every object instead and see if it has a command
- xpath = ".//svg:path|.//svg:circle|.//svg:rect|.//svg:ellipse"
- elements = find_elements(self.svg, xpath)
+ # remove intact command groups
+ xpath = ".//svg:g[starts-with(@id,'command_group')]"
+ groups = find_elements(self.svg, xpath)
+ for group in groups:
+ group.getparent().remove(group)
else:
elements = self.get_selected_elements()
-
- if elements:
for element in elements:
for command in find_commands(element):
group = command.connector.getparent()
group.getparent().remove(group)
if not self.svg.selected:
- # remove standalone commands
- standalone_commands = ".//svg:use[starts-with(@xlink:href, '#inkstitch_')]"
+ # remove standalone commands and ungrouped object commands
+ standalone_commands = ".//svg:use[starts-with(@xlink:href, '#inkstitch_')]|.//svg:path[starts-with(@id, 'command_connector')]"
self.remove_elements(standalone_commands)
# let's remove the symbols (defs), we won't need them in the document