mirror of
https://github.com/goatcorp/Dalamud.git
synced 2026-02-25 06:01:49 +01:00
Additional installed plugin categories
Introduces new plugin categories for enabled, disabled, and incompatible plugins in PluginCategoryManager and PluginInstallerWindow. Updates filtering logic, UI strings, and groupings to support these new categories, allowing users to view plugins by their enabled/disabled/incompatible status.
This commit is contained in:
parent
fc130e325c
commit
902795d6f9
2 changed files with 58 additions and 1 deletions
|
|
@ -30,6 +30,9 @@ internal class PluginCategoryManager
|
|||
new(CategoryKind.PluginChangelogs, "special.plugins", () => Locs.Category_Plugins),
|
||||
new(CategoryKind.PluginProfiles, "special.profiles", () => Locs.Category_PluginProfiles),
|
||||
new(CategoryKind.UpdateablePlugins, "special.updateable", () => Locs.Category_UpdateablePlugins),
|
||||
new(CategoryKind.EnabledPlugins, "special.enabled", () => Locs.Category_EnabledPlugins),
|
||||
new(CategoryKind.DisabledPlugins, "special.disabled", () => Locs.Category_DisabledPlugins),
|
||||
new(CategoryKind.IncompatiblePlugins, "special.incompatible", () => Locs.Category_IncompatiblePlugins),
|
||||
|
||||
// Tag-driven categories
|
||||
new(CategoryKind.Other, "other", () => Locs.Category_Other),
|
||||
|
|
@ -47,7 +50,7 @@ internal class PluginCategoryManager
|
|||
private GroupInfo[] groupList =
|
||||
[
|
||||
new(GroupKind.DevTools, () => Locs.Group_DevTools, CategoryKind.DevInstalled, CategoryKind.IconTester),
|
||||
new(GroupKind.Installed, () => Locs.Group_Installed, CategoryKind.All, CategoryKind.IsTesting, CategoryKind.UpdateablePlugins, CategoryKind.PluginProfiles),
|
||||
new(GroupKind.Installed, () => Locs.Group_Installed, CategoryKind.All, CategoryKind.IsTesting, CategoryKind.UpdateablePlugins, CategoryKind.PluginProfiles, CategoryKind.EnabledPlugins, CategoryKind.DisabledPlugins, CategoryKind.IncompatiblePlugins),
|
||||
new(GroupKind.Available, () => Locs.Group_Available, CategoryKind.All),
|
||||
new(GroupKind.Changelog, () => Locs.Group_Changelog, CategoryKind.All, CategoryKind.DalamudChangelogs, CategoryKind.PluginChangelogs)
|
||||
|
||||
|
|
@ -142,6 +145,21 @@ internal class PluginCategoryManager
|
|||
/// </summary>
|
||||
UpdateablePlugins = 15,
|
||||
|
||||
/// <summary>
|
||||
/// Enabled plugins.
|
||||
/// </summary>
|
||||
EnabledPlugins = 16,
|
||||
|
||||
/// <summary>
|
||||
/// Disabled plugins.
|
||||
/// </summary>
|
||||
DisabledPlugins = 17,
|
||||
|
||||
/// <summary>
|
||||
/// Incompatible plugins.
|
||||
/// </summary>
|
||||
IncompatiblePlugins = 18,
|
||||
|
||||
/// <summary>
|
||||
/// Plugins tagged as "other".
|
||||
/// </summary>
|
||||
|
|
@ -555,6 +573,12 @@ internal class PluginCategoryManager
|
|||
public static string Category_PluginProfiles => Loc.Localize("InstallerCategoryPluginProfiles", "Plugin Collections");
|
||||
|
||||
public static string Category_UpdateablePlugins => Loc.Localize("InstallerCategoryCanBeUpdated", "Can be updated");
|
||||
|
||||
public static string Category_EnabledPlugins => Loc.Localize("InstallerCategoryEnabledPlugins", "Enabled");
|
||||
|
||||
public static string Category_DisabledPlugins => Loc.Localize("InstallerCategoryDisabledPlugins", "Disabled");
|
||||
|
||||
public static string Category_IncompatiblePlugins => Loc.Localize("InstallerCategoryIncompatiblePlugins", "Incompatible");
|
||||
|
||||
public static string Category_Other => Loc.Localize("InstallerCategoryOther", "Other");
|
||||
|
||||
|
|
|
|||
|
|
@ -235,6 +235,9 @@ internal class PluginInstallerWindow : Window, IDisposable
|
|||
Testing,
|
||||
Updateable,
|
||||
Dev,
|
||||
Enabled,
|
||||
Disabled,
|
||||
Incompatible,
|
||||
}
|
||||
|
||||
private bool AnyOperationInProgress => this.installStatus == OperationStatus.InProgress ||
|
||||
|
|
@ -1453,6 +1456,15 @@ internal class PluginInstallerWindow : Window, IDisposable
|
|||
if (filter == InstalledPluginListFilter.Testing && !manager.HasTestingOptIn(plugin.Manifest))
|
||||
continue;
|
||||
|
||||
if (filter == InstalledPluginListFilter.Enabled && (!plugin.IsWantedByAnyProfile || plugin.IsOutdated || plugin.IsBanned || plugin.IsOrphaned || plugin.IsDecommissioned))
|
||||
continue;
|
||||
|
||||
if (filter == InstalledPluginListFilter.Disabled && (plugin.IsWantedByAnyProfile || plugin.IsOutdated || plugin.IsBanned || plugin.IsOrphaned || plugin.IsDecommissioned))
|
||||
continue;
|
||||
|
||||
if (filter == InstalledPluginListFilter.Incompatible && !(plugin.IsOutdated || plugin.IsBanned || plugin.IsOrphaned || plugin.IsDecommissioned))
|
||||
continue;
|
||||
|
||||
// Find applicable update and manifest, if we have them
|
||||
AvailablePluginUpdate? update = null;
|
||||
RemotePluginManifest? remoteManifest = null;
|
||||
|
|
@ -1485,6 +1497,9 @@ internal class PluginInstallerWindow : Window, IDisposable
|
|||
InstalledPluginListFilter.Testing => Locs.TabBody_NoPluginsTesting,
|
||||
InstalledPluginListFilter.Updateable => Locs.TabBody_NoPluginsUpdateable,
|
||||
InstalledPluginListFilter.Dev => Locs.TabBody_NoPluginsDev,
|
||||
InstalledPluginListFilter.Enabled => Locs.TabBody_NoPluginsEnabled,
|
||||
InstalledPluginListFilter.Disabled => Locs.TabBody_NoPluginsDisabled,
|
||||
InstalledPluginListFilter.Incompatible => Locs.TabBody_NoPluginsIncompatible,
|
||||
_ => throw new ArgumentException(null, nameof(filter)),
|
||||
};
|
||||
|
||||
|
|
@ -1725,6 +1740,18 @@ internal class PluginInstallerWindow : Window, IDisposable
|
|||
this.DrawInstalledPluginList(InstalledPluginListFilter.Updateable);
|
||||
break;
|
||||
|
||||
case PluginCategoryManager.CategoryKind.EnabledPlugins:
|
||||
this.DrawInstalledPluginList(InstalledPluginListFilter.Enabled);
|
||||
break;
|
||||
|
||||
case PluginCategoryManager.CategoryKind.DisabledPlugins:
|
||||
this.DrawInstalledPluginList(InstalledPluginListFilter.Disabled);
|
||||
break;
|
||||
|
||||
case PluginCategoryManager.CategoryKind.IncompatiblePlugins:
|
||||
this.DrawInstalledPluginList(InstalledPluginListFilter.Incompatible);
|
||||
break;
|
||||
|
||||
case PluginCategoryManager.CategoryKind.PluginProfiles:
|
||||
this.profileManagerWidget.Draw();
|
||||
break;
|
||||
|
|
@ -4097,6 +4124,12 @@ internal class PluginInstallerWindow : Window, IDisposable
|
|||
|
||||
public static string TabBody_NoPluginsDev => Loc.Localize("InstallerNoPluginsDev", "You don't have any dev plugins. Add them from the settings.");
|
||||
|
||||
public static string TabBody_NoPluginsEnabled => Loc.Localize("InstallerNoPluginsEnabled", "You don't have any enabled plugins.");
|
||||
|
||||
public static string TabBody_NoPluginsDisabled => Loc.Localize("InstallerNoPluginsDisabled", "You don't have any disabled plugins.");
|
||||
|
||||
public static string TabBody_NoPluginsIncompatible => Loc.Localize("InstallerNoPluginsIncompatible", "You don't have any incompatible plugins.");
|
||||
|
||||
#endregion
|
||||
|
||||
#region Search text
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue