]> git.mxchange.org Git - flightgear.git/blobdiff - src/GUI/new_gui.cxx
Support for multiple data dirs.
[flightgear.git] / src / GUI / new_gui.cxx
index eff8bbe2fb3379078c7d1531c4e33ce1dab0da30..8ca5c12c5b9c03845f50713325e9aba92e1d4448 100644 (file)
@@ -76,6 +76,9 @@ NewGUI::init ()
     readDir(p);
     const std::string aircraft_dir(fgGetString("/sim/aircraft-dir"));
     readDir( SGPath(aircraft_dir, "gui/dialogs") );
+    
+    // Fix for http://code.google.com/p/flightgear-bugs/issues/detail?id=947
+    fgGetNode("sim/menubar")->setAttribute(SGPropertyNode::PRESERVE, true);
     _menubar->init();
 }
 
@@ -290,9 +293,15 @@ NewGUI::newDialog (SGPropertyNode* props)
 void
 NewGUI::readDir (const SGPath& path)
 {
+    simgear::Dir dir(path);
+    if( !dir.exists() )
+    {
+      SG_LOG(SG_INPUT, SG_INFO, "directory does not exist: " << path.str());
+      return;
+    }
+
     flightgear::NavDataCache* cache = flightgear::NavDataCache::instance();
     flightgear::NavDataCache::Transaction txn(cache);
-    simgear::Dir dir(path);
     simgear::PathList xmls = dir.children(simgear::Dir::TYPE_FILE, ".xml");
     
     BOOST_FOREACH(SGPath xmlPath, xmls) {