From 59688e9215702c230e8bf94bfd6e8e193184b8ad Mon Sep 17 00:00:00 2001 From: Jorge Perez Date: Mon, 9 Aug 2021 17:35:56 -0700 Subject: [PATCH] Created function to consolidate comps, initial implementation ready, but I intend to perform more exhaustive checks to compare the comps before replacing. --- wc_helper.jsx | 388 +++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 338 insertions(+), 50 deletions(-) diff --git a/wc_helper.jsx b/wc_helper.jsx index 066a170..8a82e97 100644 --- a/wc_helper.jsx +++ b/wc_helper.jsx @@ -24,22 +24,24 @@ var fourthButton = "<< test >>"; var win = (thisObj instanceof Panel)? thisObj : new Window('palette', windowTitle); win.spacing = 0; - win.margins = 4; + win.margins = 1; var myArtistGroup = win.add ("group"); - artistNameLabel= myArtistGroup.add("statictext"); - artistName= myArtistGroup.add("statictext"); - artistRoleLabel= myArtistGroup.add("statictext"); - artistRole= myArtistGroup.add("dropdownlist",undefined,["Offline","Finishing"]) - artistRole.selection = 0; + var artistNameLabel= myArtistGroup.add("statictext"); + win.artistName= myArtistGroup.add("statictext"); + var artistRoleLabel= myArtistGroup.add("statictext"); + win.artistRole= myArtistGroup.add("dropdownlist",undefined,["Offline","Finishing"]) + win.artistRole.selection = 0; artistNameLabel.text = "Artist:"; artistRoleLabel.text = "Role:"; //****// - artistName.text = system.callSystem("whoami"); + win.artistName.text = system.callSystem("whoami"); var myButtonGroup = win.add ("group"); myButtonGroup.spacing = 4; myButtonGroup.margins = 0; myButtonGroup.orientation = "row"; + win.checkbox1 = myButtonGroup.add( "checkbox", undefined, "Dupli:") + win.checkbox1.value = true; win.button1 = myButtonGroup.add ("button", undefined, firstButton); win.button2 = myButtonGroup.add ("button", undefined, secondButton); win.button3 = myButtonGroup.add ("button", undefined, thirdButton); @@ -48,17 +50,19 @@ myButtonGroup.alignChildren = "center"; win.button1.onClick = function(){ - versionUpSelectedComps(1); + btnPlus1(); + //versionUpSelectedComps(1); } win.button2.onClick = function(){ - versionUpSelectedComps(0); + btnOwn(); } win.button3.onClick = function(){ - renderSelectedToProjectPath(); + btnRender(); } win.button4.onClick = function(){ - test(); + btnTest(); + //alert( getItemByName( getTodayString() )); } win.layout.layout(true); @@ -76,12 +80,12 @@ } /* General functions */ - function pad(n,i){ //pad n with ceroes up to i places. + w.pad = function ( n, i ){ //pad n with zeroes up to i places. if (String(n).length>=i){ return String(n) }else{ - dif = i- (String(n)).length; - padding = ""; + var dif = i- (String(n)).length; + var padding = ""; for (p=0;p= 0 ; i -- ){ - // //alert( t[i+1].name + "/" + t[i].name ) - // //alert( new_folder.name ); - // if(i == next_n - 1){ - // t[i] = new_folder; - // } - // alert(t[i].name) - // t[i+1].items.addFolder(t[i].name); - // // var next_folder; - // // if(i == next_n - 1){ - // // next_folder = new_folder.items.addFolder( t[i].name ); - // // }else{ - // // next_folder = next_folder.parentFolder - // // } - - // // t[i-1].items.addFolder( t[i].name ); - + //alert(date_search); + //create same branch structure as trunk under new date folder. + var next_folder = new_folder; + for ( var i = date_pos-1 ; i >= 0 ; i -- ) + { + next_folder = next_folder.items.addFolder(t[i].name); - // //t[i+1].items.addFolder( t[i].name ); - // } + } + new_comp = my_item.duplicate(); + new_comp.name = my_item.name; + versionUpComp( new_comp, inc ); + new_comp.parentFolder = next_folder; + //my_item.selected = false; + //app.project.activeItem = new_comp; + new_comp.selected = true; + } + + /* UI Buttons */ + function btnPlus1(){ + var dupli = w.checkbox1.value == true; + if ( dupli ){ + versiounUpTodaySelectedComps( 1 ); + }else{ + versionUpSelectedComps( 1 ); + } + } + function btnOwn(){ + var dupli = w.checkbox1.value == true; + if ( dupli ){ + versiounUpTodaySelectedComps( 0 ); + }else{ + versionUpSelectedComps( 0 ); + } + } + + function btnRender(){ + renderSelectedToProjectPath(); } + function btnTest(){ + CompHerder = new CompHerder(); + CompHerder.activate(); + //alert("Nothing to test right now.") + } + + //// + + + + +function CompHerder() +{ + // this.info = + // { + // name : "CompHerder", + // version : 0.1, + // stage : "development", + // description : "Tool to manage project items.", + // url : "yorchnet.com" + // }; + // this.appearence = + // { + // buttonHeight : 30, + // buttonWidth : 126 + // }; + // this.resources = + // { + // icon : new File('yNet.png'), + // }; + this.methods = + { + pad : function ( n , pad ) { + zeros = ""; + for ( i = 0 ; i < pad ; i ++ ) + { + zeros+="0"; + } + n = String(n); + padded = zeros.substr( 0, pad - n.length ) + String(n) ; + return padded + }, + replace: function( items , string , newString ){ + for ( i = 0 ; i < items.length ; i ++ ){ + var item = items[i]; + item.name = item.name.replace( string , newString ); + } + return true; + }, + getSelectedProjectItems: function (){ + 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); + } + } + //items = items.concat( app.project.activeItem.selectedItems ); + return items; + }, + suffix: function ( items , suffix ){ + for ( i = 0 ; i < items.length ; i ++ ){ + var item = items[i]; + if ( item.name.search( suffix ) != (item.name.length - suffix.length) ){ + item.name+= "_"+suffix; + } + + } + return true; + }, + prefix : function( items , prefix ){ + for ( i = 0 ; i < items.length ; i ++ ) + { + var item = items[i]; + if ( item.name.search( prefix ) != 0 ){ + item.name = prefix + "_" + item.name; + } + } + return true; + }, + rename: function ( items , new_name ){ + for ( i = 0 ; i < items.length ; i ++ ){ + var item = items[i]; + item.name = new_name + "_" + i; + } + + } + + } + this.init = function init() + { + + // this.btnLauyout = + // "button\ + // {\ + // preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'],\ + // text:'" + this.info.name + "',\ + // helpTip:'" + this.info.description + "'\ + // }"; + + // this. res = + // "window\ + // {\ + // type:'palette',\ + // text:'" + this.info.name + ' ' + this.info.ver + ' ' + this.info.stage + "',\ + // info: Group \ + // {\ + // alignment:['center','bottom'],\ + // icon: Image \ + // {\ + // icon:'" + this.resources.icon.path + '/' + this.resources.icon.name + "',\ + // preferredSize: [15, 18]\ + // },\ + // website: StaticText\ + // {\ + // text:'" + this.info.url + "',\ + // alignment:['fill','center']\ + // },\ + // }\ + // }"; + } + this.createUI = function createUI( ) + { + var myUI = this; + var res = + "window { \ + text: 'CompHerder',\ + alignment: ['fill','fill'], \ + alignChildren: ['center','top'], \ + orientation: 'column', \ + resizeable: 'true',\ + tabs: Panel {\ + type: 'tabbedpanel',\ + alignment: ['fill','fill'], \ + alignChildren: ['center','top'], \ + search_tab: Panel {\ + type: 'tab',\ + text: 'Search & Replace',\ + orientation: 'column', \ + alignChildren: ['center','top'], \ + searchGrp: Group {\ + alignment: ['fill','fill'], \ + alignChildren: ['center','top'], \ + orientation: 'column', \ + searchString: EditText {text:'SEARCH FOR TEXT',alignment: ['fill','center']}, \ + },\ + replaceGrp: Group {\ + alignment: ['fill','fill'], \ + alignChildren: ['center','center'], \ + orientation: 'column', \ + replaceString: EditText {text:'REPLACE WITH TEXT',alignment: ['fill','center']}, \ + }\ + doItBtn: Button {text: 'Replace in selected Comps', alignment: ['center','center']} , \ + }\ + suprefix: Panel {\ + type: 'tab',\ + text: 'Suffix / Prefix',\ + orientation: 'column', \ + suprefixGrp: Group {\ + alignment: ['fill','fill'], \ + alignChildren: ['left','center'], \ + orientation: 'column', \ + pre:Group {\ + alignment: ['fill','fill'], \ + alignChildren: ['left','center'], \ + orientation: 'row', \ + prefixString: EditText {text:'PREFIX',alignment: ['fill','center']}, \ + prefixBtn: Button {text: 'Preffix'} , \ + },\ + su:Group{\ + alignment: ['fill','fill'], \ + alignChildren: ['left','center'], \ + orientation: 'row', \ + sufixString: EditText {text:'SUFIX',alignment: ['fill','center']}, \ + sufixBtn: Button {text: 'Sufix'} , \ + }\ + },\ + },\ + rename_tab: Panel {\ + type: 'tab',\ + text: 'Rename',\ + renameGrp: Group {\ + alignment: ['fill','fill'], \ + alignChildren: ['left','center'], \ + orientation: 'row', \ + renameString: EditText {text:'NEW NAME',alignment: ['fill','center']}, \ + renameBtn: Button {text: 'Rename'} ,\ + }\ + }\ + },\ + }"; + + myUI.window = new Window( res ); + myUI.window.layout.layout(true); + + myUI.window.show(); + + myUI.window.layout.onResizing = myUI.window.layout.onResize = function () { myUI.layout.resize();} + + //EVENT HANDLERS + myUI.window.tabs.search_tab.doItBtn.onClick = function(){ + var search_str = myUI.window.tabs.search_tab.searchGrp.searchString.text; + var replace_str = myUI.window.tabs.search_tab.replaceGrp.replaceString.text; + myUI.methods.replace( myUI.methods.getSelectedProjectItems() , search_str , replace_str ); + }; + + myUI.window.tabs.suprefix.suprefixGrp.pre.prefixBtn.onClick = function(){ + var pre = myUI.window.tabs.suprefix.suprefixGrp.pre.prefixString.text; + myUI.methods.prefix( myUI.methods.getSelectedProjectItems() , pre ); + }; + + myUI.window.tabs.suprefix.suprefixGrp.su.sufixBtn.onClick = function(){ + var su = myUI.window.tabs.suprefix.suprefixGrp.su.sufixString.text; + myUI.methods.suffix( myUI.methods.getSelectedProjectItems() , su ); + }; + + myUI.window.tabs.rename_tab.renameGrp.renameBtn.onClick = function(){ + var new_name = myUI.window.tabs.rename_tab.renameGrp.renameString.text; + myUI.methods.rename( myUI.methods.getSelectedProjectItems() , new_name ); + }; + + return(this); + } + this.replaceInSelectedItems = function(){ + var search_string = "GFX"; + var replace_string = "VFX"; + } + + this.activate = function activate() + { + w = this.createUI(); + } + + this.init(); + return this; +} + + + + + //// + })(this);