Quantcast
Channel: Adobe Community : Discussion List - After Effects Scripting
Viewing all articles
Browse latest Browse all 2143

GUI - Listbox dynamically sorting ?

$
0
0

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());    }

Viewing all articles
Browse latest Browse all 2143

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>