Skip to content

Commit

Permalink
Unify package operations across all tabs
Browse files Browse the repository at this point in the history
  • Loading branch information
glopesdev committed Dec 17, 2024
1 parent 0462e72 commit d38b296
Show file tree
Hide file tree
Showing 7 changed files with 159 additions and 129 deletions.
1 change: 0 additions & 1 deletion Bonsai.NuGet.Design/GalleryDialog.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions Bonsai.NuGet.Design/GalleryDialog.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ public GalleryDialog(NuGetFramework projectFramework, string path)
packageIcons,
searchComboBox,
prereleaseCheckBox,
() => false,
value => { });
packageViewController.SearchPrefix = $"tags:{Constants.GalleryDirectory} ";
packageViewController.PackageType = Constants.GalleryPackageType;
Expand Down Expand Up @@ -101,7 +100,7 @@ private void packageView_OperationClick(object sender, PackageViewEventArgs e)
{
targetPackage = package.Identity;
targetPath = saveFolderDialog.FileName;
packageViewController.RunPackageOperation(new[] { package }, true);
packageViewController.RunPackageOperation(new[] { package }, e.Operation, true);
if (DialogResult == DialogResult.OK)
{
Close();
Expand Down
1 change: 0 additions & 1 deletion Bonsai.NuGet.Design/PackageManagerDialog.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

47 changes: 20 additions & 27 deletions Bonsai.NuGet.Design/PackageManagerDialog.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using Bonsai.NuGet.Design.Properties;
using Bonsai.NuGet.Design.Properties;
using NuGet.Frameworks;
using NuGet.Packaging;
using NuGet.Packaging.Core;
Expand Down Expand Up @@ -31,7 +31,6 @@ public PackageManagerDialog(NuGetFramework projectFramework, string path)
packageIcons,
searchComboBox,
prereleaseCheckBox,
() => updatesButton.Checked,
value => multiOperationPanel.Visible = value);
packageViewController.PackageType = Constants.LibraryPackageType;
packageViewController.PackageManager.PackageManagerPlugins.Add(new ExecutablePackagePlugin(this));
Expand Down Expand Up @@ -71,26 +70,23 @@ private void UpdateSelectedRepository()
{
packageViewController.SetPackageViewStatus(Resources.NoItemsFoundLabel);
packageViewController.ClearActiveRequests();

var selectedItem = packageSourceComboBox.SelectedItem;
if (!AggregateRepository.Equals(selectedItem))
{
packageViewController.SelectedRepository = (SourceRepository)selectedItem;
}
else packageViewController.SelectedRepository = null;

if (installedButton.Checked)
{
packageViewController.Operation = PackageOperationType.Uninstall;
packageViewController.SelectedRepository = PackageManager.LocalRepository;
packageViewController.SelectedTab = PackageOperationType.Uninstall;
}
else
else if (updatesButton.Checked)
{
var selectedItem = packageSourceComboBox.SelectedItem;
if (!AggregateRepository.Equals(selectedItem))
{
packageViewController.SelectedRepository = (SourceRepository)selectedItem;
}
else packageViewController.SelectedRepository = null;

if (updatesButton.Checked)
{
packageViewController.Operation = PackageOperationType.Update;
}
else packageViewController.Operation = PackageOperationType.Install;
packageViewController.SelectedTab = PackageOperationType.Update;
}
else packageViewController.SelectedTab = PackageOperationType.Install;

searchComboBox.Text = string.Empty;
packageViewController.UpdatePackageQuery();
Expand Down Expand Up @@ -138,14 +134,11 @@ protected override void OnResizeEnd(EventArgs e)

private void multiOperationButton_Click(object sender, EventArgs e)
{
if (packageViewController.Operation == PackageOperationType.Update)
{
var packages = packageView.Nodes.Cast<TreeNode>()
.Select(node => node.Tag as IPackageSearchMetadata)
.Where(package => package != null)
.ToList();
packageViewController.RunPackageOperation(packages, true);
}
var packages = packageView.Nodes.Cast<TreeNode>()
.Select(node => node.Tag as IPackageSearchMetadata)
.Where(package => package != null)
.ToList();
packageViewController.RunPackageOperation(packages, PackageOperationType.Install, true);
}

private void packageView_OperationClick(object sender, PackageViewEventArgs e)
Expand All @@ -154,7 +147,7 @@ private void packageView_OperationClick(object sender, PackageViewEventArgs e)
var package = e.Package;
if (package != null)
{
if (packageViewController.SelectedRepository == PackageManager.LocalRepository)
if (e.Operation == PackageOperationType.Uninstall)
{
var nearestDependencyGroup = package.DependencySets.GetNearest(packageViewController.ProjectFramework);
var dependencies = ((nearestDependencyGroup?.Packages) ?? Enumerable.Empty<PackageDependency>()).ToList();
Expand All @@ -173,7 +166,7 @@ private void packageView_OperationClick(object sender, PackageViewEventArgs e)
}
}

packageViewController.RunPackageOperation(new[] { package }, handleDependencies);
packageViewController.RunPackageOperation(new[] { package }, e.Operation, handleDependencies);
if (DialogResult == DialogResult.OK)
{
Close();
Expand Down
3 changes: 1 addition & 2 deletions Bonsai.NuGet.Design/PackageOperationType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ internal enum PackageOperationType
{
Install,
Uninstall,
Update,
Open
Update
}
}
Loading

0 comments on commit d38b296

Please sign in to comment.