From 90ce4ec93d361fce1d8b504366771b1cfc1bcc3e Mon Sep 17 00:00:00 2001 From: ThorstenB Date: Fri, 30 Dec 2011 01:01:15 +0100 Subject: [PATCH] Clean-up: move autosave.xml loading code to proper method --- src/Main/fg_init.cxx | 22 ++-------------------- src/Main/globals.cxx | 18 +++++++++++++++--- src/Main/globals.hxx | 2 +- 3 files changed, 18 insertions(+), 24 deletions(-) diff --git a/src/Main/fg_init.cxx b/src/Main/fg_init.cxx index 47ecbd449..adae9f205 100644 --- a/src/Main/fg_init.cxx +++ b/src/Main/fg_init.cxx @@ -548,34 +548,16 @@ bool fgInitConfig ( int argc, char **argv ) return false; } - SGPropertyNode autosave; - - - SGPath autosaveFile = simgear::Dir(dataPath).file("autosave.xml"); - if (autosaveFile.exists()) { - SG_LOG(SG_INPUT, SG_INFO, "Reading user settings from " << autosaveFile.str()); - try { - readProperties(autosaveFile.str(), &autosave, SGPropertyNode::USERARCHIVE); - } catch (sg_exception& e) { - SG_LOG(SG_INPUT, SG_WARN, "failed to read user settings:" << e.getMessage() - << "(from " << e.getOrigin() << ")"); - } - } + globals->loadUserSettings(dataPath); // Scan user config files and command line for a specified aircraft. flightgear::Options::sharedInstance()->initAircraft(); - FindAndCacheAircraft f(&autosave); + FindAndCacheAircraft f(globals->get_props()); if (!f.loadAircraft()) { return false; } - copyProperties(&autosave, globals->get_props()); - - // TODO Move some of the code above into loadUserSettings after the 2.6 release - // call dummy function, for now just to indicate that data was loaded - globals->loadUserSettings(); - // parse options after loading aircraft to ensure any user // overrides of defaults are honored. flightgear::Options::sharedInstance()->processOptions(); diff --git a/src/Main/globals.cxx b/src/Main/globals.cxx index f69a7f256..bbe5dc9fd 100644 --- a/src/Main/globals.cxx +++ b/src/Main/globals.cxx @@ -444,11 +444,23 @@ FGGlobals::restoreInitialState () // Load user settings from autosave.xml void -FGGlobals::loadUserSettings() +FGGlobals::loadUserSettings(const SGPath& dataPath) { - // dummy method for now. - //TODO Move code loading autosave.xml in here after the 2.6.0 release. + // remember that we have (tried) to load any existing autsave.xml haveUserSettings = true; + + SGPath autosaveFile = simgear::Dir(dataPath).file("autosave.xml"); + SGPropertyNode autosave; + if (autosaveFile.exists()) { + SG_LOG(SG_INPUT, SG_INFO, "Reading user settings from " << autosaveFile.str()); + try { + readProperties(autosaveFile.str(), &autosave, SGPropertyNode::USERARCHIVE); + } catch (sg_exception& e) { + SG_LOG(SG_INPUT, SG_WARN, "failed to read user settings:" << e.getMessage() + << "(from " << e.getOrigin() << ")"); + } + } + copyProperties(&autosave, globals->get_props()); } // Save user settings in autosave.xml diff --git a/src/Main/globals.hxx b/src/Main/globals.hxx index fd81b0b50..297d9c576 100644 --- a/src/Main/globals.hxx +++ b/src/Main/globals.hxx @@ -330,7 +330,7 @@ public: /** * Load user settings from autosave.xml */ - void loadUserSettings(); + void loadUserSettings(const SGPath& datapath); /** * Save user settings in autosave.xml -- 2.39.5