private void CInsertNewSection(object sender, ExecutedRoutedEventArgs e) { if (VirtualizingListBox.ActiveTransctiption != null) { if (VirtualizingListBox.ActiveTransctiption.IsParagraph) { TranscriptionParagraph p = (TranscriptionParagraph)VirtualizingListBox.ActiveTransctiption; int idx = p.ParentIndex; TranscriptionSection sec = (TranscriptionSection)p.Parent; TranscriptionSection s = new TranscriptionSection(Properties.Strings.DefaultSectionText); for (int i = idx; i < sec.Children.Count; i++) { s.Add(sec[i]); } sec.Children.RemoveRange(idx, sec.Children.Count - idx); sec.Parent.Insert(sec.ParentIndex + 1, s); VirtualizingListBox.ActiveTransctiption = s; VirtualizingListBox.Reset(); } else if (VirtualizingListBox.ActiveTransctiption.IsSection) { var s = new TranscriptionSection(Properties.Strings.DefaultSectionText); s.Children.AddRange(VirtualizingListBox.ActiveTransctiption.Children); VirtualizingListBox.ActiveTransctiption.Children.Clear(); VirtualizingListBox.ActiveTransctiption.Parent.Insert(VirtualizingListBox.ActiveTransctiption.ParentIndex, s); VirtualizingListBox.ActiveTransctiption = s; VirtualizingListBox.Reset(); } else if (VirtualizingListBox.ActiveTransctiption.IsChapter) { var s = new TranscriptionSection(Properties.Strings.DefaultSectionText); VirtualizingListBox.ActiveTransctiption.Insert(0, s); VirtualizingListBox.ActiveTransctiption = s; VirtualizingListBox.Reset(); } } }
private void CAssignSpeaker(object sender, ExecutedRoutedEventArgs e) { TranscriptionParagraph tpr = null; if (sender is TranscriptionParagraph) { tpr = (TranscriptionParagraph)sender; } else { tpr = VirtualizingListBox.ActiveTransctiption as TranscriptionParagraph; } var mgr = new SpeakersManager(tpr.Speaker, Transcription, Transcription.Speakers, SpeakersDatabase) { MessageLabel = Properties.Strings.mainWindowSpeakersManagerSelectedParagraphMessage, Message = VirtualizingListBox.ActiveTransctiption.Text }; if (smwidth != null && smheight != null && smleft != null && smtop != null) { mgr.Width = smwidth.Value; mgr.Height = smheight.Value; mgr.Left = smleft.Value; mgr.Top = smtop.Value; } if (mgr.ShowDialog() == true && mgr.SelectedSpeaker != null) { Transcription.BeginUpdate(); var origspk = tpr.Speaker; tpr.Speaker = mgr.SelectedSpeaker; if (!Transcription.EnumerateParagraphs().Any(p => p.Speaker == origspk)) { Transcription.Speakers.Remove(origspk); } var replaced = AdvancedSpeakerCollection.SynchronizedAdd(Transcription.Speakers, mgr.SelectedSpeaker); if (replaced != null) { foreach (var p in Transcription.EnumerateParagraphs().Where(p => p.Speaker == replaced)) { p.Speaker = mgr.SelectedSpeaker; } } Transcription.EndUpdate(); } smwidth = mgr.Width; smheight = mgr.Height; smleft = mgr.Left; smtop = mgr.Top; if (mgr.SpeakerChanged)//refresh all sepakers { var pinned = SpeakersDatabase.Where(s => s.PinnedToDocument); Transcription.Speakers.AddRange(pinned.Except(Transcription.Speakers)); } VirtualizingListBox.SpeakerChanged(VirtualizingListBox.ActiveElement); }