diff --git a/Dalamud/Interface/Internal/DalamudInterface.cs b/Dalamud/Interface/Internal/DalamudInterface.cs index c62fbb89c..1ed528893 100644 --- a/Dalamud/Interface/Internal/DalamudInterface.cs +++ b/Dalamud/Interface/Internal/DalamudInterface.cs @@ -263,6 +263,15 @@ internal class DalamudInterface : IDisposable, IServiceType this.pluginWindow.BringToFront(); } + /// + /// Opens the on the plugin installed. + /// + public void OpenPluginInstallerPluginInstalled() + { + this.pluginWindow.OpenInstalledPlugins(); + this.pluginWindow.BringToFront(); + } + /// /// Opens the on the plugin changelogs. /// @@ -420,6 +429,15 @@ internal class DalamudInterface : IDisposable, IServiceType #endregion + /// + /// Sets the current search text for the plugin installer. + /// + /// The search term. + public void SetPluginInstallerSearchText(string text) + { + this.pluginWindow.SetSearchText(text); + } + /// /// Toggle the screen darkening effect used for the credits. /// diff --git a/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs b/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs index 66f706bfe..ef77ee499 100644 --- a/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs +++ b/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs @@ -97,6 +97,7 @@ internal class PluginInstallerWindow : Window, IDisposable private bool hasDevPlugins = false; private string searchText = string.Empty; + private bool prefilledSearchTexted = false; private PluginSortKind sortKind = PluginSortKind.Alphabetical; private string filterText = Locs.SortBy_Alphabetical; @@ -202,7 +203,7 @@ internal class PluginInstallerWindow : Window, IDisposable _ = pluginManager.ReloadPluginMastersAsync(); - this.searchText = string.Empty; + if (!this.prefilledSearchTexted) this.searchText = string.Empty; this.sortKind = PluginSortKind.Alphabetical; this.filterText = Locs.SortBy_Alphabetical; @@ -218,6 +219,12 @@ internal class PluginInstallerWindow : Window, IDisposable public override void OnClose() { Service.Get().QueueSave(); + + if (this.prefilledSearchTexted) + { + this.prefilledSearchTexted = false; + this.searchText = string.Empty; + } } /// @@ -244,6 +251,18 @@ internal class PluginInstallerWindow : Window, IDisposable this.imageCache.ClearIconCache(); } + /// + /// Open the window on the plugin changelogs. + /// + public void OpenInstalledPlugins() + { + // Installed group + this.categoryManager.CurrentGroupIdx = 1; + // All category + this.categoryManager.CurrentCategoryIdx = 0; + this.IsOpen = true; + } + /// /// Open the window on the plugin changelogs. /// @@ -256,6 +275,16 @@ internal class PluginInstallerWindow : Window, IDisposable this.IsOpen = true; } + /// + /// Sets the current search text and marks it as prefilled. + /// + /// The search term. + public void SetSearchText(string text) + { + this.prefilledSearchTexted = true; + this.searchText = text; + } + private void DrawProgressOverlay() { var pluginManager = Service.Get(); diff --git a/Dalamud/Plugin/DalamudPluginInterface.cs b/Dalamud/Plugin/DalamudPluginInterface.cs index be13f4507..53138e63f 100644 --- a/Dalamud/Plugin/DalamudPluginInterface.cs +++ b/Dalamud/Plugin/DalamudPluginInterface.cs @@ -196,7 +196,7 @@ public sealed class DalamudPluginInterface : IDisposable public List PluginInternalNames => Service.Get().InstalledPlugins.Select(p => p.Manifest.InternalName).ToList(); /// - /// Opens the . + /// Opens the with the plugin name set as search target. /// /// Returns false if the DalamudInterface was null. public bool OpenPluginInstaller() @@ -207,7 +207,9 @@ public sealed class DalamudPluginInterface : IDisposable return false; } - dalamudInterface.OpenPluginInstaller(); + dalamudInterface.OpenPluginInstallerPluginInstalled(); + dalamudInterface.SetPluginInstallerSearchText(this.pluginName); + return true; }