kopia lustrzana https://github.com/inkstitch/inkstitch
reset embroidery settings (#506)
rodzic
6873098dee
commit
0c0874b91c
|
@ -2,17 +2,18 @@ from auto_satin import AutoSatin
|
|||
from convert_to_satin import ConvertToSatin
|
||||
from cut_satin import CutSatin
|
||||
from embroider import Embroider
|
||||
from lib.extensions.troubleshoot import Troubleshoot
|
||||
from flip import Flip
|
||||
from global_commands import GlobalCommands
|
||||
from input import Input
|
||||
from install import Install
|
||||
from layer_commands import LayerCommands
|
||||
from lettering import Lettering
|
||||
from lib.extensions.troubleshoot import Troubleshoot
|
||||
from object_commands import ObjectCommands
|
||||
from output import Output
|
||||
from params import Params
|
||||
from print_pdf import Print
|
||||
from remove_embroidery_settings import RemoveEmbroiderySettings
|
||||
from simulate import Simulate
|
||||
from zip import Zip
|
||||
|
||||
|
@ -33,4 +34,5 @@ __all__ = extensions = [Embroider,
|
|||
CutSatin,
|
||||
AutoSatin,
|
||||
Lettering,
|
||||
Troubleshoot]
|
||||
Troubleshoot,
|
||||
RemoveEmbroiderySettings]
|
||||
|
|
|
@ -0,0 +1,79 @@
|
|||
import inkex
|
||||
|
||||
from ..commands import find_commands
|
||||
from .base import InkstitchExtension
|
||||
|
||||
|
||||
class RemoveEmbroiderySettings(InkstitchExtension):
|
||||
def __init__(self, *args, **kwargs):
|
||||
InkstitchExtension.__init__(self, *args, **kwargs)
|
||||
self.OptionParser.add_option("-p", "--del_params", dest="del_params", type="inkbool", default=True)
|
||||
self.OptionParser.add_option("-c", "--del_commands", dest="del_commands", type="inkbool", default=False)
|
||||
self.OptionParser.add_option("-d", "--del_print", dest="del_print", type="inkbool", default=False)
|
||||
|
||||
def effect(self):
|
||||
if self.options.del_params:
|
||||
self.remove_params()
|
||||
if self.options.del_commands:
|
||||
self.remove_commands()
|
||||
if self.options.del_print:
|
||||
self.remove_print_settings()
|
||||
|
||||
def remove_print_settings(self):
|
||||
print_settings = "svg:metadata//*"
|
||||
print_settings = self.find_elements(print_settings)
|
||||
for print_setting in print_settings:
|
||||
if print_setting.prefix == "inkstitch":
|
||||
self.remove_element(print_setting)
|
||||
|
||||
def remove_params(self):
|
||||
if not self.selected:
|
||||
xpath = ".//svg:path"
|
||||
elements = self.find_elements(xpath)
|
||||
self.remove_embroider_attributes(elements)
|
||||
else:
|
||||
for node in self.selected:
|
||||
elements = self.get_selected_elements(node)
|
||||
self.remove_embroider_attributes(elements)
|
||||
|
||||
def remove_commands(self):
|
||||
if not self.selected:
|
||||
commands = ".//*[starts-with(@inkscape:label, 'Ink/Stitch Command:')]"
|
||||
self.remove_elements(commands)
|
||||
|
||||
symbols = ".//*[starts-with(@id, 'inkstitch_')]"
|
||||
self.remove_elements(symbols)
|
||||
else:
|
||||
for node in self.selected:
|
||||
elements = self.get_selected_elements(node)
|
||||
for element in elements:
|
||||
for command in find_commands(element):
|
||||
group = command.connector.getparent()
|
||||
group.getparent().remove(group)
|
||||
|
||||
def get_selected_elements(self, element_id):
|
||||
xpath = ".//svg:path[@id='%s']" % element_id
|
||||
elements = self.find_elements(xpath)
|
||||
if not elements:
|
||||
xpath = ".//svg:g[@id='%s']//svg:path" % element_id
|
||||
elements = self.find_elements(xpath)
|
||||
return elements
|
||||
|
||||
def find_elements(self, xpath):
|
||||
svg = self.document.getroot()
|
||||
elements = svg.xpath(xpath, namespaces=inkex.NSS)
|
||||
return elements
|
||||
|
||||
def remove_elements(self, xpath):
|
||||
elements = self.find_elements(xpath)
|
||||
for element in elements:
|
||||
self.remove_element(element)
|
||||
|
||||
def remove_element(self, element):
|
||||
element.getparent().remove(element)
|
||||
|
||||
def remove_embroider_attributes(self, elements):
|
||||
for element in elements:
|
||||
for attrib in element.attrib:
|
||||
if attrib.startswith('embroider_'):
|
||||
del element.attrib[attrib]
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||
<name>{% trans %}Remove embroidery settings{% endtrans %}</name>
|
||||
<id>org.inkstitch.remove_embroidery_settings.{{ locale }}</id>
|
||||
<dependency type="executable" location="extensions">inkstitch.py</dependency>
|
||||
<dependency type="executable" location="extensions">inkex.py</dependency>
|
||||
<param name="description" type="description">{% trans %}Use this extension to remove the information Ink/Stitch has stored in your document. This can be especially useful if you copy and paste objects from an embroidery design into another document.{% endtrans %}</param>
|
||||
<param name="del_params" type="boolean" _gui-text="{% trans %}Remove Params{% endtrans %}"
|
||||
_gui-description="{% trans %}Removes params from selected objects or all objects if nothing is selected.{% endtrans %}">true</param>
|
||||
<param name="del_commands" type="boolean" _gui-text="{% trans %}Remove Commands{% endtrans %}"
|
||||
_gui-description="{% trans %}Removes visual commands from selected objects or all objects if nothing is selected.{% endtrans %}">false</param>
|
||||
<param name="del_print" type="boolean" _gui-text="{% trans %}Remove Print Settings from SVG metadata{% endtrans %}">false</param>
|
||||
<param name="extension" type="string" gui-hidden="true">remove_embroidery_settings</param>
|
||||
<effect>
|
||||
<object-type>all</object-type>
|
||||
<effects-menu>
|
||||
<submenu name="Ink/Stitch">
|
||||
</submenu>
|
||||
</effects-menu>
|
||||
</effect>
|
||||
<script>
|
||||
<command reldir="extensions" interpreter="python">inkstitch.py</command>
|
||||
</script>
|
||||
</inkscape-extension>
|
Ładowanie…
Reference in New Issue