Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions source/BulkCrapUninstaller/Forms/Windows/MainWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1419,7 +1419,7 @@ private void listView_ListRefreshIsRunningChanged(object sender,
_anySysComponents = _listView.AllUninstallers.Any(x => x.SystemComponent);
_anyUpdates = _listView.AllUninstallers.Any(x => x.IsUpdate);
_anyInvalid = _listView.AllUninstallers.Any(x => !x.IsValid);
_anyTweaks = _listView.AllUninstallers.Any(x => x.RatingId != null && x.RatingId.StartsWith("tweak", StringComparison.OrdinalIgnoreCase));
_anyTweaks = _listView.AllUninstallers.Any(x => x.IsScriptTweak);

propertiesSidebar.StoreAppsEnabled = _anyStoreApps;
propertiesSidebar.WinFeaturesEnabled = _anyWinFeatures;
Expand Down Expand Up @@ -1856,11 +1856,11 @@ private void onlyWebBrowsersToolStripMenuItem_Click(object sender, EventArgs e)
s.FilterShowTweaks = true;
}

private void viewTweaksToolStripMenuItem_Click(object sender, EventArgs e)
{
everythingToolStripMenuItem_Click(sender, e);
filterEditor1.Search(@"\Resources\Scripts\Tweak", ComparisonMethod.Contains, nameof(ApplicationUninstallerEntry.UninstallString));
}
private void viewTweaksToolStripMenuItem_Click(object sender, EventArgs e)
{
everythingToolStripMenuItem_Click(sender, e);
filterEditor1.Search(true.ToString(), ComparisonMethod.Equals, nameof(ApplicationUninstallerEntry.IsScriptTweak));
}

private void createRestorePointToolStripMenuItem_Click(object sender, EventArgs e)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,10 +111,9 @@ public IEnumerable<Filter> GenerateEquivalentFilter()
results.Add(new Filter("Updates", true, new FilterCondition(true.ToString(),
ComparisonMethod.Equals, nameof(ApplicationUninstallerEntry.IsUpdate))));

// TODO Better detection, can lead to bugs down the line
if (!_settings.Settings.FilterShowTweaks)
results.Add(new Filter("Tweaks", true, new FilterCondition(@"\Resources\Scripts\Tweak",
ComparisonMethod.Contains, nameof(ApplicationUninstallerEntry.UninstallString))));
if (!_settings.Settings.FilterShowTweaks)
results.Add(new Filter("Tweaks", true, new FilterCondition(true.ToString(),
ComparisonMethod.Equals, nameof(ApplicationUninstallerEntry.IsScriptTweak))));

return results;
}
Expand Down Expand Up @@ -143,13 +142,10 @@ private bool ListViewFilter(object obj)

if (!_settings.Settings.FilterShowUpdates && entry.IsUpdate) return false;

if (entry.RatingId != null)
{
if (!_settings.Settings.FilterShowTweaks && entry.RatingId.StartsWith("tweak", StringComparison.Ordinal))
return false;
}

if (string.IsNullOrEmpty(_filteringFilterCondition.FilterText)) return true;
if (!_settings.Settings.FilterShowTweaks && entry.IsScriptTweak)
return false;

if (string.IsNullOrEmpty(_filteringFilterCondition.FilterText)) return true;

return _filteringFilterCondition.TestEntry(entry) == true;
}
Expand Down Expand Up @@ -267,4 +263,4 @@ public void UpdateColumnFiltering(bool anyUninstallers)
_updateThrottleTimer.Start();
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using UninstallTools;

namespace BulkCrapUninstallerTests
{
[TestClass]
public class ApplicationUninstallerEntryTests
{
[DataTestMethod]
[DataRow("Tweak-TestEntry", true)]
[DataRow("tweak-TestEntry", true)]
[DataRow("Steam App 42", false)]
[DataRow(null, false)]
public void IsScriptTweak_MatchesCurrentTweakIdFormat(string ratingId, bool expected)
{
var entry = new ApplicationUninstallerEntry
{
RatingId = ratingId
};

Assert.AreEqual(expected, entry.IsScriptTweak);
}
}
}
25 changes: 15 additions & 10 deletions source/UninstallTools/ApplicationUninstallerEntry.cs
Original file line number Diff line number Diff line change
Expand Up @@ -177,15 +177,20 @@ public string InstallSource
/// <summary>
/// True if this is an update for another product
/// </summary>
[ComparisonTarget]
[LocalisedName(typeof(Localisation), nameof(Localisation.IsUpdate))]
public bool IsUpdate { get; set; }

/// <summary>
/// True if the application can be uninstalled. False if the uninstaller is missing or is otherwise invalid.
/// </summary>
[ComparisonTarget]
[LocalisedName(typeof(Localisation), nameof(Localisation.IsValid))]
[ComparisonTarget]
[LocalisedName(typeof(Localisation), nameof(Localisation.IsUpdate))]
public bool IsUpdate { get; set; }

[XmlIgnore]
[ComparisonTarget]
public bool IsScriptTweak => !string.IsNullOrEmpty(RatingId) &&
RatingId.StartsWith("Tweak-", StringComparison.OrdinalIgnoreCase);

/// <summary>
/// True if the application can be uninstalled. False if the uninstaller is missing or is otherwise invalid.
/// </summary>
[ComparisonTarget]
[LocalisedName(typeof(Localisation), nameof(Localisation.IsValid))]
public bool IsValid { get; set; }

/// <summary>
Expand Down Expand Up @@ -523,4 +528,4 @@ private static string CleanupPath(string path, bool isFilename = false)
return path.TrimEnd('\\');
}
}
}
}