Exemplo n.º 1
0
        /// <summary>
        /// Called by ProjectDocumentTracker when a scc-capable project is opened
        /// </summary>
        /// <param name="project">The loaded project</param>
        /// <param name="added">The project was added after opening</param>
        protected override void OnProjectOpened(SccProjectData data, bool added)
        {
            if (data.IsStoredInSolution)
            {
                if (IsSolutionManaged)
                {
                    // We let them follow the solution settings (See OnSolutionOpen() for the not added case
                    if (added && data.IsSolutionInfrastructure)
                    {
                        data.SetManaged(true);
                    }
                }

                // Solution folders are projects without Scc state
                data.NotifyGlyphsChanged();
            }

            data.OnOpened();
            _syncMap = true;

            // Don't take the focus from naming the folder. The rename will perform the .Load()
            // and dirty check
            if (added && data.IsSolutionInfrastructure)
            {
                return;
            }

            if (added && !string.IsNullOrEmpty(SolutionFilename))
            {
                DocumentTracker.CheckDirty(SolutionFilename);
            }

            RegisterForSccCleanup();
        }
Exemplo n.º 2
0
        protected virtual void OnProjectDirectoryRemoved(SccProjectData data, string directoryname)
        {
            // a directory can be added like a folder but with an ending '\'
            string dir = directoryname.TrimEnd('\\') + '\\';

            data.RemovePath(dir);
        }
Exemplo n.º 3
0
        protected virtual void OnProjectClosed(SccProjectData data, bool removed)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            data.OnClose();
            ProjectMap.RemoveProject(data.SccProject);
        }
Exemplo n.º 4
0
        protected virtual void OnProjectFileRenamed(SccProjectData project, string oldName, string newName)
        {
            project.CheckProjectRename(oldName, newName); // Just to be sure (should be handled by other event)

            project.RemovePath(oldName);
            project.AddPath(newName);
        }
Exemplo n.º 5
0
 public void EnsureSccProject(IVsSccProject2 rawProject, out SccProjectData projectData)
 {
     if (!TryGetSccProject(rawProject, out projectData))
     {
         // This method is called before the OpenProject calls
         AddProject(rawProject, projectData = new SccProjectData(this, rawProject));
     }
 }
Exemplo n.º 6
0
            /// <summary>
            /// Initializes a new instance of the <see cref="WrapProjectInfo"/> class.
            /// </summary>
            /// <param name="data">The data.</param>
            public WrapProjectInfo(SccProjectData data)
            {
                if (data == null)
                {
                    throw new ArgumentNullException("data");
                }

                _data = data;
            }
Exemplo n.º 7
0
        /// <summary>
        /// This method is called by projects that are under source control
        /// when they are first opened to register project settings.
        /// </summary>

        protected override void OnRegisterSccProject(SccProjectData data, string pszProvider)
        {
            base.OnRegisterSccProject(data, pszProvider);

            data.IsManaged = (pszProvider == AnkhId.SubversionSccName);

            _syncMap = true;
            RegisterForSccCleanup();
        }
Exemplo n.º 8
0
        /// <summary>
        /// Called by ProjectDocumentTracker when a scc-capable project is closed
        /// </summary>
        /// <param name="project">The project.</param>
        /// <param name="removed">if set to <c>true</c> the project is being removed or unloaded from the solution.</param>
        protected override void OnProjectClosed(SccProjectData data, bool removed)
        {
            base.OnProjectClosed(data, removed);

            if (removed)
            {
                if (!string.IsNullOrEmpty(SolutionFilename))
                {
                    DocumentTracker.CheckDirty(SolutionFilename);
                }
            }
        }
Exemplo n.º 9
0
        protected override void OnProjectRenamed(SccProjectData data)
        {
            if (string.IsNullOrEmpty(SolutionFilename))
            {
                return;
            }

            // Mark the sln file edited, so it shows up in Pending Changes/Commit
            if (!string.IsNullOrEmpty(SolutionFilename))
            {
                DocumentTracker.CheckDirty(SolutionFilename);
            }

            base.OnProjectRenamed(data);
        }
