mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-07 19:57:07 +02:00
Add plugin info entry for all context menu
This commit is contained in:
@@ -40,7 +40,7 @@ namespace Wox.Plugin
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Plugin directory
|
/// Plugin directory
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string PluginDirectory { get; internal set; }
|
public string PluginDirectory { get; set; }
|
||||||
|
|
||||||
public override bool Equals(object obj)
|
public override bool Equals(object obj)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -315,8 +315,11 @@ namespace Wox.ViewModel
|
|||||||
MainWindowVisibility = Visibility.Collapsed;
|
MainWindowVisibility = Visibility.Collapsed;
|
||||||
}
|
}
|
||||||
|
|
||||||
_userSelectedRecord.Add(result);
|
if (!ContextMenuVisibility.IsVisible())
|
||||||
_queryHistory.Add(result.OriginQuery.RawQuery);
|
{
|
||||||
|
_userSelectedRecord.Add(result);
|
||||||
|
_queryHistory.Add(result.OriginQuery.RawQuery);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
LoadContextMenuCommand = new RelayCommand(_ =>
|
LoadContextMenuCommand = new RelayCommand(_ =>
|
||||||
@@ -324,13 +327,14 @@ namespace Wox.ViewModel
|
|||||||
if (!ContextMenuVisibility.IsVisible())
|
if (!ContextMenuVisibility.IsVisible())
|
||||||
{
|
{
|
||||||
var result = Results.SelectedResult.RawResult;
|
var result = Results.SelectedResult.RawResult;
|
||||||
var pluginID = result.PluginID;
|
var id = result.PluginID;
|
||||||
|
|
||||||
var contextMenuResults = PluginManager.GetContextMenusForPlugin(result);
|
var menus = PluginManager.GetContextMenusForPlugin(result);
|
||||||
contextMenuResults.Add(GetTopMostContextMenu(result));
|
menus.Add(ContextMenuTopMost(result));
|
||||||
|
menus.Add(ContextMenuPluginInfo(id));
|
||||||
|
|
||||||
ContextMenu.Clear();
|
ContextMenu.Clear();
|
||||||
ContextMenu.AddResults(contextMenuResults, pluginID);
|
ContextMenu.AddResults(menus, id);
|
||||||
ContextMenuVisibility = Visibility.Visible;
|
ContextMenuVisibility = Visibility.Visible;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -502,11 +506,12 @@ namespace Wox.ViewModel
|
|||||||
}, historyMetadata);
|
}, historyMetadata);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private Result GetTopMostContextMenu(Result result)
|
private Result ContextMenuTopMost(Result result)
|
||||||
{
|
{
|
||||||
|
Result menu;
|
||||||
if (_topMostRecord.IsTopMost(result))
|
if (_topMostRecord.IsTopMost(result))
|
||||||
{
|
{
|
||||||
return new Result(InternationalizationManager.Instance.GetTranslation("cancelTopMostInThisQuery"), "Images\\down.png")
|
menu = new Result(InternationalizationManager.Instance.GetTranslation("cancelTopMostInThisQuery"), "Images\\down.png")
|
||||||
{
|
{
|
||||||
PluginDirectory = WoxDirectroy.Executable,
|
PluginDirectory = WoxDirectroy.Executable,
|
||||||
Action = _ =>
|
Action = _ =>
|
||||||
@@ -519,7 +524,7 @@ namespace Wox.ViewModel
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return new Result(InternationalizationManager.Instance.GetTranslation("setAsTopMostInThisQuery"), "Images\\up.png")
|
menu = new Result(InternationalizationManager.Instance.GetTranslation("setAsTopMostInThisQuery"), "Images\\up.png")
|
||||||
{
|
{
|
||||||
PluginDirectory = WoxDirectroy.Executable,
|
PluginDirectory = WoxDirectroy.Executable,
|
||||||
Action = _ =>
|
Action = _ =>
|
||||||
@@ -530,6 +535,28 @@ namespace Wox.ViewModel
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
return menu;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Result ContextMenuPluginInfo(string id)
|
||||||
|
{
|
||||||
|
var metadata = PluginManager.GetPluginForId(id).Metadata;
|
||||||
|
var translator = InternationalizationManager.Instance;
|
||||||
|
|
||||||
|
var author = translator.GetTranslation("author");
|
||||||
|
var website = translator.GetTranslation("website");
|
||||||
|
var version = translator.GetTranslation("version");
|
||||||
|
var plugin = translator.GetTranslation("plugin");
|
||||||
|
var title = $"{plugin}: {metadata.Name}";
|
||||||
|
var icon = metadata.IcoPath;
|
||||||
|
var subtitle = $"{author}: {metadata.Author}, {website}: {metadata.Website} {version}: {metadata.Version}";
|
||||||
|
|
||||||
|
var menu = new Result(title, icon, subtitle)
|
||||||
|
{
|
||||||
|
PluginDirectory = metadata.PluginDirectory,
|
||||||
|
Action = _ => false
|
||||||
|
};
|
||||||
|
return menu;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user