Browse Source

Fix cross thread operation when removing a reference from a project.

pull/15/head
Matt Ward 14 years ago
parent
commit
3c89d6aaef
  1. 5
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementProjectService.cs
  2. 1
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementProjectService.cs
  3. 10
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProjectService.cs
  4. 4
      src/AddIns/Misc/PackageManagement/Project/Src/SharpDevelopProjectSystem.cs

5
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementProjectService.cs

@ -70,6 +70,11 @@ namespace ICSharpCode.PackageManagement.Design @@ -70,6 +70,11 @@ namespace ICSharpCode.PackageManagement.Design
ProjectService.AddProjectItem(project, item);
}
public void RemoveProjectItem(IProject project, ProjectItem item)
{
ProjectService.RemoveProjectItem(project, item);
}
public void Save(IProject project)
{
project.Save();

1
src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementProjectService.cs

@ -19,6 +19,7 @@ namespace ICSharpCode.PackageManagement @@ -19,6 +19,7 @@ namespace ICSharpCode.PackageManagement
void RefreshProjectBrowser();
void AddProjectItem(IProject project, ProjectItem item);
void RemoveProjectItem(IProject project, ProjectItem item);
void Save(IProject project);
IEnumerable<IProject> GetOpenProjects();

10
src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProjectService.cs

@ -48,6 +48,16 @@ namespace ICSharpCode.PackageManagement @@ -48,6 +48,16 @@ namespace ICSharpCode.PackageManagement
}
}
public void RemoveProjectItem(IProject project, ProjectItem item)
{
if (WorkbenchSingleton.InvokeRequired) {
Action<IProject, ProjectItem> action = RemoveProjectItem;
WorkbenchSingleton.SafeThreadCall<IProject, ProjectItem>(action, project, item);
} else {
ProjectService.RemoveProjectItem(project, item);
}
}
public void Save(IProject project)
{
if (WorkbenchSingleton.InvokeRequired) {

4
src/AddIns/Misc/PackageManagement/Project/Src/SharpDevelopProjectSystem.cs

@ -121,8 +121,8 @@ namespace ICSharpCode.PackageManagement @@ -121,8 +121,8 @@ namespace ICSharpCode.PackageManagement
{
ReferenceProjectItem referenceProjectItem = FindReference(name);
if (referenceProjectItem != null) {
ProjectService.RemoveProjectItem(project, referenceProjectItem);
project.Save();
projectService.RemoveProjectItem(project, referenceProjectItem);
projectService.Save(project);
LogRemovedReferenceFromProject(referenceProjectItem);
}
}

Loading…
Cancel
Save