Hi
i'm doing my first steps into the scripting world, following David Torno's course (great course BTW, thanks a lot!!!)
and i'm trying to put what i've learned into a script that will have "a better render queue", meaning you can see quickly all of your renders, their outputs, when they were rendered, etc.. (the next step will be to export the into excel or something like that..), i'm using Listbox to show all the items, and I was wondering if there's a way to sort the list by different columns headers dynamically (e.g. render path output, date rendered, etc..).
i'd be happy for any help or direction because i couldn't find anywhere online or written info on this (sort listbox) matter.
thanks
D
here's what i got so far:
try{ var proj = app.project; var totalRenderQ = proj.renderQueue.numItems; var rqList = new Array(); var totalOM; var FSWindow = new Window("palette","Listbox Scroll Bug", undefined,{resizeable:true}); FSWindow.alignment = ["fill","fill"]; FSWindow.alignChildren=["fill", "fill"]; var FSGrp = FSWindow.add("group", undefined, "groupList"); FSGrp.orientation = "column"; FSGrp.alignChildren = ["fill","fill"]; var quitBtn = FSGrp.add ("button", undefined, "Close"); quitBtn.onClick = function() { FSWindow.close(); } var FSList = FSGrp.add("listbox", [0,0,1200,800], "FS List", {multiselect:true, numberOfColumns: 5, showHeaders: true, columnTitles: ["Render #","Date","Time", "Comp Name", "Render Path"]}); for (var i= 1; i<=totalRenderQ; i++){ totalOM= proj.renderQueue.item(i).numOutputModules; for (var om= 1; om<=totalOM; om++){ rqList[rqList.length] = "Render #" + i + " - " + om +": " + proj.renderQueue.item(i).outputModule(om).file.toString(); var dateList, timeList, curItem; if (proj.renderQueue.item(i).startTime != null){ var min = proj.renderQueue.item(i).startTime.getMinutes() <10 ? "0"+ proj.renderQueue.item(i).startTime.getMinutes() : proj.renderQueue.item(i).startTime.getMinutes(); var year = proj.renderQueue.item(i).startTime.getFullYear().toString().substr (-2,2); timeList = (proj.renderQueue.item(i).startTime.getHours()-1)+":" + min; dateList =proj.renderQueue.item(i).startTime.getDate()+"/"+(proj.renderQueue.item(i).startTime.getMonth()+1)+"/"+year ; }else{ dateList = "not rendered"; timeList = " "; } curItem = FSList.add ('item', "Render #" + i + " - " + om ); // Column 1 curItem.subItems[0].text = dateList.toString(); // Column 2 curItem.subItems[1].text = timeList.toString(); // Column 3 curItem.subItems[2].text = proj.renderQueue.item(i).comp.name; // Column 4 curItem.subItems[3].text = proj.renderQueue.item(i).outputModule(om).file.toString().replace(new RegExp(",","g"), "\r").replace(new RegExp("%20","g"), " ").replace(new RegExp("%5B","g"), "[").replace(new RegExp("%5D","g"), "]"); // Column 5 itemNum ++; } } FSWindow.layout.resize(); //Resizes layout FSWindow.onResizing = FSWindow.onResize = function () {this.layout.resize();} //Resizes everything with panel FSWindow.layout.layout(true); FSWindow.center(); FSWindow.show(); } catch(err){ alert ("Error at line # " + err.line.toString() + "\r" + err.toString()); }