示例#1
0
        /// <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;
            }
        }
示例#2
0
 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);
 }