|  |  | yMultiRenamer_data = new Object();
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | yMultiRenamer_data.scriptName = 'yMultiRenamer';
 | 
						
						
						
							|  |  | yMultiRenamer_data.scriptDesc = 'Tool to make it easy to rename multiple project items and/or comp layers';
 | 
						
						
						
							|  |  | yMultiRenamer_data.scriptVer = '0.1a';
 | 
						
						
						
							|  |  | yMultiRenamer_data.webLink = 'yorchnet.com';
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | //if yToolBox Exists add it to its tool list.
 | 
						
						
						
							|  |  | if (typeof(yToolBox_data)!=='undefined'){
 | 
						
						
						
							|  |  |     yToolBox_data.tools.push(yMultiRenamer_data);
 | 
						
						
						
							|  |  |     
 | 
						
						
						
							|  |  |     //it should be called from toolbox.
 | 
						
						
						
							|  |  |     
 | 
						
						
						
							|  |  |      yMultiRenamer_data.buttonWidth=76;
 | 
						
						
						
							|  |  |      yMultiRenamer_data.buttonHeight=30;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     yMultiRenamer_data.btnLayout = "btn_"+yMultiRenamer_data.scriptName+": Button { preferredSize: ['"+ yToolBox_data.buttonWidth+"','"+ yToolBox_data.buttonHeight+"'], text:'"+yMultiRenamer_data.scriptName+"', helpTip:'"+yMultiRenamer_data.scriptDesc+"' }";
 | 
						
						
						
							|  |  |     
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | yMultiRenamer_data.res = "window { \
 | 
						
						
						
							|  |  |     type:'palette' , text:'"+yMultiRenamer_data.scriptName+' '+yMultiRenamer_data.scriptVer+"', margins:[10,10,10,10],spacing:[5,5,5,5],\
 | 
						
						
						
							|  |  |     \
 | 
						
						
						
							|  |  |     root_str_chk: Checkbox { text:'New root name:', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',value:true },\
 | 
						
						
						
							|  |  |     root_str: EditText { text:'', alignment:['fill','center'],helpTip:'Includes Items and folders within folders and subfolders.' },\
 | 
						
						
						
							|  |  |     search_str_chk: Checkbox { text:'Search for:', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
 | 
						
						
						
							|  |  |     search_str: EditText { text:'', alignment:['fill','center'],helpTip:'Includes Items and folders within folders and subfolders.',enabled:false },\
 | 
						
						
						
							|  |  |     search_rplc_tit: StaticText { text:'Replace with:', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
 | 
						
						
						
							|  |  |     search_rplc: EditText { text:'', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',enabled:false},\
 | 
						
						
						
							|  |  |     pre_chk: Checkbox { text:'AddAsPrefix', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
 | 
						
						
						
							|  |  |     pre: EditText { text:'', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',enabled:false },\
 | 
						
						
						
							|  |  |     pre_chk: Checkbox { text:'AddAsSuffix', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
 | 
						
						
						
							|  |  |     su: EditText { text:'', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',enabled:false },\
 | 
						
						
						
							|  |  |     recursive_optn: Checkbox { text:'Recursive', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
 | 
						
						
						
							|  |  |     selectedCompsOnly_optn: Checkbox { text:'Selected Comps Only', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
 | 
						
						
						
							|  |  |     globalItems_optn: Checkbox { text:'All Items', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
 | 
						
						
						
							|  |  |     globalLayers_optn: Checkbox { text:'All Layers', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
 | 
						
						
						
							|  |  |     global_optn: Checkbox { text:'Global', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
 | 
						
						
						
							|  |  |     exec_btn: Button {text:'do It',preferredSize:[150,35],helpTip:'do it'}\
 | 
						
						
						
							|  |  |     info: Group { \
 | 
						
						
						
							|  |  |         alignment:['center','bottom'], \
 | 
						
						
						
							|  |  |         icon: Image {preferredSize: [15, 18]},\
 | 
						
						
						
							|  |  | 			website: StaticText { text:'"+yMultiRenamer_data.webLink+"', alignment:['fill','center'] },\
 | 
						
						
						
							|  |  |         }\
 | 
						
						
						
							|  |  |     \
 | 
						
						
						
							|  |  |     }";
 | 
						
						
						
							|  |  |     
 | 
						
						
						
							|  |  |     //--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
 | 
						
						
						
							|  |  |     //                  MAIN SCRIPT GOES HERE.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | function yMultiRenamer(){
 | 
						
						
						
							|  |  |     
 | 
						
						
						
							|  |  |     recursive_sw = yMultiRenamer_data.window.recursive_optn.value;
 | 
						
						
						
							|  |  |     selectedCompsOnly_sw = yMultiRenamer_data.window.selectedCompsOnly_optn.value;
 | 
						
						
						
							|  |  |     globalItems_sw = yMultiRenamer_data.window.globalItems_optn.value;
 | 
						
						
						
							|  |  |     globalLayers_sw = yMultiRenamer_data.window.globalLayers_optn.value;
 | 
						
						
						
							|  |  |     global_sw = yMultiRenamer_data.window.global_optn.value;
 | 
						
						
						
							|  |  |     
 | 
						
						
						
							|  |  |     //Gathers all SELECTED items into projectItems, 
 | 
						
						
						
							|  |  |     
 | 
						
						
						
							|  |  |     var rawItems = app.project.items;
 | 
						
						
						
							|  |  |     var projectItems = [];
 | 
						
						
						
							|  |  |     for(i=1;i<=rawItems.length;i++){
 | 
						
						
						
							|  |  |         currentItem = rawItems[i];
 | 
						
						
						
							|  |  |         if( (currentItem.selected||(currentItem.parentFolder.selected&recursive_sw))||(globalItems_sw||global_sw) ){
 | 
						
						
						
							|  |  |             projectItems.push(currentItem);
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //Gathers all SELECTED layers into projectLayers, 
 | 
						
						
						
							|  |  |     var projectComps = [];  
 | 
						
						
						
							|  |  |     for(i=1;i<rawItems.length;i++){
 | 
						
						
						
							|  |  |         currentItem = rawItems[i];
 | 
						
						
						
							|  |  |         if(currentItem.typeName=='Composition'){
 | 
						
						
						
							|  |  |             projectComps.push(currentItem)
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |     }    
 | 
						
						
						
							|  |  |     var rawLayers = [];
 | 
						
						
						
							|  |  |      for(i=0;i<projectComps.length;i++){
 | 
						
						
						
							|  |  |         for(j=1;j<=projectComps[i].layers.length;j++){
 | 
						
						
						
							|  |  |             rawLayers.push(projectComps[i].layers[j])
 | 
						
						
						
							|  |  |             }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |     var projectLayers = [];
 | 
						
						
						
							|  |  |     for(i=0;i<rawLayers.length;i++){
 | 
						
						
						
							|  |  |         currentItem = rawLayers[i];
 | 
						
						
						
							|  |  |         if((currentItem.selected&(currentItem.containingComp.selected||!selectedCompsOnly_sw))||(globalLayers_sw||global_sw) ){
 | 
						
						
						
							|  |  |             projectLayers.push(currentItem);
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |    
 | 
						
						
						
							|  |  | /*    
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | var allComps =[];
 | 
						
						
						
							|  |  | for(i=1;i<=app.project.items.length;i++){
 | 
						
						
						
							|  |  |     if(app.project.items[i].typeName=='Composition'){
 | 
						
						
						
							|  |  |     allComps.push(app.project.items[i].selectedLayers);
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | //alert(allComps);
 | 
						
						
						
							|  |  | for(i=1;i<=app.project.items.length;i++){
 | 
						
						
						
							|  |  |     anItem = app.project.items[i]
 | 
						
						
						
							|  |  |     if(anItem.selected == true){
 | 
						
						
						
							|  |  |         projectItems.push(anItem);
 | 
						
						
						
							|  |  |         subItems = anItem.items;        
 | 
						
						
						
							|  |  |         if(anItem.typeName=='Folder'){
 | 
						
						
						
							|  |  |             if((subItems.length>0)&(yMultiRenamer_data.window.subFolders_optn.value==true)){
 | 
						
						
						
							|  |  |                 for(a=1;a<=subItems.length;a++){
 | 
						
						
						
							|  |  |                     projectItems.push(subItems[a])
 | 
						
						
						
							|  |  |                     }
 | 
						
						
						
							|  |  |                 }
 | 
						
						
						
							|  |  |             }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | if(yMultiRenamer_data.window.allComps_optn.value==false ){
 | 
						
						
						
							|  |  |     
 | 
						
						
						
							|  |  |     if((app.project.activeItem!=null )&(app.project.activeItem.typeName=='Composition')){
 | 
						
						
						
							|  |  |         layers = app.project.activeItem.selectedLayers;
 | 
						
						
						
							|  |  |         for (i=0;i<layers.length;i++){
 | 
						
						
						
							|  |  |                 projectItems.push(layers[i]);
 | 
						
						
						
							|  |  |             }            
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |     if(yMultiRenamer_data.window.allComps_optn.value==true ){
 | 
						
						
						
							|  |  |         for(i=0;i<allComps.length;i++){
 | 
						
						
						
							|  |  |             layers = allComps[i].selectedLayers;
 | 
						
						
						
							|  |  |             alert(allComps[i]);
 | 
						
						
						
							|  |  |              for (L=0;L<layers.length;L++){
 | 
						
						
						
							|  |  |                 projectItems.push(layers[i]);
 | 
						
						
						
							|  |  |             } 
 | 
						
						
						
							|  |  |                 
 | 
						
						
						
							|  |  |             }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |        
 | 
						
						
						
							|  |  |     alert(projectItems)
 | 
						
						
						
							|  |  |     */
 | 
						
						
						
							|  |  |     allRenamable = projectItems.concat(projectLayers);
 | 
						
						
						
							|  |  |     //alert(allRenamable);
 | 
						
						
						
							|  |  |     app.beginUndoGroup('Multi Renamer');
 | 
						
						
						
							|  |  |     for(i=0;i<allRenamable.length;i++){        
 | 
						
						
						
							|  |  |             writeLn('progress '+(parseInt(((i+1)/allRenamable.length)*100))+'%');
 | 
						
						
						
							|  |  |             n = '';
 | 
						
						
						
							|  |  |             if(i>0){
 | 
						
						
						
							|  |  |                 n = ' '+String(i);
 | 
						
						
						
							|  |  |                 }
 | 
						
						
						
							|  |  |             if(!allRenamable[i].locked){
 | 
						
						
						
							|  |  |             allRenamable[i].name = yMultiRenamer_data.window.root_str.text+n;
 | 
						
						
						
							|  |  |             //allRenamable[i].name = String(Math.random());  //EVIL LAUGHS
 | 
						
						
						
							|  |  |             }
 | 
						
						
						
							|  |  |             
 | 
						
						
						
							|  |  |             
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |     app.endUndoGroup();
 | 
						
						
						
							|  |  |     
 | 
						
						
						
							|  |  | }    
 | 
						
						
						
							|  |  |     //--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
 | 
						
						
						
							|  |  |         
 | 
						
						
						
							|  |  | function build_yMultiRenamer_data_UI(){
 | 
						
						
						
							|  |  | 	yMultiRenamer_data.window = new Window ( yMultiRenamer_data.res);
 | 
						
						
						
							|  |  |     yMultiRenamer_data.window.exec_btn.onClick = yMultiRenamer;
 | 
						
						
						
							|  |  | 	yMultiRenamer_data.window.show();
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | yMultiRenamer_data.activate = build_yMultiRenamer_data_UI ;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | //CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
 | 
						
						
						
							|  |  | if (typeof(yToolBox_data)=='undefined'){
 | 
						
						
						
							|  |  |        yMultiRenamer_data.activate();
 | 
						
						
						
							|  |  | 	}else{
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | // a= yMultiRenamer()
 |