summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorDenis Declara <declara91@gmail.com>2012-03-20 10:09:49 +0000
committerDenis Declara <declara91@gmail.com>2012-03-20 10:09:49 +0000
commit1cd9c8450500b945614a12a762e06c057ee85bbe (patch)
tree9973553a223ef7d6c5f9d18c35766fb3e7296e57 /share
parentFix deprecated Gtk::Widget flags (diff)
parentdesktop cutting plotter dxf output. ignore orphaned clones (Bug 957086) (diff)
downloadinkscape-1cd9c8450500b945614a12a762e06c057ee85bbe.tar.gz
inkscape-1cd9c8450500b945614a12a762e06c057ee85bbe.zip
Merged with trunk
(bzr r11073.1.1)
Diffstat (limited to 'share')
-rw-r--r--share/extensions/Makefile.am1
-rwxr-xr-xshare/extensions/dxf_outlines.py13
-rw-r--r--share/extensions/embedselectedimages.inx14
-rw-r--r--share/extensions/measure.inx22
-rwxr-xr-xshare/extensions/measure.py37
5 files changed, 69 insertions, 18 deletions
diff --git a/share/extensions/Makefile.am b/share/extensions/Makefile.am
index eab9a9c6c..238653b9a 100644
--- a/share/extensions/Makefile.am
+++ b/share/extensions/Makefile.am
@@ -229,6 +229,7 @@ modules = \
dxf_output.inx \
edge3d.inx \
embedimage.inx \
+ embedselectedimages.inx \
eps_input.inx \
eqtexsvg.inx \
export_gimp_palette.inx \
diff --git a/share/extensions/dxf_outlines.py b/share/extensions/dxf_outlines.py
index d93e1ff2f..3f5f15b4d 100755
--- a/share/extensions/dxf_outlines.py
+++ b/share/extensions/dxf_outlines.py
@@ -235,12 +235,13 @@ class MyEffect(inkex.Effect):
# get referenced node
refid = node.get(inkex.addNS('href','xlink'))
refnode = self.getElementById(refid[1:])
- if refnode.tag == inkex.addNS('g','svg'):
- self.process_group(refnode)
- elif refnode.tag == inkex.addNS('use', 'svg'):
- self.process_clone(refnode)
- else:
- self.process_shape(refnode, self.groupmat[-1])
+ if refnode is not None:
+ if refnode.tag == inkex.addNS('g','svg'):
+ self.process_group(refnode)
+ elif refnode.tag == inkex.addNS('use', 'svg'):
+ self.process_clone(refnode)
+ else:
+ self.process_shape(refnode, self.groupmat[-1])
# pop transform
if trans or x or y:
self.groupmat.pop()
diff --git a/share/extensions/embedselectedimages.inx b/share/extensions/embedselectedimages.inx
new file mode 100644
index 000000000..06d4c927f
--- /dev/null
+++ b/share/extensions/embedselectedimages.inx
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
+ <_name>Embed Selected Images</_name>
+ <id>org.ekips.filter.embedselectedimages</id>
+ <dependency type="executable" location="extensions">embedimage.py</dependency>
+ <dependency type="executable" location="extensions">inkex.py</dependency>
+ <param name="selectedonly" type="boolean" gui-hidden="true" _gui-text="Embed only selected images">true</param>
+ <effect needs-live-preview="false">
+ <object-type>all</object-type>
+ </effect>
+ <script>
+ <command reldir="extensions" interpreter="python">embedimage.py</command>
+ </script>
+</inkscape-extension>
diff --git a/share/extensions/measure.inx b/share/extensions/measure.inx
index 63a919806..67d44616f 100644
--- a/share/extensions/measure.inx
+++ b/share/extensions/measure.inx
@@ -10,6 +10,25 @@
<_item value="length">Length</_item>
<_item msgctxt="measure extension" value="area">Area</_item>
</param>
+ <param name="format" type="enum" _gui-text="Display Format: ">
+ <_item value="textonpath">Text On Path</_item>
+ <_item value="0">Angle 0</_item>
+ <_item value="30">Angle 30</_item>
+ <_item value="45">Angle 45</_item>
+ <_item value="60">Angle 60</_item>
+ <_item value="90">Angle 90</_item>
+ <_item value="120">Angle 120</_item>
+ <_item value="135">Angle 135</_item>
+ <_item value="150">Angle 150</_item>
+ <_item value="180">Angle 180</_item>
+ <_item value="210">Angle 210</_item>
+ <_item value="225">Angle 225</_item>
+ <_item value="240">Angle 240</_item>
+ <_item value="270">Angle 270</_item>
+ <_item value="300">Angle 300</_item>
+ <_item value="315">Angle 315</_item>
+ <_item value="330">Angle 330</_item>
+ </param>
<param name="fontsize" type="int" min="1" max="1000" _gui-text="Font size (px):">12</param>
<param name="offset" type="float" min="-10000" max="10000" _gui-text="Offset (px):">-6</param>
<param name="precision" type="int" min="0" max="25" _gui-text="Precision:">2</param>
@@ -29,8 +48,9 @@
</param>
</page>
<page name="desc" _gui-text="Help">
- <_param name="measurehelp" type="description" xml:space="preserve">This effect measures the length, or area, of the selected path and adds it as a text-on-path object with the selected unit.
+ <_param name="measurehelp" type="description" xml:space="preserve">This effect measures the length, or area, of the selected paths and adds it as a text object with the selected units.
+ * Display format can be either Text-On-Path, or stand-alone text at a specified angle.
* The number of significant digits can be controlled by the Precision field.
* The Offset field controls the distance from the text to the path.
* The Scale factor can be used to make measurements in scaled drawings. For example, if 1 cm in the drawing equals 2.5 m in the real world, Scale must be set to 250.
diff --git a/share/extensions/measure.py b/share/extensions/measure.py
index e1f8eab1d..415b21898 100755
--- a/share/extensions/measure.py
+++ b/share/extensions/measure.py
@@ -91,6 +91,10 @@ class Length(inkex.Effect):
action="store", type="string",
dest="type", default="length",
help="Type of measurement")
+ self.OptionParser.add_option("--format",
+ action="store", type="string",
+ dest="format", default="textonpath",
+ help="Display Format")
self.OptionParser.add_option("-f", "--fontsize",
action="store", type="int",
dest="fontsize", default=20,
@@ -139,14 +143,6 @@ class Length(inkex.Effect):
for id, node in self.selected.iteritems():
if node.tag == inkex.addNS('path','svg'):
self.group = inkex.etree.SubElement(node.getparent(),inkex.addNS('text','svg'))
-
- # t = node.get('transform')
- # Removed to fix LP #308183
- # (Measure Path text shifted when used with a copied object)
- #if t:
- # self.group.set('transform', t)
-
-
a =[]
mat = simpletransform.composeParents(node, [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]])
p = cubicsuperpath.parsePath(node.get('d'))
@@ -158,10 +154,16 @@ class Length(inkex.Effect):
stotal = csparea(p)*factor*self.options.scale
# Format the length as string
lenstr = locale.format("%(len)25."+str(prec)+"f",{'len':round(stotal*factor*self.options.scale,prec)}).strip()
- if self.options.type == "length":
- self.addTextOnPath(self.group, 0, 0, lenstr+' '+self.options.unit, id, 'start', '50%', self.options.offset)
+ if self.options.format == 'textonpath':
+ if self.options.type == "length":
+ self.addTextOnPath(self.group, 0, 0, lenstr+' '+self.options.unit, id, 'start', '50%', self.options.offset)
+ else:
+ self.addTextOnPath(self.group, 0, 0, lenstr+' '+self.options.unit+'^2', id, 'start', '0%', self.options.offset)
else:
- self.addTextOnPath(self.group, 0, 0, lenstr+' '+self.options.unit+'^2', id, 'start', '0%', self.options.offset)
+ if self.options.type == "length":
+ self.addTextWithTspan(self.group, p[0][0][1][0], p[0][0][1][1], lenstr+' '+self.options.unit, id, 'start', -int(self.options.format), self.options.offset + self.options.fontsize/2)
+ else:
+ self.addTextWithTspan(self.group, p[0][0][1][0], p[0][0][1][1], lenstr+' '+self.options.unit+'^2', id, 'start', -int(self.options.format), -self.options.offset + self.options.fontsize/2)
def addTextOnPath(self, node, x, y, text, id, anchor, startOffset, dy = 0):
new = inkex.etree.SubElement(node,inkex.addNS('textPath','svg'))
@@ -179,6 +181,19 @@ class Length(inkex.Effect):
node.set('x', str(x))
node.set('y', str(y))
+ def addTextWithTspan(self, node, x, y, text, id, anchor, angle, dy = 0):
+ new = inkex.etree.SubElement(node,inkex.addNS('tspan','svg'), {inkex.addNS('role','sodipodi'): 'line'})
+ s = {'text-align': 'center', 'vertical-align': 'bottom',
+ 'text-anchor': anchor, 'font-size': str(self.options.fontsize),
+ 'fill-opacity': '1.0', 'stroke': 'none',
+ 'font-weight': 'normal', 'font-style': 'normal', 'fill': '#000000'}
+ new.set('style', simplestyle.formatStyle(s))
+ new.set('dy', str(dy))
+ new.text = str(text)
+ node.set('x', str(x))
+ node.set('y', str(y))
+ node.set('transform', 'rotate(%s, %s, %s)' % (angle, x, y))
+
if __name__ == '__main__':
e = Length()
e.affect()