/// <summary> /// Called when a Project is removed from the Solution. /// </summary> /// <param name="project">The project.</param> public virtual void OnProjectRemoved(Project project) { Debug.WriteLine(string.Format(CultureInfo.CurrentCulture, "OnProjectRemoved fired for: {0}", this.ToString())); _dispSolutionEvents_ProjectRemovedEventHandler projectRemovedHandler = this.ProjectRemoved; if (projectRemovedHandler != null) { projectRemovedHandler(project); } }
private bool RemoveFilesHandlersInstalled => _itemRemovedEventHandler != null || _projectRemovedEventHandler != null; // second conditional is useless but kept for clarity private void RegisterEvents(object sender = null, EventArgs e = null) { Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); if (((Config)m_plugin.Options).AutoAdd) { if (!AddFilesHandlersInstalled) { Log.Info("Adding handlers to automatically add files to perforce as you add them to the project"); _itemAddedEventHandler = new _dispProjectItemsEvents_ItemAddedEventHandler(OnItemAdded); m_projectEvents.ItemAdded += _itemAddedEventHandler; _projectAddedEventHandler = new _dispSolutionEvents_ProjectAddedEventHandler(OnProjectAdded); m_solutionEvents.ProjectAdded += _projectAddedEventHandler; } } else if (AddFilesHandlersInstalled) { Log.Info("Removing handlers to automatically add files to perforce as you add them to the project"); m_projectEvents.ItemAdded -= _itemAddedEventHandler; _itemAddedEventHandler = null; m_solutionEvents.ProjectAdded -= _projectAddedEventHandler; _projectAddedEventHandler = null; } if (((Config)m_plugin.Options).AutoDelete) { if (!RemoveFilesHandlersInstalled) { Log.Info("Adding handlers to automatically delete files from perforce as you remove them from the project"); _itemRemovedEventHandler = new _dispProjectItemsEvents_ItemRemovedEventHandler(OnItemRemoved); m_projectEvents.ItemRemoved += _itemRemovedEventHandler; _projectRemovedEventHandler = new _dispSolutionEvents_ProjectRemovedEventHandler(OnProjectRemoved); m_solutionEvents.ProjectRemoved += _projectRemovedEventHandler; } } else if (RemoveFilesHandlersInstalled) { Log.Info("Removing handlers to automatically deleting files from perforce as you remove them from the project"); m_projectEvents.ItemRemoved -= _itemRemovedEventHandler; _itemRemovedEventHandler = null; m_solutionEvents.ProjectRemoved -= _projectRemovedEventHandler; _projectRemovedEventHandler = null; } }