diff --git a/src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj b/src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
index de28c53451..51ec21bc95 100644
--- a/src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
+++ b/src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
@@ -232,6 +232,7 @@
+
diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementProject.cs b/src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementProject.cs
index 3842f826a2..1eb7771747 100644
--- a/src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementProject.cs
+++ b/src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementProject.cs
@@ -223,7 +223,7 @@ namespace ICSharpCode.PackageManagement.Design
public UpdatePackagesAction CreateUpdatePackagesAction()
{
- var action = new UpdatePackagesAction(this);
+ var action = new UpdatePackagesAction(this, null);
UpdatePackagesActionsCreated.Add(action);
return action;
}
diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementEvents.cs b/src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementEvents.cs
index 85124b15d7..c91d44cd44 100644
--- a/src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementEvents.cs
+++ b/src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementEvents.cs
@@ -16,13 +16,15 @@ namespace ICSharpCode.PackageManagement
event EventHandler PackageOperationError;
event EventHandler ParentPackageInstalled;
event EventHandler ParentPackageUninstalled;
+ event EventHandler ParentPackagesUpdated;
event EventHandler PackageOperationMessageLogged;
-
+
void OnPackageOperationsStarting();
void OnPackageOperationError(Exception ex);
bool OnAcceptLicenses(IEnumerable packages);
void OnParentPackageInstalled(IPackage package);
void OnParentPackageUninstalled(IPackage package);
+ void OnParentPackagesUpdated(IEnumerable packages);
void OnPackageOperationMessageLogged(MessageLevel level, string message, params object[] args);
bool OnSelectProjects(IEnumerable selectedProjects);
FileConflictResolution OnResolveFileConflict(string message);
diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementEvents.cs b/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementEvents.cs
index 5e048a962e..05197bc829 100644
--- a/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementEvents.cs
+++ b/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementEvents.cs
@@ -90,5 +90,14 @@ namespace ICSharpCode.PackageManagement
}
return FileConflictResolution.IgnoreAll;
}
+
+ public event EventHandler ParentPackagesUpdated;
+
+ public void OnParentPackagesUpdated(IEnumerable packages)
+ {
+ if (ParentPackagesUpdated != null) {
+ ParentPackagesUpdated(this, new ParentPackagesOperationEventArgs(packages));
+ }
+ }
}
}
diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProject.cs b/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProject.cs
index 95e5ebc92b..01fa702369 100644
--- a/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProject.cs
+++ b/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProject.cs
@@ -139,7 +139,7 @@ namespace ICSharpCode.PackageManagement
public UpdatePackagesAction CreateUpdatePackagesAction()
{
- return new UpdatePackagesAction(this);
+ return new UpdatePackagesAction(this, packageManagementEvents);
}
public IEnumerable GetUpdatePackagesOperations(
diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/ParentPackagesOperationEventArgs.cs b/src/AddIns/Misc/PackageManagement/Project/Src/ParentPackagesOperationEventArgs.cs
new file mode 100644
index 0000000000..c2a046554e
--- /dev/null
+++ b/src/AddIns/Misc/PackageManagement/Project/Src/ParentPackagesOperationEventArgs.cs
@@ -0,0 +1,19 @@
+// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
+// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
+
+using System;
+using System.Collections.Generic;
+using NuGet;
+
+namespace ICSharpCode.PackageManagement
+{
+ public class ParentPackagesOperationEventArgs : EventArgs
+ {
+ public ParentPackagesOperationEventArgs(IEnumerable packages)
+ {
+ this.Packages = packages;
+ }
+
+ public IEnumerable Packages { get; private set; }
+ }
+}
diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/ProjectBrowserRefresher.cs b/src/AddIns/Misc/PackageManagement/Project/Src/ProjectBrowserRefresher.cs
index 081bc557e4..824c6fb9da 100644
--- a/src/AddIns/Misc/PackageManagement/Project/Src/ProjectBrowserRefresher.cs
+++ b/src/AddIns/Misc/PackageManagement/Project/Src/ProjectBrowserRefresher.cs
@@ -19,9 +19,10 @@ namespace ICSharpCode.PackageManagement
packageManagementEvents.ParentPackageInstalled += ProjectChanged;
packageManagementEvents.ParentPackageUninstalled += ProjectChanged;
+ packageManagementEvents.ParentPackagesUpdated += ProjectChanged;
}
- void ProjectChanged(object sender, ParentPackageOperationEventArgs e)
+ void ProjectChanged(object sender, EventArgs e)
{
projectService.RefreshProjectBrowser();
}
diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/ThreadSafePackageManagementEvents.cs b/src/AddIns/Misc/PackageManagement/Project/Src/ThreadSafePackageManagementEvents.cs
index a6287f4d31..36db0c32ea 100644
--- a/src/AddIns/Misc/PackageManagement/Project/Src/ThreadSafePackageManagementEvents.cs
+++ b/src/AddIns/Misc/PackageManagement/Project/Src/ThreadSafePackageManagementEvents.cs
@@ -33,6 +33,7 @@ namespace ICSharpCode.PackageManagement
unsafeEvents.PackageOperationError += RaisePackageOperationErrorEventIfHasSubscribers;
unsafeEvents.ParentPackageInstalled += RaiseParentPackageInstalledEventIfHasSubscribers;
unsafeEvents.ParentPackageUninstalled += RaiseParentPackageUninstalledEventIfHasSubscribers;
+ unsafeEvents.ParentPackagesUpdated += RaiseParentPackagesUpdatedEventIfHasSubscribers;
}
public void Dispose()
@@ -46,6 +47,7 @@ namespace ICSharpCode.PackageManagement
unsafeEvents.PackageOperationError -= RaisePackageOperationErrorEventIfHasSubscribers;
unsafeEvents.ParentPackageInstalled -= RaiseParentPackageInstalledEventIfHasSubscribers;
unsafeEvents.ParentPackageUninstalled -= RaiseParentPackageUninstalledEventIfHasSubscribers;
+ unsafeEvents.ParentPackagesUpdated -= RaiseParentPackagesUpdatedEventIfHasSubscribers;
}
void RaisePackageOperationStartingEventIfHasSubscribers(object sender, EventArgs e)
@@ -199,5 +201,29 @@ namespace ICSharpCode.PackageManagement
{
return unsafeEvents.OnResolveFileConflict(message);
}
+
+ public event EventHandler ParentPackagesUpdated;
+
+ public void OnParentPackagesUpdated(IEnumerable packages)
+ {
+ unsafeEvents.OnParentPackagesUpdated(packages);
+ }
+
+ void RaiseParentPackagesUpdatedEventIfHasSubscribers(object sender, ParentPackagesOperationEventArgs e)
+ {
+ if (ParentPackagesUpdated != null) {
+ RaiseParentPackagesUpdatedEvent(sender, e);
+ }
+ }
+
+ void RaiseParentPackagesUpdatedEvent(object sender, ParentPackagesOperationEventArgs e)
+ {
+ if (InvokeRequired) {
+ Action