/** * Fills the toMigrationCombo ComboBox data. */ public static void FillTargetMigrationComboOptions() { ComboBox migrateSourceCombo = MainForm.GetMigrateSourceCombo(); ComboBox migrateTargetCombo = MainForm.GetMigrateTargetCombo(); if (migrateTargetCombo.Items.Count <= 0) { FillMigrationComboOptions(migrateTargetCombo, defaultIgnoreToMigrationItems, true); //Making sure we have at least 1 simulator to migrate to, else we exit the program. if (migrateTargetCombo.Items.Count == 0) { MessageBox.Show("The program could not identify any simulators to migrate to on this computer.\nThe application will now exit."); Application.Exit(); } //We don't need to return because we want to check if we need to remove un-needed options from the "from" combo box. } int ignoreID = 0; int currentMigrateFromSelectedValue = GetSelectedItemValue(migrateSourceCombo); if (migrateTargetCombo.SelectedIndex >= 0) { SimulatorOption selectedItem = GetSelectedItem(migrateTargetCombo); foreach (SimulatorOption migrateFromComboItem in migrateSourceCombo.Items) { if (selectedItem.Equals(migrateFromComboItem)) { ignoreID = selectedItem.GetValue(); } } } if (ignoreID > 0) { int defaultLength = defaultIgnoreFromMigrationItems.Length; int[] ignoreIDs = new int[defaultLength + 1]; defaultIgnoreFromMigrationItems.CopyTo(ignoreIDs, 0); ignoreIDs[defaultLength] = ignoreID; FillMigrationComboOptions(migrateSourceCombo, ignoreIDs, false); } else { FillMigrationComboOptions(migrateSourceCombo, defaultIgnoreFromMigrationItems, false); } if (SettingsHandler.GetSetting("migrationTarget").Equals("") && migrateTargetCombo.SelectedIndex >= 0 && !defaultTargetChosen) { SelectItemByVal(migrateTargetCombo, defaultMigrateTo); defaultTargetChosen = true; } SelectItemByVal(migrateSourceCombo, currentMigrateFromSelectedValue); }
/** * Copies the config files from the target sim to the source sim. */ public static bool CopyTargetSimFilesToSource() { SimulatorOption sourceOption = MainFormHandler.GetSelectedSourceSimulator(); SimulatorOption targetOption = MainFormHandler.GetSelectedTargetSimulator(); if (sourceOption == null || targetOption == null) { return(false); } CreateTargetSimulatorBackup(); CreateSourceSimulatorBackup(); string sourceAppDataFolder = sourceOption.GetAppDataPath(true); string sourceProgramDataFolder = sourceOption.GetProgramDataPath(true); string targetAppDataFolder = targetOption.GetAppDataPath(true); string targetProgramDataFolder = targetOption.GetProgramDataPath(true); foreach (string configFile in configFiles) { string sourceConfigFile = configFile; //Handling Prepar3d.CFG and FSX.CFG files. if (configFile.Equals(targetOption.GetSimConfigFile())) { sourceConfigFile = sourceOption.GetSimConfigFile(); } try { if (File.Exists(targetAppDataFolder + "\\" + configFile)) { File.Copy(targetAppDataFolder + "\\" + configFile, sourceAppDataFolder + "\\" + sourceConfigFile, true); } if (File.Exists(targetProgramDataFolder + "\\" + configFile)) { File.Copy(targetProgramDataFolder + "\\" + configFile, sourceProgramDataFolder + "\\" + sourceConfigFile, true); } } catch (Exception e) { ErrorLogger.LogError("Could not copy file, function copyTargetSimFilesToSource() - " + e.ToString()); continue; } } HistoryHandler.AppendHistory("3," + sourceOption.GetValue()); return(true); }
/** * Sets the path of the source simulator as the target. */ public static bool SetSourceAsTarget() { SimulatorOption sourceOption = MainFormHandler.GetSelectedSourceSimulator(); SimulatorOption targetOption = MainFormHandler.GetSelectedTargetSimulator(); if (sourceOption == null || targetOption == null) { return(false); } string targetPath = targetOption.GetSimPath(); int registryIndex = 0; foreach (string registryPath in sourceOption.GetRegistryPaths()) { string sourcePath = RegistryInterface.GetRegistryValue(registryPath); RegistryInterface.SetRegistryValue(registryPath, targetPath, true); string log = ""; if (!sourcePath.Equals("") && sourcePath != null) { log = "1," + sourceOption.GetValue() + "," + registryIndex + "," + sourcePath; } else { log = "1," + sourceOption.GetValue() + "," + registryIndex + ",0"; } HistoryHandler.AppendHistory(log); registryIndex++; } return(true); }
/** * Fills the fromMigrationCombo ComboBox data. */ public static void FillSourceMigrationComboOptions() { ComboBox migrateSourceCombo = MainForm.GetMigrateSourceCombo(); ComboBox migrateTargetCombo = MainForm.GetMigrateTargetCombo(); if (migrateSourceCombo.Items.Count <= 0) { FillMigrationComboOptions(migrateSourceCombo, defaultIgnoreFromMigrationItems, false); return; } int ignoreID = 0; int currentMigrateToSelectedValue = GetSelectedItemValue(migrateTargetCombo); if (migrateSourceCombo.SelectedIndex >= 0) { SimulatorOption selectedItem = GetSelectedItem(migrateSourceCombo); foreach (SimulatorOption migrateToComboItem in migrateTargetCombo.Items) { if (selectedItem.Equals(migrateToComboItem)) { ignoreID = selectedItem.GetValue(); break; } } } if (ignoreID > 0) { int defaultLength = defaultIgnoreToMigrationItems.Length; int[] ignoreIDs = new int[defaultLength + 1]; defaultIgnoreToMigrationItems.CopyTo(ignoreIDs, 0); ignoreIDs[defaultLength] = ignoreID; FillMigrationComboOptions(migrateTargetCombo, ignoreIDs, true); } else { FillMigrationComboOptions(migrateTargetCombo, defaultIgnoreToMigrationItems, true); } SelectItemByVal(migrateTargetCombo, currentMigrateToSelectedValue); }
/** * Fills a specific combo box with the migration options. */ protected static void FillMigrationComboOptions(ComboBox combo, int[] ignoreIDs, bool onlyInPC) { combo.Items.Clear(); for (int i = 0; i < allSimulatorOptions.Count; i++) { SimulatorOption optionObject = allSimulatorOptions[i]; if (optionObject == null) { continue; } if (ignoreIDs.Contains(optionObject.GetValue())) { continue; } if (onlyInPC && !simOptionsInPC.Contains(optionObject)) { continue; } combo.Items.Add(optionObject); } //Making sure the migration change event does not fire, or else an endless recursion will occur. MainFormHandler.SetIgnoreSourceMigrationChange(true); MainFormHandler.SetIgnoreTargetMigrationChange(true); if (combo.Items.Count > 0) { combo.SelectedIndex = 0; } MainFormHandler.SetIgnoreSourceMigrationChange(false); MainFormHandler.SetIgnoreTargetMigrationChange(false); }