diff options
| author | Nicolas Dufour <nicoduf@yahoo.fr> | 2014-03-21 12:34:36 +0000 |
|---|---|---|
| committer | JazzyNico <nicoduf@yahoo.fr> | 2014-03-21 12:34:36 +0000 |
| commit | 659476fd3a10d8ae693476f6bead9f8334118ff2 (patch) | |
| tree | 7f1048b3b8b9261ec43344be114ada8d9700f896 | |
| parent | control-point-selection : fix a (very unlikely) crash upon dereferencing unit... (diff) | |
| download | inkscape-659476fd3a10d8ae693476f6bead9f8334118ff2.tar.gz inkscape-659476fd3a10d8ae693476f6bead9f8334118ff2.zip | |
Extensions. Fix for Bug #960046 (merging text).
Fixed bugs:
- https://launchpad.net/bugs/960046
(bzr r13177)
| -rwxr-xr-x | share/extensions/text_extract.py | 27 | ||||
| -rw-r--r-- | share/extensions/text_merge.inx | 2 | ||||
| -rw-r--r-- | share/extensions/text_merge.py | 3 |
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() |
