diff options
| -rwxr-xr-x | share/extensions/inkex.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/share/extensions/inkex.py b/share/extensions/inkex.py index b8bba3803..41fdcd959 100755 --- a/share/extensions/inkex.py +++ b/share/extensions/inkex.py @@ -85,6 +85,21 @@ class Effect: stream = sys.stdin self.document = reader.fromStream(stream) stream.close() + def getposinlayer(self): + ctx = xml.xpath.Context.Context(self.document,processorNss=NSS) + #defaults + self.current_layer = self.document.documentElement + self.view_center = (0.0,0.0) + + layername = xml.xpath.Evaluate('//sodipodi:namedview/@inkscape:current-layer',self.document,context=ctx)[0].value + layer = xml.xpath.Evaluate('//g[@id="%s"]' % layername,self.document,context=ctx)[0] + if layer: + self.current_layer = layer + + x = xml.xpath.Evaluate('//sodipodi:namedview/@inkscape:cx',self.document,context=ctx)[0].value + y = xml.xpath.Evaluate('//sodipodi:namedview/@inkscape:cy',self.document,context=ctx)[0].value + if x and y: + self.view_center = (float(x),float(y)) def getselected(self): """Collect selected nodes""" for id in self.options.ids: @@ -98,6 +113,7 @@ class Effect: """Affect an SVG document with a callback effect""" self.getoptions() self.parse() + self.getposinlayer() self.getselected() self.effect() self.output() |
