=== modified file 'po/POTFILES.in' --- po/POTFILES.in 2015-08-24 20:52:15 +0000 +++ po/POTFILES.in 2015-09-22 18:20:22 +0000 @@ -1,6 +1,6 @@ # List of source files containing translatable strings. # Please keep this file sorted alphabetically. -# Generated by ./generate_POTFILES.sh at Mon Aug 24 22:47:33 CEST 2015 +# Generated by ./generate_POTFILES.sh at Tue Sep 22 20:20:22 CEST 2015 [encoding: UTF-8] inkscape.desktop.in share/filters/filters.svg.h @@ -403,6 +403,7 @@ share/extensions/render_barcode_datamatrix.py share/extensions/render_barcode_qrcode.py share/extensions/replace_font.py +share/extensions/restack.py share/extensions/summersnight.py share/extensions/svg_and_media_zip_output.py share/extensions/svgcalendar.py === modified file 'share/extensions/restack.inx' --- share/extensions/restack.inx 2010-09-08 18:33:09 +0000 +++ share/extensions/restack.inx 2015-09-22 21:19:56 +0000 @@ -12,6 +12,8 @@ <_item value="ro">Radial Outward <_item value="ri">Radial Inward <_item value="aa">Arbitrary Angle + <_item value="rev">Reverse + <_item value="rand">Shuffle 0.00 === modified file 'share/extensions/restack.py' --- share/extensions/restack.py 2015-09-22 16:12:36 +0000 +++ share/extensions/restack.py 2015-09-22 21:21:54 +0000 @@ -21,7 +21,10 @@ THE SOFTWARE. """ -import inkex, os, csv, math +import inkex, os, csv, math, random +from pathmodifier import zSort + +inkex.localize() try: from subprocess import Popen, PIPE @@ -50,6 +53,15 @@ help="vertical point to compare") def effect(self): if len( self.selected ) > 0: + if self.options.direction == "rev" or self.options.direction == "rand": + self.restack_z_order() + else: + self.restack_spacial() + else: + inkex.errormsg(_("There is no selection to restack.")) + + def restack_spacial(self): + if 1: # to be removed (workaround for smaller bzr diff) objlist = [] svg = self.document.getroot() parentnode = self.current_layer @@ -146,6 +158,26 @@ for item in objlist: parentnode.append( self.selected[item[1]]) + def restack_z_order(self): + parentnode = None + alist = [] + if len(self.selected) == 1: + currentobject = self.selected[self.options.ids[0]] + if currentobject.tag == inkex.addNS('g', 'svg'): + parentnode = currentobject + for node in parentnode.iterchildren(reversed=True): + alist.append(node) + else: + parentnode = self.current_layer + for id_ in reversed(zSort(self.document.getroot(), self.selected.keys())): + alist.append(self.selected[id_]) + if self.options.direction == "rand": + random.shuffle(alist) + if parentnode is not None: + for item in alist: + parentnode.append(item) + + if __name__ == '__main__': e = Restack() e.affect()