X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=share%2Fextensions%2Fmarkers_strokepaint.py;h=bf5b530351f690b817f6c7fb4ff22f5d166e0d1d;hb=e095bbcf3bb11c98bfd63c8a1ac11f9ad8bc1f8a;hp=265b4d4338f1beeb7e5c625ef9e8b5b732a41bb2;hpb=a825bb04cf2b441c2cb2bd4770c4ed2c6d6b5e02;p=inkscape.git diff --git a/share/extensions/markers_strokepaint.py b/share/extensions/markers_strokepaint.py index 265b4d433..bf5b53035 100644 --- a/share/extensions/markers_strokepaint.py +++ b/share/extensions/markers_strokepaint.py @@ -26,8 +26,16 @@ class MyEffect(inkex.Effect): self.OptionParser.add_option("-m", "--modify", action="store", type="inkbool", dest="modify", default=False, - help="do not create a copy, modify the markers") - + help="Do not create a copy, modify the markers") + self.OptionParser.add_option("-t", "--type", + action="store", type="string", + dest="fill_type", default="stroke", + help="Replace the marker fill with the object stroke or fill color") + self.OptionParser.add_option("-a", "--alpha", + action="store", type="inkbool", + dest="assign_alpha", default=True, + help="Assign the object fill and stroke alpha to the marker") + def effect(self): defs = self.xpathSingle('/svg:svg//svg:defs') if defs == None: @@ -42,10 +50,18 @@ class MyEffect(inkex.Effect): continue stroke = style.get('stroke', '#000000') - + stroke_opacity = style.get('stroke-opacity', '1') + if (self.options.fill_type == "white"): + fill = "#FFFFFF" + fill_opacity = "1" + else: + fill = style.get('fill', '#000000') + fill_opacity = style.get('fill-opacity', '1') + for mprop in mprops: if style.has_key(mprop) and style[mprop] != 'none'and style[mprop][:5] == 'url(#': marker_id = style[mprop][5:-1] + try: old_mnode = self.xpathSingle('/svg:svg//svg:marker[@id="%s"]' % marker_id) if not self.options.modify: @@ -68,8 +84,20 @@ class MyEffect(inkex.Effect): cstyle = simplestyle.parseStyle(child.get('style')) if ('stroke' in cstyle and cstyle['stroke'] != 'none') or 'stroke' not in cstyle: cstyle['stroke'] = stroke + if (self.options.assign_alpha): + cstyle['stroke-opacity'] = stroke_opacity if ('fill' in cstyle and cstyle['fill'] != 'none') or 'fill' not in cstyle: - cstyle['fill'] = stroke + if (self.options.fill_type == "fill" or self.options.fill_type == "white" ): + cstyle['fill'] = fill + if (self.options.assign_alpha): + cstyle['fill-opacity'] = fill_opacity + elif (self.options.fill_type == "stroke"): + cstyle['fill'] = stroke + if (self.options.assign_alpha): + cstyle['fill-opacity'] = stroke_opacity + else: + cstyle['fill'] = "none"; + cstyle['fill-opacity'] = "0" child.set('style',simplestyle.formatStyle(cstyle)) node.set('style',simplestyle.formatStyle(style)) @@ -78,4 +106,4 @@ if __name__ == '__main__': e.affect() -# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 encoding=utf-8 textwidth=99 +# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99