]> git.mxchange.org Git - flightgear.git/commitdiff
Launcher sets —no-default-config automatically.
authorJames Turner <zakalawe@mac.com>
Thu, 8 Sep 2016 10:41:40 +0000 (11:41 +0100)
committerRoland Haeder <roland@mxchange.org>
Thu, 22 Sep 2016 21:27:49 +0000 (23:27 +0200)
src/Main/main.cxx
src/Main/options.cxx
src/Main/options.hxx

index 9e658617d3d5e79608d5378628324598d9b901f6..d6a89fab5010d6ba4e0d49bc156a83d16e2c52d1 100644 (file)
@@ -482,6 +482,18 @@ int fgMainInit( int argc, char **argv )
     upper_case_property("/sim/tower/airport-id");
     upper_case_property("/autopilot/route-manager/input");
 
+// check if the launcher is reuested, since it affects config file parsing
+    bool showLauncher = flightgear::Options::checkForArg(argc, argv, "launcher");
+    // an Info.plist bundle can't define command line arguments, but it can set
+    // environment variables. This avoids needed a wrapper shell-script on OS-X.
+    showLauncher |= (::getenv("FG_LAUNCHER") != 0);
+    if (showLauncher) {
+        // to minimise strange interactions when launcher and config files
+        // set overlaping options, we disable the default files. Users can
+        // still explicitly request config files via --config options if they choose.
+        flightgear::Options::sharedInstance()->setShouldLoadDefaultConfig(false);
+    }
+
     // Load the configuration parameters.  (Command line options
     // override config file options.  Config file options override
     // defaults.)
@@ -493,11 +505,6 @@ int fgMainInit( int argc, char **argv )
     }
 
 #if defined(HAVE_QT)
-    bool showLauncher = flightgear::Options::checkForArg(argc, argv, "launcher");
-    // an Info.plist bundle can't define command line arguments, but it can set
-    // environment variables. This avoids needed a wrapper shell-script on OS-X.
-    showLauncher |= (::getenv("FG_LAUNCHER") != 0);
-
     if (showLauncher) {
         flightgear::initApp(argc, argv);
         if (!flightgear::runLauncherDialog()) {
index 6bfbbb7b7efdbfee2367d7327812feb06ed1d941..26eec78385079157636ff270faf72a10d3c535cf 100644 (file)
@@ -2628,6 +2628,11 @@ bool Options::shouldLoadDefaultConfig() const
   return p->shouldLoadDefaultConfig;
 }
 
+void Options::setShouldLoadDefaultConfig(bool load)
+{
+    p->shouldLoadDefaultConfig = load;
+}
+
 bool Options::checkForArg(int argc, char* argv[], const char* checkArg)
 {
     for (int i = 0; i < argc; ++i) {
index 60a59d971a2e0b5e81c2b9437ff364c4771e38ae..e680f26d1ac5f85a961c64d8f09a6df34d81d7e1 100644 (file)
@@ -128,13 +128,19 @@ public:
   /**
    * should defualt configuration files be loaded and processed or not?
    * There's many configuration files we have historically read by default
-   * on startup - preferences.xml, fgfs.rc in various places and so on.
+   * on startup - fgfs.rc in various places and so on.
    * --no-default-config allows this behaviour to be changed, so only
-   * expicitly listed files are read - this is useful for testing. Expose
+   * expicitly listed files are read Expose
    * the value of the option here.
    */
   bool shouldLoadDefaultConfig() const;
 
+    /**
+     * when using the built-in launcher, we disable the default config files.
+     * explicitly loaded confg files are still permitted.
+     */
+    void setShouldLoadDefaultConfig(bool load);
+
   /**
    * check if the arguments array contains a particular string (with a '--' or
    * '-' prefix).