=== 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()