private void Reset() { curPath = ""; textBoxCurPath.Text = "No Path Loaded"; textBoxName.Text = ""; textBoxComment.Text = ""; textBoxCategories.Text = ""; textBoxExe.Text = ""; textBoxExeA320.Text = ""; textBoxIcon.Text = ""; checkBoxLaunchWithFile.Checked = false; EnableFields(false); textBoxMimeTypes.Text = ""; checkBoxTerminal.Checked = false; textBoxManual.Text = ""; checkBoxJoystickMode.Checked = false; checkBoxGSensor.Checked = false; checkBoxHardwareScaling.Checked = false; desktopFileOpt = DesktopFileOption.Ignore; }
private void richButtonIgnore_Click(object sender, EventArgs e) { option = DesktopFileOption.Ignore; DialogResult = DialogResult.OK; }
private void richButtonUseAsIs_Click(object sender, EventArgs e) { option = DesktopFileOption.UseAsIs; DialogResult = DialogResult.OK; }
private void richButtonLoad_Click(object sender, EventArgs e) { option = DesktopFileOption.LoadExisting; DialogResult = DialogResult.OK; }
private void LoadDirectory(string path) { Reset(); curPath = path; textBoxCurPath.Text = path; List <string> desktopFiles = new List <string>(); IEnumerable <string> tempDesktopFiles = Directory.EnumerateFiles(path, "*.desktop"); foreach (string desktopFile in tempDesktopFiles) { desktopFiles.Add(desktopFile); } if (desktopFiles.Count > 0) { ExistingDesktopFilesWindow desktopAskWindow = new ExistingDesktopFilesWindow(); DialogResult result = desktopAskWindow.ShowDialog(); if (result == DialogResult.OK) { desktopFileOpt = desktopAskWindow.DesktopFileOption; if (desktopFileOpt == DesktopFileOption.LoadExisting) { string execGcw = ""; string execA320 = ""; DesktopFile desktopFileToUse = null; // Load desktop files List <DesktopFile> loadedDesktopFiles = new List <DesktopFile>(); foreach (string desktopFilename in desktopFiles) { DesktopFile df = new DesktopFile(); Regex platformPattern = new Regex("default\\.([ ._0-9A-Za-z-]+)\\.desktop"); string platform = platformPattern.Match(Path.GetFileName(desktopFilename)).Groups[1].Value; if (!df.ReadDesktopFile(path, platform)) { MessageBox.Show("Loading of existing desktop file failed: " + df.LastError, "Load Error", MessageBoxButtons.OK, MessageBoxIcon.Error); continue; } loadedDesktopFiles.Add(df); if (platform == "gcw0") { execGcw = df.Exec; } else if (platform == "a320") { execA320 = df.Exec; } if (desktopFileToUse == null) { desktopFileToUse = df; } } if (loadedDesktopFiles.Count > 1) { // Compare desktop files // If they differ other than the executable, prompt to pick one to use if (desktopFileToUse != null) { foreach (DesktopFile df in loadedDesktopFiles) { if (!desktopFileToUse.Compare(df)) { LoadDesktopSelectorDialog selectorDialog = new LoadDesktopSelectorDialog(); selectorDialog.SetData(loadedDesktopFiles); DialogResult selectorResult = selectorDialog.ShowDialog(); if (result == DialogResult.OK) { DesktopFile selected = selectorDialog.SelectedData; if (selected != null) { desktopFileToUse = selected; } else { desktopFileToUse = null; } } else { desktopFileToUse = null; } break; } } } } if (desktopFileToUse != null) { // Set fields with desktop file data textBoxName.Text = desktopFileToUse.Name; textBoxComment.Text = desktopFileToUse.Comment; textBoxCategories.Text = desktopFileToUse.Categories; textBoxExe.Text = execGcw; textBoxExeA320.Text = execA320; textBoxIcon.Text = desktopFileToUse.Icon; checkBoxLaunchWithFile.Checked = desktopFileToUse.WithFile; textBoxMimeTypes.Text = desktopFileToUse.MimeTypes; checkBoxTerminal.Checked = desktopFileToUse.Terminal; textBoxManual.Text = desktopFileToUse.Manual; checkBoxJoystickMode.Checked = desktopFileToUse.JoystickMode; checkBoxGSensor.Checked = desktopFileToUse.GSensor; checkBoxHardwareScaling.Checked = desktopFileToUse.HardwareScaling; } EnableFields(true); } else if (desktopFileOpt == DesktopFileOption.UseAsIs) { SetUsingExistingFilesInAllFields(); } else if (desktopFileOpt == DesktopFileOption.Ignore) { EnableFields(true); } } else { return; } } if (desktopFileOpt == DesktopFileOption.Ignore) { // Guess values IEnumerable <string> files = Directory.EnumerateFiles(path, "*.dge"); string probableExe = ""; foreach (string file in files) { probableExe = Path.GetFileName(file); break; } string probableIcon = ""; string firstIconMatch = ""; files = Directory.EnumerateFiles(path, "*.png"); foreach (string file in files) { if (firstIconMatch.Length == 0) { firstIconMatch = Path.GetFileName(file); } if (Path.GetFileNameWithoutExtension(file) == Path.GetFileNameWithoutExtension(probableExe)) { probableIcon = Path.GetFileName(file); break; } } if (probableIcon == "") { probableIcon = firstIconMatch; } textBoxName.Text = Path.GetFileName(path); textBoxExe.Text = probableExe; textBoxIcon.Text = probableIcon; EnableFields(true); } }