Skip to content

Commit e0c1035

Browse files
committed
Fix not being able to ignore updates (fix #3608)
1 parent 13cc06b commit e0c1035

5 files changed

Lines changed: 14 additions & 16 deletions

File tree

src/UniGetUI.PackageEngine.PackageLoader/AbstractPackageLoader.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ public void Remove(IPackage? package)
279279
return;
280280
}
281281

282-
PackageReference.Remove(HashPackage(package), out IPackage? _);
282+
PackageReference.Remove(HashPackage(package), out IPackage? pkg);
283283
InvokePackagesChangedEvent(true, [], [package]);
284284
}
285285

src/UniGetUI/Controls/ObservablePackageCollection.cs

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -77,19 +77,6 @@ public void SetSorter(Sorter field)
7777
}
7878
}
7979

80-
/// <summary>
81-
/// Clears the collection, deleting the wrapper objects in the process
82-
/// </summary>
83-
public new void Clear()
84-
{
85-
foreach (PackageWrapper wrapper in this)
86-
{
87-
wrapper.Dispose();
88-
}
89-
base.Clear();
90-
GC.Collect();
91-
}
92-
9380
/// <summary>
9481
/// Returns a list containing the packages in this collection
9582
/// </summary>

src/UniGetUI/Controls/PackageWrapper.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,8 @@ public void Package_PropertyChanged(object? sender, PropertyChangedEventArgs e)
119119
{
120120
PropertyChanged?.Invoke(this, e);
121121
}
122-
} catch (COMException)
122+
}
123+
catch (COMException)
123124
{
124125
// ignore
125126
}

src/UniGetUI/Pages/SoftwarePages/AbstractPackagesPage.xaml.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -425,15 +425,23 @@ private void Loader_PackagesChanged(object? sender, PackagesChangedEvent package
425425
}
426426

427427
// Remove removed packages
428+
var toRemove = new List<PackageWrapper>();
428429
foreach (var package in packagesChangedEvent.RemovedPackages)
429430
foreach (var match in WrappedPackages.Where(w => w.Package.Equals(package)))
430431
{
431-
WrappedPackages.Remove(match);
432+
toRemove.Add(match);
432433
}
434+
435+
foreach (var wrapper in toRemove)
436+
{
437+
wrapper.Dispose();
438+
WrappedPackages.Remove(wrapper);
439+
}
433440
}
434441
else
435442
{
436443
// Reset internal package cache, and update from loader
444+
foreach(var wrapper in WrappedPackages) wrapper.Dispose();
437445
WrappedPackages.Clear();
438446
ClearSourcesList();
439447
foreach (var package in Loader.Packages)

src/UniGetUI/Pages/SoftwarePages/InstalledPackagesPage.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,9 @@ private async void MenuIgnorePackage_Invoked(object sender, RoutedEventArgs args
438438
if (package is null) return;
439439

440440
if (await package.HasUpdatesIgnoredAsync())
441+
{
441442
await package.RemoveFromIgnoredUpdatesAsync();
443+
}
442444
else
443445
{
444446
await package.AddToIgnoredUpdatesAsync();

0 commit comments

Comments
 (0)