ide: settings, installer: Fixed migration of existing global settings
authorJerome St-Louis <jerome@ecere.com>
Sat, 10 Mar 2012 02:09:55 +0000 (21:09 -0500)
committerJerome St-Louis <jerome@ecere.com>
Sat, 10 Mar 2012 02:09:55 +0000 (21:09 -0500)
ide/src/IDESettings.ec
ide/src/OldIDESettings.ec
installer/src/installer.ec

index b730aee..6cc4aee 100644 (file)
@@ -173,7 +173,7 @@ private:
    {
       SettingsIOResult result = GlobalSettings::Load();
       IDESettings data = (IDESettings)this.data;
-      //if(result == success)
+      CompilerConfig defaultCompiler = null;
       if(!data)
       {
          this.data = IDESettings { };
@@ -203,8 +203,7 @@ private:
                data.useFreeCaret = oldSettings.useFreeCaret;
                data.showLineNumbers = oldSettings.showLineNumbers;
                data.caretFollowsScrolling = oldSettings.caretFollowsScrolling;
-               delete data.displayDriver;
-               data.displayDriver = oldSettings.displayDriver;
+               delete data.displayDriver; data.displayDriver = CopyString(oldSettings.displayDriver);
                data.projectDefaultTargetDir = oldSettings.projectDefaultTargetDir;
                data.projectDefaultIntermediateObjDir = oldSettings.projectDefaultIntermediateObjDir;
                         
@@ -215,17 +214,23 @@ private:
          }
          if(result == fileNotFound || !data)
          {
-            CompilerConfig defaultCompiler = MakeDefaultCompiler(defaultCompilerName, true);
-            // We incref the compilers below, so reset refCount to 0
-            defaultCompiler._refCount = 0;
             data = (IDESettings)this.data;
-
-            data.compilerConfigs.Add(defaultCompiler);
             data.useFreeCaret = true;
             data.showLineNumbers = true;
             data.caretFollowsScrolling = true;
          }
       }
+      // Ensure we have a default compiler
+      defaultCompiler = data.GetCompilerConfig(defaultCompilerName);
+      if(!defaultCompiler)
+      {
+         defaultCompiler = MakeDefaultCompiler(defaultCompilerName, true);
+         data.compilerConfigs.Add(defaultCompiler);
+      }
+
+      // We incref the compilers below, so reset refCount to 0
+      defaultCompiler._refCount = 0;
+
       CloseAndMonitor();
       if(data.compilerConfigs)
       {
@@ -502,6 +507,7 @@ private:
          projectDefaultTargetDir = ReplaceInCopyString(projectDefaultTargetDir, oldPath, oldLen, newPath, newLen);
       if(projectDefaultIntermediateObjDir && projectDefaultIntermediateObjDir[0])
          projectDefaultIntermediateObjDir = ReplaceInCopyString(projectDefaultIntermediateObjDir, oldPath, oldLen, newPath, newLen);
+      return true;
    }
 
    char * ReplaceInCopyString(char * string, char * find, int lenFind, char * replace, int lenReplace)
index 5d37053..7c2d256 100644 (file)
@@ -46,7 +46,7 @@ class OldIDESettings : GlobalAppSettings
    //int numJobs;
    char * displayDriver;
    useFreeCaret = true;
-   showLineNumbers = false;
+   showLineNumbers = true;
    caretFollowsScrolling = true;
    //numJobs = 1;
 
index 38d017c..9097c98 100644 (file)
@@ -1,7 +1,7 @@
 #ifdef NOMINGW
-static define buildString = $"Ecere SDK v0.44 (Without MinGW) -- built on March 8, 2012 ";
+static define buildString = $"Ecere SDK v0.44 (Without MinGW) -- built on March 9, 2012 ";
 #else
-static define buildString = $"Ecere SDK v0.44 -- built on March 8, 2012 ";
+static define buildString = $"Ecere SDK v0.44 -- built on March 9, 2012 ";
 #endif
 
 #define WIN32_LEAN_AND_MEAN
@@ -1236,7 +1236,7 @@ class InstallThread : Thread
          char userProfile[MAX_LOCATION];
 
          // Configure IDE
-         IDESettings settings { }; // instantiate the IDESettings class from the IDESettings.ec file. Do this at a global level so that all methods can access settings.
+         IDESettings settings = null; // Don't instantiate yet so we can pick up old settings
 
          IDESettingsContainer settingsContainer
          {
@@ -1267,8 +1267,11 @@ class InstallThread : Thread
                   PathCat(idePath, "IDE.exe");
                }
 
-               if(!compiler.executableDirs.Find(path))
-                  compiler.executableDirs.Add(CopyString(path));
+               if(c != vanilla)
+               {
+                  if(!compiler.executableDirs.Find(path))
+                     compiler.executableDirs.Add(CopyString(path));
+               }
 
                if(c == runtime || c == vanilla)
                {