/// <summary> /// Commits changes (if any) to the features of the ProgramDescription supplied to the editor. /// </summary> /// <returns><c>true</c> if any changes were made.</returns> public bool CommitChangesToProgramDescription() { var anyChanges = OriginalFeatures.CompareTo(EditFeatures) != 0; if (anyChanges) { var revertedToDatabase = false; if (EditsPriorToRevertToDatabase != null) { revertedToDatabase = Description.ProgramInformation.Features.Clone().CompareTo(EditFeatures) == 0; } Description.Features = EditFeatures; INTV.Shared.Model.Program.ProgramCollection.Roms.ReportProgramFeaturesChanged(new[] { Description }, revertedToDatabase); } return(anyChanges); }
/// <summary> /// Initialize the view model and all of the known feature page editors. /// </summary> /// <param name="description">The description of the program whose features are being edited.</param> /// <param name="inplaceEditor">The in-place editor hosting this editor. Used for lifetime control.</param> public void Initialize(ProgramDescription description, IInPlaceEditor inplaceEditor) { InPlaceEditor = inplaceEditor; Description = description; ShowRevertToDefault = false; switch (description.ProgramInformation.DataOrigin) { case ProgramInformationOrigin.UserDefined: case ProgramInformationOrigin.None: break; default: ShowRevertToDefault = true; break; } OriginalFeatures = description.Features.Clone(); EditFeatures = OriginalFeatures.Clone(); EditsPriorToRevertToDatabase = null; InitializeToEditFeatures(); }
/// <summary> /// Reverts any changes made to the features, resetting to values originally supplied to the editor. /// </summary> public void RevertChanges() { EditFeatures = OriginalFeatures.Clone(); EditsPriorToRevertToDatabase = null; InitializeToEditFeatures(); }