/// <inheritdoc /> public virtual void Dispose() { ArchiveChildren?.Clear(); DialogOptions?.Clear(); PluginManager?.CloseAll(); StreamManager?.ReleaseAll(); // Dispose content of state switch (PluginState) { case IArchiveState archiveState: archiveState.Files?.ForEach(x => x.Dispose()); break; case IImageState imageState: imageState.Images?.ForEach(x => x.Dispose()); break; } FilePlugin = null; PluginState = null; FilePath = UPath.Empty; FileSystem = null; StreamManager = null; PluginManager = null; DialogOptions = null; ParentStateInfo = null; IsDisposed = true; }
private bool IsStateChanged() { if (!(PluginState is ISaveFiles saveState)) { return(false); } return(saveState.ContentChanged || ArchiveChildren.Any(child => child.StateChanged)); }
private bool IsStateChanged() { if (!PluginState.CanSave) { return(false); } return(PluginState.AttemptContentChanged || ArchiveChildren.Any(child => child.StateChanged)); }
/// <inheritdoc /> public virtual void Dispose() { ArchiveChildren?.Clear(); DialogOptions?.Clear(); PluginManager?.CloseAll(); StreamManager?.ReleaseAll(); FilePlugin = null; PluginState = null; FilePath = UPath.Empty; FileSystem = null; StreamManager = null; PluginManager = null; DialogOptions = null; ParentStateInfo = null; }