I have started to work on Popcorn Maker, the authoring tool for Popcorn, as part of David Humphrey‘s Open Source class. The code can be found on GitHub. The first bug that I decided to work on is bug 157, which presented a problem with the way tracks are numbered in Popcorn Maker. Before explaining the issue, here is a picture outlining where the tracks are (click on the image for the full screen picture):
Notice that the first track is labeled LAYER-TRACK0, and the second one is LAYER-TRACK1. If the project is saved and reloaded, these names should remain the same. But what actually happens is this:

Notice now that the name of the first track is LAYER-TRACK2, one number higher than the name of the last track, LAYER-TRACK0, before we saved and reloaded the project.
The tracks are named using a consistent format, LAYER-TRACK#, where # is one higher than the previous number, unless it’s the first track, in which case it’s 0. The way # gets filled in is through a static variable, Track.guid. It’s initalized to 0, and then increased by 1 each time a new track is created. The problem is that Track.guid is never cleared back to 0 when the instance of Butter that Popcorn Maker is using is told to clearProject(). So the fix is actually easy: set Track.guid to 0 in the clearProject function in butter/src/butter-main.js:
butter/src/butter-main.js
this.clearProject = function() {
while ( targets.length > 0 ) {
that.removeTarget( targets[ 0 ] );
}
while ( medias.length > 0 ) {
that.removeMedia( medias[ 0 ] );
}
Track.guid = 0;
};
This one line fix is now up for review.

