internal void MakeDefaultLinksFor(SlideView view) { Model.HistoryManager.StartAtomicAction(CommandDescr.UpdateDefLinkDescr); view.GetIncomingSlideLinks().ForEach(l => { Model.HistoryManager.RecordPropertyChanged(l, String.Empty, "IsDefault"); l.IsDefault = true; //set other links undefault l.FromSlideView.GetOutgoingLinks().ForEach(link => { if (link != l) { Model.HistoryManager.RecordPropertyChanged(link, String.Empty, "IsDefault"); link.IsDefault = false; } }); }); Model.HistoryManager.EndAtomicAction(); RefreshDefaultSlidePath(true); }
public SlidePropertiesForm(SlideGraphController AController) { InitializeComponent(); m_controller = AController; CurrentSlideView = m_controller.SelectedSlideView; m_controller.OnLabelListChanhed += m_controller_OnLabelListChanhed; bool slideLocked = (CurrentSlideView.IsLocked && PresentationController.Instance.CanUnlockSlide(CurrentSlideView.Slide)) || DesignerClient.Instance.IsStandAlone; bool presentationLocked = PresentationController.Instance.PresentationLocked || DesignerClient.Instance.IsStandAlone; this.Text = CurrentSlideView.SlideName + " - Свойства"; Slide = CurrentSlideView.Slide.Copy(); Slide.SaveSlideLevelChanges(CurrentSlideView.Slide); if (CurrentSlideView.GetOutgoingLinks().Count > 0) { OldDefLink = NewDefLink = CurrentSlideView.GetOutgoingLinks().Where(l => l.IsDefault).First(); } #region Add bindings nameText.DataBindings.Add("Text", Slide, "Name"); nameText.ReadOnly = !slideLocked; labelsList.Enabled = slideLocked; labelsList.DataBindings.DefaultDataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged; RefreshLabels(); hourSpanEdit.DataBindings.Add("Value", Slide.Time, "Hours"); hourSpanEdit.Enabled = slideLocked; minuteSpanEdit.DataBindings.Add("Value", Slide.Time, "Minutes"); minuteSpanEdit.Enabled = slideLocked; secondSpanEdit.DataBindings.Add("Value", Slide.Time, "Seconds"); secondSpanEdit.Enabled = slideLocked; authorText.DataBindings.Add("Text", Slide, "Author"); modifiedLabel.DataBindings.Add("Text", Slide, "Modified"); commentText.DataBindings.Add("Text", Slide, "Comment"); commentText.ReadOnly = !slideLocked; #endregion if (nextSlideList.Enabled = NewDefLink != null && presentationLocked) { List<SlideView> list = CurrentSlideView.GetOutgoingSlideViews(); list.ForEach(s => nextSlideList.Items.Add(s)); nextSlideList.SelectedIndex = list.IndexOf(NewDefLink.ToSlideView); } bool flag = m_controller.StartSlide == CurrentSlideView; isStartupCheckBox.Checked = flag; bool flag2 = !flag & CurrentSlideView.GetIncomingSlideLinks().Count == 0; isStartupCheckBox.Enabled = flag2 & presentationLocked; bool visible = presentationLocked | slideLocked; if (presentationLocked && !slideLocked) { visible = isStartupCheckBox.Enabled || nextSlideList.Items.Count > 0; } okButton.Visible = visible; if (!visible) { this.AcceptButton = cancelButton; cancelButton.Text = "OK"; } }