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;
}