Ask file: can I force the user to use an extension?

Graham Samuel livfoss at mac.com
Wed Feb 29 04:06:02 EST 2012


Thanks to Ken and Paul. I am in fact using Ken's solution, but I am worried that it looks odd to the user (a school pupil or teacher). I understand the idea of modifying the name the person has chosen (you get this for example when trying to do more than one download of the same file in a browser, so it is 'known' convention), but in my context I don't think I can do that since the user won't know it's happened until they come to try to retrieve the file, and then there is a (slight) danger of their not recognising it.

It looks as if some applications can get inside the OS Save dialog (and on the Mac too - for example Graphic Converter), but LC ones can't. I agree it is too much work to grow one's own to make it look exactly like the OS one, although I might have a go when I'm less busy.

I no longer have updating rights in QCC (I suppose, since I don't pay the extra $199 to be a Developer, although that's what I am!), otherwise I might formulate a suggestion that this intervention be allowed.

Graham


On 29 Feb 2012, at 03:46, Ken Ray <kray at sonsothunder.com> wrote:

> 
>> Now say there is already such a file in the directory. Of course I can detect it (by 'there is a') and warn the user, but only in a separate, home-grown dialog (an 'ask' dialog) after the Save dialog has been dismissed. This is clumsy and odd as a user experience. Is there any way I can hack into the conventional Save dialog so that it thinks it is being asked to save a file with an extension in spite of my user not typing one?
> 
> No, unfortunately. At the moment the easiest workaround (sans creating a custom Save dialog of your own) is to bring up the Save dialog, look at the name they entered, and if it doesn't have the right extension, add it and check to see if there's a file by that name already in the destination folder. If so, bring up a custom "do you want to overwrite" dialog.
> 
> Ken Ray
> Sons of Thunder Software, Inc.

On  Tue, 28 Feb 2012 21:57:40 +0000, Paul Hibbert <lc at pbh.on-rev.com> wrote:
> 
> Hi Graham,
> 
> I have just been though a similar issue, but my app allows the user to save a GIF, PNG or JPEG file and I wanted to be sure the user added the correct extension. I did end up putting a check in place, with a warning dialogue, inside a repeat loop. Potentially a user could sit there all night typing the wrong extension, but the check also corrects the extension and re-presents the save dialogue, so if they continually type a wrong extension over the corrected one, they deserve to sit there all night, eventually they will learn!
> 
> I know it's a bit clumsy, but not being in a position to compete with the likes of Adobe I felt it was better than allowing the user to screw-up and end up with an un-useable file, or worse, overwrite a good file with an un-useable one. It seems the only alternative was to write a custom save dialogue routine to mimic the OS dialogue which could be a nightmare with a cross platform app.
> 
> Ken's answer is the most straightforward, but if you are mainly concerned with the user inadvertently overwriting a file, and really don't want to have a pop-up or re-present the save dialogue, you could check to see if the file exists, then just modify the name slightly. Many apps will add a version number in this case, so if they type MyOwnFile and your script adds the missing .jpg extension, but MyOwnFile.jpg already exists, then you further modify the filename to MyOwnFile-1.jpg or MyOwnFile_1.jpg. The file save routine would need to be in a checking loop so the next MyOwnFile becomes MyOwnFile-2.jpg etc., so it can only exit the loop when it has a unique filename beginning with their choice and ending with the correct extension.
> 
> Paul




More information about the use-livecode mailing list