diff --git a/wc_helper.jsx b/wc_helper.jsx index a835b1d..89047f0 100644 --- a/wc_helper.jsx +++ b/wc_helper.jsx @@ -13,6 +13,17 @@ - Get artist initials in Windows too. */ + + + + +//resizeCompsCanvasCentered( [ 1080, 1920 ] , true ) + + + + + + // Define the Panel (function wcHelperPanel (thisObj) { /* Build UI */ @@ -23,6 +34,7 @@ var secondButton = "own"; var thirdButton = "render"; var fourthButton = "rename"; + var fifthButton = "resize Comp"; var win = (thisObj instanceof Panel)? thisObj : new Window('palette', windowTitle); @@ -47,6 +59,11 @@ var myButtonGroup2 = win.add ("group"); win.button3 = myButtonGroup2.add ("button", undefined, thirdButton); win.button4 = myButtonGroup2.add ("button", undefined, fourthButton); + var myButtonGroup3 = win.add ("group"); + win.resizeWidth = myButtonGroup3.add ("edittext", undefined, 1920); + myButtonGroup3.add ("statictext", undefined, "x"); + win.resizeHeight = myButtonGroup3.add ("edittext", undefined, 1080); + win.button5 = myButtonGroup3.add ("button", undefined, fifthButton); myButtonGroup2.alignment = "center"; myButtonGroup2.alignChildren = "center"; @@ -68,6 +85,12 @@ win.button4.onClick = function(){ btnTest(); } + + win.button5.onClick = function(){ + var newSize = [ parseInt(w.resizeWidth.text) , parseInt(w.resizeHeight.text) ] ; + resizeCompsCanvasCentered( newSize , true ) + } + win.onResizing = function(){ updateProjectPath(); } @@ -159,6 +182,89 @@ function getItemByName( name ){ } /* Project Specific functions */ +function getSelectedProjectItems(){ + var items = []; + var p = app.project; + for ( var i = 1 ; i <= p.numItems ; i ++ ){ + var item = p.item(i); + if ( item.selected ){ + items.push(item); + } + } + return items; +} +function getLayersByParented( isParented ){ + + /* TODO + not use activeItem. but have the function take a comp as an argument, to avoid activItem becoming obsolete. + */ + var active_comp = app.project.activeItem; + var filtered_layers = []; + + for ( var i = 1; i <= active_comp.layers.length ; i ++ ) + { + var my_layer = active_comp.layers[i]; + + if ( (my_layer.parent == null) != isParented ) + { + filtered_layers.push( my_layer ); + }; + } + + return filtered_layers +} +function resizeCompCanvas( comp, new_size ){ + comp.width = new_size[0]; + comp.height = new_size[1]; +}; +function resizeCompCanvasCentered( my_comp, new_size, keep_scaler ){ + //app.beginUndoGroup("Resize Comp Canvas Centered") + var n = my_comp.layers.addNull(); + + //center null on actual comp size + n.position.setValue([my_comp.width/2,my_comp.height/2]); + resizeCompCanvas( my_comp , new_size ); + + //parent unparented layers to MAIN_SCALER + var unparenterLayers = getLayersByParented( false ); + for ( var i = 0; i < unparenterLayers.length ; i ++ ){ + var current_layer = unparenterLayers[i]; + + if ( (current_layer != n) && ( true )) { + current_layer.locked = false; + current_layer.parent = n; + current_layer.locked = true; + } + } + + // center null to new comp size + n.position.setValue(new_size/2); + + //get rid of scaling null or not. + if (keep_scaler) + { + n.name = 'MAIN_SCALER'; + }else{ + n.remove() + } + //app.endUndoGroup(); +} +function resizeCompsCanvasCentered( new_size, keep_scaler ){ + //alert(); + app.beginUndoGroup("Resize Comps' Canvas Centered") + var my_comps = getSelectedProjectItems(); + for ( var i = 0 ; i < my_comps.length ; i ++ ){ + var my_comp = my_comps[i]; + //alert( my_comp.name ) + resizeCompCanvasCentered( my_comp, new_size, true ); + } + app.endUndoGroup(); +} +function setFPS( comp, newFPS ){ + comp.frameDuration = 1/newFPS; +}; + + function getOfflineRevCode( myComp ){ //var regex = /[0-9]{2}[a-z]{2}/g; //Maixmum rev number 99 @@ -239,6 +345,7 @@ function getOutputBasePath(){ var file = app.project.file; var file_path = String(app.project.file); + var output_base = "6_Output"; var offline_output_extra = "1_Offline"; var finishing_output_extra = "2_Finishing"; @@ -252,6 +359,9 @@ function getOutputBasePath(){ var base_path = file_path.substr(0,search_ae)+output_base; + if( file_path == "null"){ + base_path="~/Desktop"; + } if ( search_offline != -1 ){ //offline @@ -309,6 +419,7 @@ function setRenderToProjectPath( rqItem , extra_path ){ } } function setRendersToProjectPath(){ + updateProjectPath() var q = app.project.renderQueue; //check the render queue item is not already rendered. for ( var i = 1 ; i <= q.numItems ; i ++ ){ @@ -322,6 +433,7 @@ function setRendersToProjectPath(){ } } function renderSelectedToProjectPath(){; + updateProjectPath() var q = app.project.renderQueue; var items = getSelectedProjectItems(); // alert( items ); @@ -721,3 +833,6 @@ function CompHerder(){ return this; } })(this); + + +