Menu

#205 GUI does not reflect command line config overrides

open
nobody
GUI (105)
1
2009-03-23
2004-10-12
MBauer
No

Versions:

Win32

ScummVM 0.6.1b (Aug 4 2004 10:07:42)
Features compiled in: Vorbis MP3 zLib MPEG2

Details:
ScummVM allows setting of the savepath through the
SCUMMVM_SAVEPATH environment variable.
The path displayed in the GUI under
"Options/Misc/Savegame path" is not the value of
SCUMMVM_SAVEPATH as expected, but the location of the
ScummVM.exe.

Reproducing:

- go to the Command Prompt
- set SCUMMVM_SAVEPATH=%USERPROFILE%\ScummVMSaves\ - mkdir "%SCUMMVM_SAVEPATH%"
- run ScummVM.exe from wherever it is installed.
- In the GUI check "Options/Misc/Savegame path" to be
different from SCUMMVM_SAVEPATH

Discussion

1 2 > >> (Page 1 of 2)
  • Max Horn

    Max Horn - 2004-10-13

    Logged In: YES
    user_id=12935

    My prefered solution to this "bug" is to just remove
    SCUMMVM_SAVEPATH, which IMO is an aberration that
    should never have been added in the first place.

     
  • Max Horn

    Max Horn - 2004-10-13
    • priority: 5 --> 1
     
  • Torbjörn Andersson

    Logged In: YES
    user_id=577918

    I'm in favor of removing SCUMMVM_SAVEPATH, but I'm usually
    running ScummVM on a UNIX-ish system where each user has his
    own ~/.scummvmrc file. On Windows I believe the scummvm.ini
    file is always stored in C:\WINDOWS, and I don't know where
    it's stored on a Mac.

    Though I guess you could use the --config command-line
    option to get around that...

     
  • MBauer

    MBauer - 2004-10-13

    Logged In: YES
    user_id=1137597

    I resolved for using SCUMMVM_SAVEPATH when creating a CD
    with ScummVM, scummvm.ini and some games on it. I wanted it
    to completely run from CD, but store the savegames in the
    current user's profile.

    So i created a scummvm.ini with relative paths for the CD,
    passing it to ScummVM using the --config argument.

    As the save directory depends on the current user, i use a
    batchfile to set SCUMMVM_SAVEPATH =
    %USERPROFILE%\ScummVM-Savegames before starting ScummVM.

    However if you decide to remove SCUMMVM_SAVEPATH i'd really
    appreciate if you add a command line argument for the
    savepath instead.

    Granted that i'm new to ScummVM, there might be other
    solutions for my problem, so i'd appreciate any suggestions
    for better solutions.

     
  • Eugene Sandulenko

    Logged In: YES
    user_id=166507

    scummvm --savepath=/blah/blah/ will do the trick

     
  • MBauer

    MBauer - 2004-10-13

    Logged In: YES
    user_id=1137597

    Thanks, that works.
    But it works just the same as the SCUMMVM_SAVEPATH:
    The given path is used by ScummVM, but is still not
    displayed correctly in the GUI.

    I guess i'll have to start reading the sources instead of
    the readme.txt to find the latest tweaks... ;-)

     
  • Torbjörn Andersson

    Logged In: YES
    user_id=577918

    I've documented --savepath now. Thanks for pointing it out. ;-)

     
  • Eugene Sandulenko

    Logged In: YES
    user_id=166507

    For me it seems a correct behaviour. I.e. GUI reflect what
    could be changed, that is config file value. There is no way
    to change command line option or environment variable.

     
  • MBauer

    MBauer - 2004-10-17

    Logged In: YES
    user_id=1137597

    Actually you *can* change the savepath in the GUI.
    After the change the new path correctly displayed and also
    used to store the savegames. This works even if the .ini
    cannot be saved.
    However, if someone just goes to Options/Misc to check on
    the location of his savegames, he'll get prompted the wrong
    path.
    So to me the behavior is correct, only the presentation is
    flawed.

     
  • Max Horn

    Max Horn - 2004-10-17

    Logged In: YES
    user_id=12935

    Well, I'll look at the UI issue eventually. For now, ender, please
    comment whether you have objections to removing
    SCUMMVM_SAVEPATH.

     
  • Max Horn

    Max Horn - 2004-10-17
    • assigned_to: nobody --> ender
     
  • MBauer

    MBauer - 2004-10-17

    Logged In: YES
    user_id=1137597

    I fixed the problem with my own build of ScummVM based on
    the sources of the 0.6.1b release. It's working for me so
    i'll share my changes.

     
  • Max Horn

    Max Horn - 2004-10-17

    Logged In: YES
    user_id=12935

    Assuming you wanted to attach a file, make sure you enable the "Check
    to Upload and Attach a File" checkbox.

     
  • MBauer

    MBauer - 2004-10-17

    diff of the changes to config-manager.cpp

     
  • MBauer

    MBauer - 2004-10-17

    Logged In: YES
    user_id=1137597

    Sorry, i overlooked the checkbox.

     
  • Max Horn

    Max Horn - 2004-10-17

    Logged In: YES
    user_id=12935

    That patch doesn't apply over here on latest CVS. You should do patches
    using the -u option, so they carry some context, and apply in multiple
    versions of the source...

    Anyway, that change isn't a proper solution to the problem ; it changes
    ConfigManager::get() to work incorrectly. A proper fix would almost
    definitiely be done in the GUI code.

     
  • MBauer

    MBauer - 2004-10-17

    Logged In: YES
    user_id=1137597

    I already thought so. My idea was just to make
    ConfigManager::get() work like you would guess it does from
    looking at ConfigManager::hasKey().
    At first i had changed GlobalOptionsDialog::open() to look
    for the transient savepath, but the second patch looked
    better... ;-)

    Anyway, thanks for your comment. I'm looking forward to
    seeing the "real fix".

     
  • James Brown

    James Brown - 2004-10-23
    • summary: SCUMMVM_SAVEPATH is not reflected in GUI --> GUI does not reflect savepath overrides
     
  • James Brown

    James Brown - 2004-10-23

    Logged In: YES
    user_id=2715

    Hmm, SCUMMVM_SAVEPATH is an interesting one. Really,
    we should depreciate it since there is now a commandline and
    config/gui option.

    However some users may prefer adding a
    SCUMMVM_SAVEPATH=... override in
    their .bashrc/.profile/whatever. This is also useful for
    system-wide installs.

    I think it should probably be left in, since the codepath should
    handle it the same as the cmdline switch - which has the same
    issue at the moment. Updating summary to suit :)

     
  • Eugene Sandulenko

    Logged In: YES
    user_id=166507

    What is the status of this item?

     
  • James Brown

    James Brown - 2005-10-12

    Logged In: YES
    user_id=2715

    The situation is unchanged, the GUI still ignores
    any path override via environment variable or commandline
    option. Perhaps this should be moved to RFE?

    There are two reasonable behaviours for this particular
    situation:

    A) Only display the editable savepath, ignoring the static
    override, as we currently do. I think this is correct and could be
    considered 'behaviour by design', but perhaps non-intuitive to
    some users.

    B) If an override path is specified and we do decide to display it
    in the GUI, the field should simply be disabled to ensure the
    path cannot be changed.... thus accidently saved to the config
    file.

    Personally I'm quite happy with it, but it would only be a few lines
    of code to implement the alternate behaviour.

     
  • Eugene Sandulenko

    • milestone: 198037 -->
    • labels: 605028 -->
     
  • Eugene Sandulenko

    Logged In: YES
    user_id=166507

    Moved it to RFE. Same lowest priority.

    Yes, logic is flawed here, and I think to prevent it best
    would be to implement behaviour (B) and describe it in
    documentation.

     
  • Max Horn

    Max Horn - 2007-06-10
    • summary: GUI does not reflect savepath overrides --> GUI does not reflect command line config overrides
    • assigned_to: ender --> kirben
     
  • Max Horn

    Max Horn - 2007-06-10

    Logged In: YES
    user_id=12935
    Originator: NO

    This problem does not just affect the savepath, mind you, but *any* command line config. Be it the music volume or the subtitles settings.

    This nicely demonstrates one of the pathologies that occur when you mix command line options and GUI options; the former being completely transient, the latter usually being persistent. I am not sure if there is a proper way to resolve those in a really satisfactory way, ever.. :-/

    Let's think about it: The user fires up ScummVM via the command line with some special (transient!) settings, but *without* specifying a game. Why would he do that, normally? The only plausible thing I can come up with is: To start a game for which he doesn't recall the precise target name. Fine.
    Would he open the options dialog in that case? Probably not, *unless* he wanted to change some additional settings before running his beloved game, some settings for which he didn't recall the command line options and/or was too lazy to type them all in.

    So, I imagine in that case he would want:
    1) the additional changes (made via the GUI) to be transient, too, not persistent (as usual)
    2) his command line options to have precedence over the game/target specific settings
    Hence, one might consider simply turning of persistence of the global options dialog in the launcher when any command line options are present. That should work fine for most users:
    * nothing changes if you never use special command line options
    * nothing changes if you use command line options + a target
    * it would be similar to Enders' "plan B" from below, only that the user could still use the options dialog, for temporary settings

    Of course, this approach is far from perfect, too. But in the end, the user could *always* come up with some odd combination of effects should he want to. For example, specify a custom "--savepath", then run ScummVM, open the options dialog, and set yet another savepath. Which would probably be a rather silly thing to do. Unless you consider the "CD with ScummVM" scenario mbauer0xff described below. Then again, in his scenario, the .ini is on a CD anyway, so it'd be read-only (and hence all settings transient) anyway.

    A final suggestion: Ignore all (well, almost all, --config being the exception) config settings when running the launcher, possibly printing a message that we just did so. It would resolve the issue presented here completely and in a very simple fashion. Of course it would also make it impossible to use the "user specific savepath" trick mbauer0xff wanted to use. But then we could resolve *that* by using a standard savepath inside the user home dir under Windows, too (like we now do with the default config file location on windows, too). Kirben, would that be feasible/sensible (independent of the other thoughts mentioned here)?

    Gah. I like none of these particularly. :-(

     
1 2 > >> (Page 1 of 2)
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.