The problem seems to be that Stefan has changed the four-letter codes between versions, and flex20 and Adam must have the old version still on their systems.
In particular, increment has changed from PrBrIcRm to pGbRIcRm, start animation from PrBrStMn to pGbRStMn, and stop animation from PrBrSpMn to pGbRSpMn.
Iâm not sure why he made the change, but the solution is to remove the previous version, and convince ASE to remove it from its cache.
Hi Shane,
I have actually deleted what I think were all traces of v1.0, except for whatever is in the Time Machine. But just to make sure after your post, I booted on my clean volume I maintain for just such testing.
Then, I ejected my main volume, as well as a scrap volume I have, to make sure that nothing can be accessed on them.
Finally I run my script bundle with the SKProgressBar v1.0.1 in it. It crashed at the same place with the same message.
So, I really donât think that the cause of the crash has anything to do with a clash of versions.
I also want to point out that I have now two scripts with integrated SKProgressBar v1.0 (I only discovered this app a few days ago) and they work perfectly on my 2010 iMac with 10.8.2.
I really canât remember why I changed the four-character codes.
There were some inactive NSScriptCommand classes in the project, so I guess
I changed the respective commands from verb-first to object-first (Shane you know what I mean )
To be consistent the first 4-character codes have been changed to the parent class.
Hi Stefan,
Will you now release/post a new version? I checked v1.0.1 you posted at #7 above, but it is still yesterdayâs version.
Itâs no rush really, because v1.0 is working just fine.
Regards,
Chris
If the message contains âPrBrStMnâ, then itâs using the old terminology. It may be just ASE caching it (this is another good reason to use Script Debugger). But whatever, the only place PrBrStMn is used is in the old version.
Try copying the code in Nigelâs message and see what it compiles to.
restored my clean test volume from a âvirginâ 10.8.2 disk image with my basic configuration and disabled Spotlight;
restarted from it and then ejected my main volume to isolate the clean test volume;
opened a new blank script and copy/pasted the code from my original script and then saved the new script as a bundle with a new name;
navigated to itâs Resources folder and copied the SKProgressBar.app v1.0.1 to it;
compiled and saved it; (no app v1.0 or a script containing it, were in sight or ever run on that clean volume)
run it.
It crashed again at the same place, with the same raw codes but, slightly changed script replies:
tell application "SKProgressBar"
tell progress bar
activate
set indeterminate to false
«event PrBrStMn»
tell current application
-- do shell script ...
end tell
repeat 10 times
«event PrBrIcRm» given «class bYVl»:10.0
delay 1
end repeat
«event PrBrSpMn»
end tell
quit --> error number 0
end tell
(*Replies
tell application "SKProgressBar"
activate
set indeterminate of progress bar to false
«event PrBrStMn» progress bar
--> error number -1708
Result:
error "SKProgressBar got an error: progress bar doesn't understand the «event PrBrStMn» message." number -1708 from progress bar*)
While the script was frozen and SKProgressBar was still running, I checked that its version was indeed 1.0.1.
So, I think that shows that v1.0.1 in a clean script, running on a clean volume is still crashing with a reproducible error.
Thatâs never going to solve the problem if the code youâre pasting contains the old codes. Either use the new codes, or just rewrite the commands to use the English commands (set current value, increment, etc).
The changes are rather disastrous, since they break every script compiled against the previous version(s) of your app â which is inconvenient for all your existing users, not just those who donât know about compiled tokens.
In the past, when Apple or anyone wanted to change an event or class code, they might give the old code a new keyword â say start animation (old) â and allow it still to work. That way, existing scripts wouldnât break and new ones would get the new token for the original keyword. Anyone seeing start animation (old) when opening an older script in their editor could simply delete the b[/b] and recompile the script to get the new token. I donât know how feasible this is nowadays, but something like it should be considered.
Hi Shane,
What I copied was the absolute original code from v1.0 of my script, I had been using before I even heard of this progress bar app. Then, I modified my original code, by copy & pasting from Stefanâs script at the top of this page, so as to enclose the action I wanted to attach the bar to (i.e. the action is inserted between âstart animationâ and the increment repeat block).
Unless, I really misunderstand what you are saying (and thatâs a very distinct possibility), I think that what Iâve done is in fact equivalent to retyping the whole code. Please comment if you think Iâm wrong,
Many thanks Stefan,
The new version 1.0.1(3) works perfectly now in 10.8.2
May I suggest to update the link at #1 to always point to the latest version, to make it easier to find.
I had to update 13 instances of SKPB 1.0 code, but hey, the end result is great
Not so great was that I was about half through updates, busily retyping over the three commands, before I finally noticed Nigelâs suggestion
At some point Stefan, Iâm hoping there will be a link to disk image download with the latest application version, the read me document and a sample script that works without any editorial repairs. Without that, youâll be deluged with emails when it doesnât work for new users.
For now, the best bet is to go to post #1 and download SKProgressBar 1.0 which after unpacking is a dmg. Remove the Readme and Script files, but not the application and eject the dmg.
Then go to post #7 and download SKProgressBar 1.0.1. Now you can compile the script. In the script, you may find the word (old) in several places. Remove those and recompile. Now youâre good to go.
I know this is kinda old, but I just wanted to say thanks. This is awesome. I added it to an ancient script that I am updating and it saved me a ton of work.
Nice Stefan and timing couldnât be better . I saw in some post people in doubt of using SKProgressIndicator solely based on the fact it hasnât been updated in a while.