diff --git a/src/ImageSequencer.js b/src/ImageSequencer.js index 723690e643..ffaf7879a3 100644 --- a/src/ImageSequencer.js +++ b/src/ImageSequencer.js @@ -376,6 +376,20 @@ ImageSequencer = function ImageSequencer(options) { } + function reorderSteps(source, dest) { + var this_ = (this.name == 'ImageSequencer') ? this : this.sequencer; + var args = []; + var json_q = {}; + for (var arg in arguments) { args.push(copy(arguments[arg])); } // Get all the module names from the arguments + json_q = formatInput.call(this_, args, '+'); + + inputlog.push({ method: 'reorderSteps', json_q: copy(json_q) }); + + require('./ReorderSteps')(this_, source, dest); + + return this; + } + return { // Literals and objects name: 'ImageSequencer', @@ -415,6 +429,7 @@ ImageSequencer = function ImageSequencer(options) { saveSequence: saveSequence, loadModules: loadModules, getSteps:getSteps, + reorderSteps, // Other functions log: log, diff --git a/src/ReorderSteps.js b/src/ReorderSteps.js new file mode 100644 index 0000000000..248b1e7e0c --- /dev/null +++ b/src/ReorderSteps.js @@ -0,0 +1,11 @@ +module.exports = function(ref, source, dest) { + + if(source > ref.steps.length - 1 || dest > ref.steps.length - 1 ) return false; + + var stepName = ref.steps[source].options.name; + ref.removeSteps(source); + ref.insertSteps(dest, stepName); + ref.run(); + + return true; +};