Good question. There probably should be. This is how it's implemented:
Jalbum first uses a private method of the AlbumBean called getImageSettingsHash() to get a magic number that is made up of the global settings that affect images like global image filters, image- and thumbnail sizes, scaling quality, progressive move and amount of global sharpness applied. This hash code/magic number is compared with a stored copy (stored in the .jalbum/.info file of the root album object. If the numbers differ, then Jalbum does a "Make all" operation.
If the numbers are equal, Jalbum only reprocesses individual images that are missing or that have had their image filters modified. This check isn't as clever as with global settings, but clever enough: It compares file dates between the generated file and original file, but not only the original file, but also its corresponding .jalbum/filename.info file of the image. If either of those dates are newer than of the generated file, then it is reprocessed.
Now, can you use this scheme for your own code? Yes but there is some work to it: The getImageSettingsHash() method of the AlbumBean is private, but you can call it if your call setAccessibility(true) first. Second, to compare if an individual file needs updating, call lastModified() on the generated file and compare it with getLastModified() of the AlbumObject for the original file. To get an AlbumObject for the original file, use
Now, can you use this scheme for your own code? Yes but there is some work to it: The getImageSettingsHash() method of the AlbumBean is private, but you can call it if your call setAccessibility(true) first.
David/Chris: be aware this only works in onload.bsh, not in compiled java.
On a side-note, David: I really like to have an emergency setting for make-all, which doesn't do anything 'magic', just does what it advertises: make-all
David, I'm finding that "Make all" just flat-out isn't working. I've got my preferences set to "Clean old output files on make all," but choosing "Make All" is not reprocessing the images. It's acting exactly like "Make Changes."
Edit: more info... It's working properly in WinXP, but not in Win7. This is beginning to feel familiar - I'm seeing other instances in which Jalbum is refusing to delete things in Win7.
Yup, "Run as administrator" results in "Make All" behaving properly again. It doesn't cure the other weird behaviors I've been seeing however, including the inability to delete folders or the incomplete deletion of an entire project.
Sounds like we have some experimenting with Windows7 coming up for us
You're not alone - I'm still feeling my way around it. I have to say that I like it, however. So far, it's been very stable, and the couple of Jalbum glitches are things that are easy to work around until a more robust solution is found.
(Not a Jalbum thing, but I've found that Win7 doesn't do as much "pestering" as Vista. Still, I ended up turning off user access control. Every time I launched ccleaner, Win7 would ask me if I wanted to let the application make changes to the system. Well, I just clicked on it, didn't I? Does that give you a hint? In short, they still haven't made that safety feature context-sensitive - if the user has launched an app, he wants to let it do its thing, and there's no need to prompt!)