Quote: OK I see you acknowledge that point. So how does the program guess when to be "smart"?
You are already telling it when to be that smart, by allowing us to specify an exact default path for it. The problem is, its being even dumber than most, in that its ignoring its "own" box in favor of what is going on in someone else's. Think of it this way. Each application can either watch what everyone else is doing, or it can ignore everyone else. The method you are currently using to get the path, instead of using either a basic, "If you don't specify what the path is, then it should normally place it in X.", or a, "Oh, you last saved a file in Y, I will try to open it there (which in the case of logs doesn't imho make much more sense)", you are getting the path from something that keeps track of what everything else on the system may be doing. If I am opening a log file for Mushclient, I expect, as I suspect most people will, that, unless I say otherwise, its going to be where Mushclient's installer specified as the default location. I might, if I **manually** open a log file expect the world to "remember" where I want log files for that world. If I set it up to open automatically, then imho, it should be either the "last place" that one was opened, if I have done so before, the default path in global settings, or the normal Mushclient path if I have a) not opened any logs for that world and b) there is no default path specified for where to put them.
In other words. Good behavior would, and this is just my opinion, be to go:
Is this an auto open?
Yes - Look for "Last Log Folder=" in world data.
Was one found?
Yes - Open the new file in this path.
No - Is there a global "default"?
Yes - Open in the global path and set "Last Log Folder" = "Global Default Path".
No - Open in install default path (or what ever you decide Mushclient should use here).
Right now that is "Application Path" + "\logs\.
Set "Last Log Folder = Global Default Path.
No - Open file dialog with path set as per same logic as above.
If the user changes the path, then set "Last Log Folder" to where the user specified.
Note, this *may* require, to avoid the pitfalls of placing this data in the world file, which might not be saved, or in the registry, where its a pain in the rear, saving some settings in an old style .ini file for the client. Something like:
[World Log Paths]
b42313b380ebf45f5c61edce = "C:\Documents and Settings\Kagehi\MUSHclient\Logs\"
Also a good place like the current size/location of Muschlient's main window and other "global" settings. Frankly, I think that in some ways, their switch from .ini files to system registry, in a wide number of cases where it just doesn't make any bloody sense to have them, since they are not shared between applications, was a serious mistake. I mean, you want to register a component or provide other automation or intercommunications data, fine, but why add in the other 90% of the data that isn't relevant to any of that, and which just increases the size, complexity and odds of one accidental error fracking the whole bloody system? Damn silly if you ask me. |