/// <summary> /// Saves the current settings stored in the internal dictionary /// </summary> public void Save() { // Update the dictionary from the public properties this["AltSequence"] = AltSequence; this["BazaarPath"] = BazaarPath; this["BranchLocation"] = BranchLocation; this["DbBuildConfigurations"] = DbBuildConfigurations; this["LaunchpadUserName"] = LaunchpadUserName; this["Sequence"] = Sequence; this["UncrustifyPath"] = UncrustifyPath; this["WindowPosition"] = WindowPosition; this["YAMLLocationHistory"] = YAMLLocationHistory; this["CodeGenerationComboID"] = CodeGenerationComboID.ToString(); this["CompilationComboID"] = CompilationComboID.ToString(); this["MiscellaneousComboID"] = MiscellaneousComboID.ToString(); this["SourceCodeComboID"] = SourceCodeComboID.ToString(); this["DatabaseComboID"] = DatabaseComboID.ToString(); this["FlashAfterSeconds"] = FlashAfterSeconds.ToString(); this["NBA_GenerateSolutionOption"] = NBA_GenerateSolutionOption.ToString(); this["NBA_CreateMyConfigurations"] = NBA_CreateMyConfigurations ? "1" : "0"; this["NBA_InitialiseDatabase"] = NBA_InitialiseDatabase ? "1" : "0"; this["NBA_DatabaseConfiguration"] = NBA_DatabaseConfiguration.ToString(); this["NBA_LaunchIDE"] = NBA_LaunchIDE ? "1" : "0"; this["NBA_IDESolution"] = NBA_IDESolution.ToString(); this["NBA_StartClient"] = NBA_StartClient ? "1" : "0"; this["EBA_GenerateSolutionOption"] = EBA_GenerateSolutionOption.ToString(); this["EBA_CreateMyConfigurations"] = EBA_CreateMyConfigurations ? "1" : "0"; this["EBA_InitialiseDatabase"] = EBA_InitialiseDatabase ? "1" : "0"; this["EBA_DatabaseConfiguration"] = EBA_DatabaseConfiguration.ToString(); this["EBA_LaunchIDE"] = EBA_LaunchIDE ? "1" : "0"; this["EBA_IDESolution"] = EBA_IDESolution.ToString(); this["EBA_StartClient"] = EBA_StartClient ? "1" : "0"; this["AutoStartServer"] = AutoStartServer ? "1" : "0"; this["AutoStopServer"] = AutoStopServer ? "1" : "0"; this["MinimiseServerAtStartup"] = MinimiseServerAtStartup ? "1" : "0"; this["TreatWarningsAsErrors"] = TreatWarningsAsErrors ? "1" : "0"; this["DoPreBuildOnIctCommon"] = DoPreBuildOnIctCommon ? "1" : "0"; this["DoPostBuildOnPetraClient"] = DoPostBuildOnPetraClient ? "1" : "0"; this["CompileWinForm"] = CompileWinForm ? "1" : "0"; this["StartClientAfterCompileWinForm"] = StartClientAfterCompileWinForm ? "1" : "0"; this["AutoCheckForUpdates"] = AutoCheckForUpdates ? "1" : "0"; // Add our appVersion key/value if (!this.ContainsKey("ApplicationVersion")) { this.Add("ApplicationVersion", _applicationVersion); } else { this["ApplicationVersion"] = _applicationVersion; } // Now do the low-level save of the file base.Save(_path, ContentHeader); }
/// <summary> /// Main Constructor /// </summary> /// <param name="path">Full path to the local settings file that will be read and written</param> /// <param name="ApplicationVersion">The version of the application hosting this file, eg 1.0.0.100</param> public SettingsDictionary(string path, string ApplicationVersion) { _path = path; _applicationVersion = ApplicationVersion; // Initialise all default values of our public properties in the constructor AltSequence = String.Empty; BazaarPath = String.Empty; BranchLocation = String.Empty; DbBuildConfigurations = String.Empty; Sequence = String.Empty; YAMLLocation = String.Empty; CodeGenerationComboID = 2; CompilationComboID = 2; DatabaseComboID = 1; FlashAfterSeconds = 15; MiscellaneousComboID = 0; AutoStartServer = true; AutoStopServer = true; MinimiseServerAtStartup = true; TreatWarningsAsErrors = true; DoPreBuildOnIctCommon = false; DoPostBuildOnPetraClient = false; CompileWinForm = true; StartClientAfterCompileWinForm = true; AutoCheckForUpdates = true; // Add items to our dictionary this.Add("AltSequence", AltSequence); this.Add("BazaarPath", BazaarPath); this.Add("BranchLocation", BranchLocation); this.Add("DbBuildConfigurations", DbBuildConfigurations); this.Add("Sequence", Sequence); this.Add("YAMLLocation", YAMLLocation); this.Add("CodeGenerationComboID", CodeGenerationComboID.ToString()); this.Add("CompilationComboID", CompilationComboID.ToString()); this.Add("DatabaseComboID", DatabaseComboID.ToString()); this.Add("FlashAfterSeconds", FlashAfterSeconds.ToString()); this.Add("MiscellaneousComboID", MiscellaneousComboID.ToString()); this.Add("AutoStartServer", AutoStartServer ? "1" : "0"); this.Add("AutoStopServer", AutoStopServer ? "1" : "0"); this.Add("MinimiseServerAtStartup", MinimiseServerAtStartup ? "1" : "0"); this.Add("TreatWarningsAsErrors", TreatWarningsAsErrors ? "1" : "0"); this.Add("DoPreBuildOnIctCommon", DoPreBuildOnIctCommon ? "1" : "0"); this.Add("DoPostBuildOnPetraClient", DoPostBuildOnPetraClient ? "1" : "0"); this.Add("CompileWinForm", CompileWinForm ? "1" : "0"); this.Add("StartClientAfterCompileWinForm", StartClientAfterCompileWinForm ? "1" : "0"); this.Add("AutoCheckForUpdates", AutoCheckForUpdates ? "1" : "0"); }
/// <summary> /// Loads settings from the file specified in the constructor /// </summary> public void Load() { // Call our base method that reads the file and fills the dictionary base.Load(_path); // After a load we set the latest values of each of our known properties AltSequence = this["AltSequence"]; BazaarPath = this["BazaarPath"]; BranchLocation = this["BranchLocation"]; DbBuildConfigurations = this["DbBuildConfigurations"]; LaunchpadUserName = this["LaunchpadUserName"]; Sequence = this["Sequence"]; YAMLLocation = this["YAMLLocation"]; CodeGenerationComboID = Convert.ToInt32(this["CodeGenerationComboID"]); CompilationComboID = Convert.ToInt32(this["CompilationComboID"]); MiscellaneousComboID = Convert.ToInt32(this["MiscellaneousComboID"]); SourceCodeComboID = Convert.ToInt32(this["SourceCodeComboID"]); DatabaseComboID = Convert.ToInt32(this["DatabaseComboID"]); FlashAfterSeconds = Convert.ToUInt32(this["FlashAfterSeconds"]); AutoStartServer = (this["AutoStartServer"] != "0"); AutoStopServer = (this["AutoStopServer"] != "0"); MinimiseServerAtStartup = (this["MinimiseServerAtStartup"] != "0"); TreatWarningsAsErrors = (this["TreatWarningsAsErrors"] != "0"); DoPreBuildOnIctCommon = (this["DoPreBuildOnIctCommon"] != "0"); DoPostBuildOnPetraClient = (this["DoPostBuildOnPetraClient"] != "0"); CompileWinForm = (this["CompileWinForm"] != "0"); StartClientAfterCompileWinForm = (this["StartClientAfterCompileWinForm"] != "0"); AutoCheckForUpdates = (this["AutoCheckForUpdates"] != "0"); // Do version-specific upgrades if (this.ContainsKey("ApplicationVersion")) { // This tells us the version of OPDA that saved the ini file we have just read ... if (this["ApplicationVersion"].StartsWith("1.0.1.")) { // We no longer support 'clean' on the compilation combo if (CompilationComboID > 0) { CompilationComboID = CompilationComboID - 1; this["CompilationComboID"] = CompilationComboID.ToString(); } } // Work out the app version from the string - prefix the string with . so there are 4 dots string prevAppVersion = "." + this["ApplicationVersion"]; int nPrevAppVersion = 0; int nMultiplier = 1; // Now go through the string separating the four parts for (int i = 0; i < 4; i++) { int p = prevAppVersion.LastIndexOf('.'); nPrevAppVersion += (nMultiplier * Convert.ToInt32(prevAppVersion.Substring(p + 1))); nMultiplier *= 100; prevAppVersion = prevAppVersion.Substring(0, p); } if ((nPrevAppVersion <= 1000400) && (nPrevAppVersion > 0)) { // We added client gui tests in position 7 after version 1.0.4.0 if (MiscellaneousComboID == 7) { MiscellaneousComboID++; this["CompilationComboID"] = MiscellaneousComboID.ToString(); } } if ((nPrevAppVersion <= 1000500) && (nPrevAppVersion > 0)) { // We added 'Pull' in position 11 and 'Update' in position 12 after 1.0.5.0 if (SourceCodeComboID >= 11) { SourceCodeComboID += 2; this["SourceCodeComboID"] = SourceCodeComboID.ToString(); } } } // Set up the OS environment variables Environment.SetEnvironmentVariable("OPDA_PATH", System.Reflection.Assembly.GetExecutingAssembly().CodeBase); }
/// <summary> /// Main Constructor /// </summary> /// <param name="path">Full path to the local settings file that will be read and written</param> /// <param name="ApplicationVersion">The version of the application hosting this file, eg 1.0.0.100</param> public SettingsDictionary(string path, string ApplicationVersion) { _path = path; _applicationVersion = ApplicationVersion; // Initialise all default values of our public properties in the constructor AltSequence = String.Empty; BazaarPath = String.Empty; BranchLocation = String.Empty; DbBuildConfigurations = String.Empty; LaunchpadUserName = String.Empty; Sequence = String.Empty; UncrustifyPath = "ICT"; WindowPosition = String.Empty; YAMLLocationHistory = String.Empty; CodeGenerationComboID = 2; CompilationComboID = 2; MiscellaneousComboID = 0; SourceCodeComboID = 13; DatabaseComboID = 1; FlashAfterSeconds = 15; NBA_GenerateSolutionOption = 1; NBA_CreateMyConfigurations = true; NBA_InitialiseDatabase = true; NBA_DatabaseConfiguration = 0; NBA_LaunchIDE = true; NBA_IDESolution = 0; NBA_StartClient = true; EBA_GenerateSolutionOption = 0; EBA_CreateMyConfigurations = false; EBA_InitialiseDatabase = true; EBA_DatabaseConfiguration = 0; EBA_LaunchIDE = true; EBA_IDESolution = 0; EBA_StartClient = true; AutoStartServer = true; AutoStopServer = true; MinimiseServerAtStartup = true; TreatWarningsAsErrors = true; DoPreBuildOnIctCommon = false; DoPostBuildOnPetraClient = false; CompileWinForm = true; StartClientAfterCompileWinForm = true; AutoCheckForUpdates = true; // Add items to our dictionary this.Add("AltSequence", AltSequence); this.Add("BazaarPath", BazaarPath); this.Add("BranchLocation", BranchLocation); this.Add("DbBuildConfigurations", DbBuildConfigurations); this.Add("LaunchpadUserName", LaunchpadUserName); this.Add("Sequence", Sequence); this.Add("UncrustifyPath", UncrustifyPath); this.Add("WindowPosition", WindowPosition); this.Add("YAMLLocationHistory", YAMLLocationHistory); this.Add("CodeGenerationComboID", CodeGenerationComboID.ToString()); this.Add("CompilationComboID", CompilationComboID.ToString()); this.Add("MiscellaneousComboID", MiscellaneousComboID.ToString()); this.Add("SourceCodeComboID", SourceCodeComboID.ToString()); this.Add("DatabaseComboID", DatabaseComboID.ToString()); this.Add("FlashAfterSeconds", FlashAfterSeconds.ToString()); this.Add("NBA_GenerateSolutionOption", NBA_GenerateSolutionOption.ToString()); this.Add("NBA_CreateMyConfigurations", NBA_CreateMyConfigurations ? "1" : "0"); this.Add("NBA_InitialiseDatabase", NBA_InitialiseDatabase ? "1" : "0"); this.Add("NBA_DatabaseConfiguration", NBA_DatabaseConfiguration.ToString()); this.Add("NBA_LaunchIDE", NBA_LaunchIDE ? "1" : "0"); this.Add("NBA_IDESolution", NBA_IDESolution.ToString()); this.Add("NBA_StartClient", NBA_StartClient ? "1" : "0"); this.Add("EBA_GenerateSolutionOption", EBA_GenerateSolutionOption.ToString()); this.Add("EBA_CreateMyConfigurations", EBA_CreateMyConfigurations ? "1" : "0"); this.Add("EBA_InitialiseDatabase", EBA_InitialiseDatabase ? "1" : "0"); this.Add("EBA_DatabaseConfiguration", EBA_DatabaseConfiguration.ToString()); this.Add("EBA_LaunchIDE", EBA_LaunchIDE ? "1" : "0"); this.Add("EBA_IDESolution", EBA_IDESolution.ToString()); this.Add("EBA_StartClient", EBA_StartClient ? "1" : "0"); this.Add("AutoStartServer", AutoStartServer ? "1" : "0"); this.Add("AutoStopServer", AutoStopServer ? "1" : "0"); this.Add("MinimiseServerAtStartup", MinimiseServerAtStartup ? "1" : "0"); this.Add("TreatWarningsAsErrors", TreatWarningsAsErrors ? "1" : "0"); this.Add("DoPreBuildOnIctCommon", DoPreBuildOnIctCommon ? "1" : "0"); this.Add("DoPostBuildOnPetraClient", DoPostBuildOnPetraClient ? "1" : "0"); this.Add("CompileWinForm", CompileWinForm ? "1" : "0"); this.Add("StartClientAfterCompileWinForm", StartClientAfterCompileWinForm ? "1" : "0"); this.Add("AutoCheckForUpdates", AutoCheckForUpdates ? "1" : "0"); for (int i = 1; i < 10; i++) { SetBranchHistoryItem(i, String.Empty); } }