summaryrefslogtreecommitdiff
path: root/reorder.py
diff options
context:
space:
mode:
authorLex Neva <github@lexneva.name>2016-10-19 20:47:30 -0400
committerLex Neva <github@lexneva.name>2016-10-19 20:47:30 -0400
commitb70e0e7fa815c4e79d4470b17bc2339637c401cb (patch)
tree1b5198f593709949fae80bb34a77e9167f11ea38 /reorder.py
parent6a23fe868bd58af539c67011b53b1aef72733e0a (diff)
stuff
Diffstat (limited to 'reorder.py')
-rw-r--r--reorder.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/reorder.py b/reorder.py
new file mode 100644
index 00000000..e1722209
--- /dev/null
+++ b/reorder.py
@@ -0,0 +1,38 @@
+#!/usr/bin/python
+#
+# Remove selected objects from the document and readd them in the order they
+# were selected.
+
+import sys
+sys.path.append("/usr/share/inkscape/extensions")
+import os
+import inkex
+
+
+class Reorder(inkex.Effect):
+ def get_selected_in_order(self):
+ selected = []
+
+ for i in self.options.ids:
+ path = '//*[@id="%s"]' % i
+ for node in self.document.xpath(path, namespaces=inkex.NSS):
+ selected.append(node)
+
+ return selected
+
+ def effect(self):
+ objects = self.get_selected_in_order()
+
+ for obj in objects[1:]:
+ obj.getparent().remove(obj)
+
+ insert_parent = objects[0].getparent()
+ insert_pos = insert_parent.index(objects[0])
+
+ insert_parent.remove(objects[0])
+
+ insert_parent[insert_pos:insert_pos] = objects
+
+if __name__ == '__main__':
+ e = Reorder()
+ e.affect()