Exemplo n.º 10
0
        bool MapProject(IVsHierarchy pHierarchy, out string slnLocation, out SccProjectData data)
        {
            ThreadHelper.ThrowIfNotOnUIThread();
            IVsSccProject2 sccProject = pHierarchy as IVsSccProject2;

            if (sccProject != null && ProjectMap.TryGetSccProject(sccProject, out data))
            {
                // data valid
            }
            else if (sccProject != null)
            {
                data = new SccProjectData(ProjectMap, sccProject);
            }
            else
            {
                data = null;
            }

            string projectLocation = null;

            try
            {
                if (data != null && !string.IsNullOrEmpty(data.ProjectLocation))
                {
                    projectLocation = data.ProjectLocation;
                    return(true);
                }

                IVsSolution2 sln = GetService <IVsSolution2>(typeof(SVsSolution));

                if (sln != null &&
                    VSErr.Succeeded(pHierarchy.GetCanonicalName(VSItemId.Root, out projectLocation)))
                {
                    return(!string.IsNullOrEmpty(projectLocation));
                }

                projectLocation = null;
                return(false);
            }
            finally
            {
                if (projectLocation == null || !_trueNameMap.TryGetValue(projectLocation, out slnLocation))
                {
                    slnLocation = projectLocation;
                }
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// Called when a directory is added to a project
        /// </summary>
        /// <param name="project">The project.</param>
        /// <param name="directoryname">The directoryname.</param>
        /// <param name="origin">The origin or null.</param>
        protected override void OnProjectDirectoryAdded(SccProjectData project, string directoryname, string origin)
        {
            base.OnProjectDirectoryAdded(project, directoryname, origin);

            if (!IsActive)
            {
                return;
            }

            if (!project.WebLikeFileHandling)
            {
                // Do nothing
            }
            else
            {
                // Websites don't contain a real file mapping; reload to load new files
                // and directories recursively
                project.Reload();
            }
        }
Exemplo n.º 12
0
        protected override bool TrackProjectChanges(SccProjectData data, out bool trackCopies)
        {
            trackCopies = true;

            if (data.WebLikeFileHandling)
            {
                int busy;
                if (BuildManager != null &&
                    VSErr.Succeeded(BuildManager.QueryBuildManagerBusy(out busy)) &&
                    busy != 0)
                {
                    trackCopies = false;
                }
            }
            else if (_syncMap)
            {
                data.Load();
            }

            return(data.TrackProjectChanges()); // Allows temporary disabling changes
        }
Exemplo n.º 13
0
 protected virtual void OnProjectFileRemoved(SccProjectData data, string oldName)
 {
     data.RemovePath(oldName);
 }
Exemplo n.º 14
0
 protected virtual void OnProjectFileAdded(SccProjectData data, string filename)
 {
     data.AddPath(filename);
 }
Exemplo n.º 15
0
 protected virtual void OnProjectRenamed(SccProjectData data)
 {
     data.Reload(); // Reload project name, etc.
 }
Exemplo n.º 16
0
 protected virtual void OnProjectBeforeUnload(SccProjectData data)
 {
 }
Exemplo n.º 17
0
 protected virtual void OnProjectDirectoryAdded(SccProjectData data, string directory, string origin)
 {
 }
Exemplo n.º 18
0
 protected virtual void OnProjectClosed(SccProjectData data, bool removed)
 {
     data.OnClose();
     ProjectMap.RemoveProject(data.SccProject);
 }
Exemplo n.º 19
0
 internal protected abstract Selection.SccProject CreateProject(SccProjectData sccProjectData);
Exemplo n.º 20
0
 protected virtual void OnProjectOpened(SccProjectData project, bool added)
 {
 }
Exemplo n.º 21
0
 protected virtual void OnUnregisterSccProject(SccProjectData data)
 {
     data.IsRegistered = false;
     data.IsManaged    = false;
 }
Exemplo n.º 22
0
 protected virtual void OnProjectDirectoryRenamed(SccProjectData project, string oldName, string newName)
 {
 }
Exemplo n.º 23
0
 public bool TryGetSccProject(IVsSccProject2 project, out SccProjectData data)
 {
     return(_projectMap.TryGetValue(project, out data));
 }
Exemplo n.º 24
0
 /// <summary>
 /// Called by ProjectDocumentTracker when a scc-capable project is loaded
 /// </summary>
 /// <param name="data"></param>
 protected override void OnProjectLoaded(SccProjectData data)
 {
     base.OnProjectLoaded(data);
 }
Exemplo n.º 25
0
 protected virtual void OnProjectFileAdded(SccProjectData project)
 {
 }
Exemplo n.º 26
0
 void AddProject(IVsSccProject2 sccProject, SccProjectData sccProjectData)
 {
     _projectMap.Add(sccProject, sccProjectData);
 }
Exemplo n.º 27
0
 protected virtual void OnRegisterSccProject(SccProjectData data, string pszProvider)
 {
     data.IsRegistered = true;
 }
Exemplo n.º 28
0
 protected override void OnProjectBeforeUnload(SccProjectData data)
 {
     Monitor.ScheduleMonitor(data.GetAllFiles()); // Keep track of changes in files of unloaded project
 }
Exemplo n.º 29
0
 protected virtual bool TrackProjectChanges(SccProjectData data, out bool trackCopies)
 {
     trackCopies = true;
     return(data.TrackProjectChanges());
 }
Exemplo n.º 30
0
 protected virtual void OnProjectLoaded(SccProjectData project)
 {
 }