VixenModules.Editor.TimedSequenceEditor.MarkManager.buttonCopyAndOffsetMarks_Click C# (CSharp) Method

buttonCopyAndOffsetMarks_Click() private method

private buttonCopyAndOffsetMarks_Click ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
return void
        private void buttonCopyAndOffsetMarks_Click(object sender, EventArgs e)
        {
            if (listViewMarks.SelectedItems.Count < 1) {
                MessageBox.Show("Select at least one mark duplicate and offset.", "Need more marks");
                return;
            }

            Common.Controls.TextDialog prompt = new Common.Controls.TextDialog("Start time for copied marks (in seconds):");
            if (prompt.ShowDialog() == DialogResult.OK) {
                TimeSpan offsetTime;

                if (TimeSpan.TryParseExact(prompt.Response, TimeFormats.PositiveFormats, null, out offsetTime)) {
                    TimeSpan earliestTime = TimeSpan.MaxValue;
                    foreach (ListViewItem item in listViewMarks.SelectedItems) {
                        if ((TimeSpan)item.Tag < earliestTime)
                            earliestTime = (TimeSpan)item.Tag;
                    }

                    foreach (ListViewItem item in listViewMarks.SelectedItems) {
                        _displayedCollection.Marks.Add((TimeSpan)item.Tag + offsetTime - earliestTime);
                    }

                    _displayedCollection.Marks.Sort();
                    PopulateMarkListFromMarkCollection(_displayedCollection);
                    UpdateMarkCollectionInList(_displayedCollection);
                } else {
                    MessageBox.Show("Error parsing time: please use the format '<minutes>:<seconds>.<milliseconds>'", "Error parsing time");
                }
            }
        }