diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml
index b6bf76b7fc4..a036949fc67 100644
--- a/Flow.Launcher/Languages/en.xaml
+++ b/Flow.Launcher/Languages/en.xaml
@@ -121,6 +121,7 @@
New Action Keyword can't be empty
This new Action Keyword is already assigned to another plugin, please choose a different one
Success
+ Completed successfully
Use * if you don't want to specify an action keyword
diff --git a/Flow.Launcher/MainWindow.xaml b/Flow.Launcher/MainWindow.xaml
index 4cc0b4428b1..aa0240dd428 100644
--- a/Flow.Launcher/MainWindow.xaml
+++ b/Flow.Launcher/MainWindow.xaml
@@ -34,6 +34,7 @@
+
diff --git a/Flow.Launcher/Msg.xaml.cs b/Flow.Launcher/Msg.xaml.cs
index 4129ce28b59..6bb2fc2dc6f 100644
--- a/Flow.Launcher/Msg.xaml.cs
+++ b/Flow.Launcher/Msg.xaml.cs
@@ -66,7 +66,7 @@ public void Show(string title, string subTitle, string iconPath)
}
if (!File.Exists(iconPath))
{
- imgIco.Source = ImageLoader.Load(Path.Combine(Infrastructure.Constant.ProgramDirectory, "Images\\app.png"));
+ imgIco.Source = ImageLoader.Load(Path.Combine(Constant.ProgramDirectory, "Images\\app.png"));
}
else {
imgIco.Source = ImageLoader.Load(iconPath);
diff --git a/Flow.Launcher/ViewModel/MainViewModel.cs b/Flow.Launcher/ViewModel/MainViewModel.cs
index afbe6e19758..a12912b67bf 100644
--- a/Flow.Launcher/ViewModel/MainViewModel.cs
+++ b/Flow.Launcher/ViewModel/MainViewModel.cs
@@ -89,7 +89,6 @@ private void RegisterViewUpdate()
_resultsViewUpdateTask =
Task.Run(updateAction).ContinueWith(continueAction, TaskContinuationOptions.OnlyOnFaulted);
-
async Task updateAction()
{
var queue = new Dictionary();
@@ -105,9 +104,7 @@ async Task updateAction()
UpdateResultView(queue.Values);
}
- }
-
- ;
+ };
void continueAction(Task t)
{
@@ -115,8 +112,8 @@ void continueAction(Task t)
throw t.Exception;
#else
Log.Error($"Error happen in task dealing with viewupdate for results. {t.Exception}");
- _resultsViewUpdateTask =
- Task.Run(updateAction).ContinueWith(continueAction, TaskContinuationOptions.OnlyOnFaulted);
+ _resultsViewUpdateTask =
+ Task.Run(updateAction).ContinueWith(continueAction, TaskContinuationOptions.OnlyOnFaulted);
#endif
}
}
@@ -225,6 +222,25 @@ private void InitializeKeyCommands()
SelectedResults = Results;
}
});
+
+ ReloadPluginDataCommand = new RelayCommand(_ =>
+ {
+ var msg = new Msg { Owner = Application.Current.MainWindow };
+
+ MainWindowVisibility = Visibility.Collapsed;
+
+ PluginManager
+ .ReloadData()
+ .ContinueWith(_ =>
+ Application.Current.Dispatcher.Invoke(() =>
+ {
+ msg.Show(
+ InternationalizationManager.Instance.GetTranslation("success"),
+ InternationalizationManager.Instance.GetTranslation("completedSuccessfully"),
+ "");
+ }))
+ .ConfigureAwait(false);
+ });
}
#endregion
@@ -313,6 +329,7 @@ private ResultsViewModel SelectedResults
public ICommand LoadContextMenuCommand { get; set; }
public ICommand LoadHistoryCommand { get; set; }
public ICommand OpenResultCommand { get; set; }
+ public ICommand ReloadPluginDataCommand { get; set; }
public string OpenResultCommandModifiers { get; private set; }
diff --git a/README.md b/README.md
index 9af47a5ee01..3e420bface6 100644
--- a/README.md
+++ b/README.md
@@ -51,6 +51,7 @@ Windows may complain about security due to code not being signed, this will be c
- Open context menu: on the selected result, press Ctrl+O/Shift+Enter.
- Cancel/Return to previous screen: Esc.
- Install/Uninstall/Update plugins: in the search window, type `pm install`/`pm uninstall`/`pm update` + the plugin name.
+- Press `F5` while in the query window to reload all plugin data.
- Saved user settings are located:
- If using roaming: `%APPDATA%\FlowLauncher`
- If using portable, by default: `%localappdata%\FlowLauncher\app-\UserData`