summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Dufour <nicoduf@yahoo.fr>2014-03-21 12:34:36 +0000
committerJazzyNico <nicoduf@yahoo.fr>2014-03-21 12:34:36 +0000
commit659476fd3a10d8ae693476f6bead9f8334118ff2 (patch)
tree7f1048b3b8b9261ec43344be114ada8d9700f896
parentcontrol-point-selection : fix a (very unlikely) crash upon dereferencing unit... (diff)
downloadinkscape-659476fd3a10d8ae693476f6bead9f8334118ff2.tar.gz
inkscape-659476fd3a10d8ae693476f6bead9f8334118ff2.zip
Extensions. Fix for Bug #960046 (merging text).
Fixed bugs: - https://launchpad.net/bugs/960046 (bzr r13177)
-rwxr-xr-xshare/extensions/text_extract.py27
-rw-r--r--share/extensions/text_merge.inx2
-rw-r--r--share/extensions/text_merge.py3
3 files changed, 24 insertions, 8 deletions
diff --git a/share/extensions/text_extract.py b/share/extensions/text_extract.py
index a27cfff50..bf263ef39 100755
--- a/share/extensions/text_extract.py
+++ b/share/extensions/text_extract.py
@@ -22,14 +22,22 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
"""
-import inkex, os, csv, math, chardataeffect, string
-
+# standard library
+import chardataeffect
+from copy import deepcopy
+import csv
+import math
+import os
+import string
try:
from subprocess import Popen, PIPE
bsubprocess = True
except:
bsubprocess = False
+# local library
+import inkex
+
class Extract(inkex.Effect):
def __init__(self):
inkex.Effect.__init__(self)
@@ -137,14 +145,19 @@ class Extract(inkex.Effect):
objlist.sort()
#move them to the top of the object stack in this order.
for item in objlist:
- self.recurse(self.selected[item[1]])
+ self.recurse(deepcopy(self.selected[item[1]]))
def recurse(self, node):
istext = (node.tag == '{http://www.w3.org/2000/svg}flowPara' or node.tag == '{http://www.w3.org/2000/svg}flowDiv' or node.tag == '{http://www.w3.org/2000/svg}text')
- if node.text != None:
- inkex.errormsg(node.text)
- for child in node:
- self.recurse(child)
+ if node.text != None or node.tail != None:
+ for child in node:
+ if child.get('{http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd}role'):
+ child.tail = "\n"
+ inkex.errormsg(inkex.etree.tostring(node, method='text').strip())
+ else:
+ for child in node:
+ self.recurse(child)
+
if __name__ == '__main__':
e = Extract()
diff --git a/share/extensions/text_merge.inx b/share/extensions/text_merge.inx
index c871f52c0..fbbe7e857 100644
--- a/share/extensions/text_merge.inx
+++ b/share/extensions/text_merge.inx
@@ -20,7 +20,7 @@
<_item value="m">Middle</_item>
<_item value="b">Bottom</_item>
</param>
- <param name="flowtext" type="boolean" _gui-text="Flow text">false</param>
+<!-- <param name="flowtext" type="boolean" _gui-text="Flow text">false</param> -->
<param name="keepstyle" type="boolean" _gui-text="Keep style">true</param>
<effect>
<object-type>all</object-type>
diff --git a/share/extensions/text_merge.py b/share/extensions/text_merge.py
index 8cd8b751d..dc6ee331c 100644
--- a/share/extensions/text_merge.py
+++ b/share/extensions/text_merge.py
@@ -191,6 +191,9 @@ class Merge(inkex.Effect):
newspan.text = node.text
for child in node:
self.recurse(child, newspan)
+ if (node.tail and node.tag != '{http://www.w3.org/2000/svg}text'):
+ newspan.tail = node.tail
+
if __name__ == '__main__':
e = Merge()