I have this script that when called by iKey (key command) it will allow me to change all the items selected in a Finder window to be set to a selected color. I have commented out the default as currently Leopard has broken the choose from list.
With Leopard I have it sort of working for "all" but "selecting individual files" seems to forget the selections and does nothing.
This script did work with Tiger. Is this another "Feature of Leopard and/or is there a workaround?
set leopard to ((system attribute "sysv") ≥ 4175) -- <= 1049
set Tiger to ((system attribute "sysv") ≥ 4159) -- <= 1039
tell application "Finder"
if exists Finder window 1 then -- make sure there is a window
(* use variable for window so script doesn't get confused. Use "finder window" instead of "window" so if the front window in the Finder is an info window, the clipboard, a clipping window, etc., the script will work properly. *)
set wdw to Finder window 1
if selection is not {} then
set colorchoice to (label index of item 1 in (get the selection))
set colorchoice to colorchoice + 1
else
set colorchoice to 1 -- no selection, default to "none"
end if
else
tell application "System Events"
activate
beep
display dialog "There is no Finder Window" buttons "OK" default button 1 giving up after 2
return
end tell
end if
if Tiger or leopard then
set theColorList to {"1-none", "2-orange", "3-red", "4-yellow", "5-blue", "6-purple", "7-green", "8-gray"}
else
set theColorList to {"none", "orange", "red", "yellow", "blue", "purple", "green", "gray"}
end if
set theDefaultList to text item colorchoice of theColorList
-- set theChoice to (choose from list theColorList default items theDefaultList with title "Color Selection" with prompt "Option key to select entire folder.")
set theChoice to (choose from list theColorList with title "Color Selection" with prompt "Option key to select entire folder.")
if (theChoice is false) then return -- "User canceled."
-- get color selected
repeat with i from 1 to count theColorList
if item i of theColorList is in theChoice then
set myLabelIndex to i - 1
exit repeat
end if
end repeat
tell application "Extra Suites"
set optionKeyDown to (ES option down)
end tell
delay 1 -- Leopard needs a delay here
if optionKeyDown then
set the label index of the front window's items to myLabelIndex
else
repeat with eachItem in (get selection)
set the label index of eachItem to myLabelIndex
end repeat
end if
select {} -- deselect items
beep
end tell
Bob Poland - Fort Collins, CO