diff --git a/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs b/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs
index d9cdf5581..974eafa96 100644
--- a/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs
+++ b/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs
@@ -59,6 +59,11 @@ namespace Flow.Launcher.Plugin
/// Optional message subtitle
void ShowMsgError(string title, string subTitle = "");
+ ///
+ /// Show the MainWindow when hiding
+ ///
+ void ShowMainWindow();
+
///
/// Show message box
///
diff --git a/Flow.Launcher/PublicAPIInstance.cs b/Flow.Launcher/PublicAPIInstance.cs
index 6f995671d..70d54619d 100644
--- a/Flow.Launcher/PublicAPIInstance.cs
+++ b/Flow.Launcher/PublicAPIInstance.cs
@@ -68,6 +68,8 @@ namespace Flow.Launcher
public void RestarApp() => RestartApp();
+ public void ShowMainWindow() => _mainVM.MainWindowVisibility = Visibility.Visible;
+
public void CheckForNewUpdate() => _settingsVM.UpdateApp();
public void SaveAppAllSettings()
diff --git a/Flow.Launcher/SettingWindow.xaml b/Flow.Launcher/SettingWindow.xaml
index 8a5feb866..8aaef7054 100644
--- a/Flow.Launcher/SettingWindow.xaml
+++ b/Flow.Launcher/SettingWindow.xaml
@@ -37,7 +37,7 @@
-
+
-
@@ -998,7 +999,10 @@
-
@@ -1079,7 +1083,7 @@
+ Visibility="Visible" />
@@ -1112,7 +1116,7 @@
-
+
diff --git a/Flow.Launcher/SettingWindow.xaml.cs b/Flow.Launcher/SettingWindow.xaml.cs
index 4d36ec5da..4b58b9c6a 100644
--- a/Flow.Launcher/SettingWindow.xaml.cs
+++ b/Flow.Launcher/SettingWindow.xaml.cs
@@ -14,6 +14,7 @@ using Flow.Launcher.Plugin.SharedCommands;
using Flow.Launcher.ViewModel;
using Flow.Launcher.Helper;
using System.Windows.Controls;
+using Flow.Launcher.Core.ExternalPlugins;
namespace Flow.Launcher
{
@@ -264,6 +265,22 @@ namespace Flow.Launcher
FilesFolders.OpenPath(Path.Combine(DataLocation.DataDirectory(), Constant.Themes));
}
+ private void OnPluginStoreRefreshClick(object sender, RoutedEventArgs e)
+ {
+ _ = viewModel.RefreshExternalPluginsAsync();
+ }
+
+ private void OnExternalPluginInstallClick(object sender, RoutedEventArgs e)
+ {
+ if(sender is Button { DataContext: UserPlugin plugin })
+ {
+ var pluginsManagerPlugin = PluginManager.GetPluginForId("9f8f9b14-2518-4907-b211-35ab6290dee7");
+ var actionKeywrod = pluginsManagerPlugin.Metadata.ActionKeywords.Count == 0 ? "" : pluginsManagerPlugin.Metadata.ActionKeywords[0];
+ API.ChangeQuery($"{actionKeywrod} install {plugin.Name}");
+ API.ShowMainWindow();
+ }
+ }
+
/*
private void OnPluginActionKeywordsClick(object sender, RoutedEventArgs e)
{
diff --git a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs
index 7f16da8ae..6bbf22c41 100644
--- a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs
+++ b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
+using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
@@ -265,6 +266,12 @@ namespace Flow.Launcher.ViewModel
}
}
+ public async Task RefreshExternalPluginsAsync()
+ {
+ await PluginsManifest.UpdateManifestAsync();
+ OnPropertyChanged(nameof(ExternalPlugins));
+ }
+
#endregion