/// <summary> /// Process the current custom parameters back into UI values /// </summary> private void ProcessCustomParameters() { Env.SetParameters(ParametersTextBox.Text); if (Env.Parameters == null) { return; } int driveIndex = Drives.Select(d => d.Letter).ToList().IndexOf(Env.Parameters.InputPath[0]); if (driveIndex > -1) { DriveLetterComboBox.SelectedIndex = driveIndex; } int driveSpeed = Env.Parameters.Speed ?? -1; if (driveSpeed > 0) { DriveSpeedComboBox.SelectedValue = driveSpeed; } else { Env.Parameters.Speed = DriveSpeedComboBox.SelectedValue as int?; } // Disable automatic reprocessing of the textboxes until we're done RemovePathEventHandlers(); // Save the current cursor positions int outputDirectorySelectionStart = OutputDirectoryTextBox.SelectionStart; int outputFilenameSelectionStart = OutputFilenameTextBox.SelectionStart; string trimmedPath = Env.Parameters.OutputPath?.Trim('"') ?? string.Empty; string outputDirectory = Path.GetDirectoryName(trimmedPath); string outputFilename = Path.GetFileName(trimmedPath); (outputDirectory, outputFilename) = DumpEnvironment.NormalizeOutputPaths(outputDirectory, outputFilename, Options.InternalProgram == InternalProgram.DiscImageCreator); if (!string.IsNullOrWhiteSpace(outputDirectory)) { OutputDirectoryTextBox.Text = outputDirectory; } else { outputDirectory = OutputDirectoryTextBox.Text; } if (!string.IsNullOrWhiteSpace(outputFilename)) { OutputFilenameTextBox.Text = outputFilename; } else { outputFilename = OutputFilenameTextBox.Text; } // Set the cursor position back to where it was OutputDirectoryTextBox.SelectionStart = outputDirectorySelectionStart; OutputDirectoryTextBox.SelectionLength = 0; OutputFilenameTextBox.SelectionStart = outputFilenameSelectionStart; OutputFilenameTextBox.SelectionLength = 0; // Re-enable automatic reprocessing of textboxes AddPathEventHandlers(); MediaType?mediaType = Env.Parameters.GetMediaType(); int mediaTypeIndex = MediaTypes.FindIndex(m => m == mediaType); if (mediaTypeIndex > -1) { MediaTypeComboBox.SelectedIndex = mediaTypeIndex; } }
public void FixOutputPathsTest(string outputDirectory, string outputFilename, string expectedOutputDirectory, string expectedOutputFilename) { (string actualOutputDirectory, string actualOutputFilename) = DumpEnvironment.NormalizeOutputPaths(outputDirectory, outputFilename, false); Assert.Equal(expectedOutputDirectory, actualOutputDirectory); Assert.Equal(expectedOutputFilename, actualOutputFilename); }