Respect extension filter while populating actions list

This commit is contained in:
Jaex 2019-09-21 10:51:11 +03:00
parent 223b88aa4b
commit fbcea5a755
2 changed files with 15 additions and 14 deletions

View file

@ -52,21 +52,13 @@ public ExternalProgram(string name, string path) : this()
Path = path;
}
public ExternalProgram(string name, string path, string args) : this(name, path)
{
if (!string.IsNullOrEmpty(args))
{
Args += " " + args;
}
}
public string Run(string inputPath)
{
if (!string.IsNullOrEmpty(Path) && File.Exists(Path) && !string.IsNullOrWhiteSpace(inputPath))
{
inputPath = inputPath.Trim('"');
if (CheckExtension(inputPath, Extensions))
if (CheckExtension(inputPath))
{
try
{
@ -139,7 +131,12 @@ public async Task<string> RunAsync(string inputPath)
return await Task.Run(() => Run(inputPath));
}
private bool CheckExtension(string path, string extensions)
public bool CheckExtension(string path)
{
return CheckExtension(path, Extensions);
}
public bool CheckExtension(string path, string extensions)
{
if (!string.IsNullOrWhiteSpace(path))
{

View file

@ -724,7 +724,6 @@ private void UpdateContextMenu(WorkerTask task = null)
tsmiUploadSelectedFile.Visible = uim.SelectedItem.IsFileExist;
tsmiDownloadSelectedURL.Visible = uim.SelectedItem.IsFileURL;
tsmiEditSelectedFile.Visible = uim.SelectedItem.IsImageFile;
tsmiRunAction.Visible = uim.SelectedItem.IsFileExist && Program.DefaultTaskSettings.ExternalPrograms.Count > 0;
UpdateActionsMenu(uim.SelectedItem.Info.FilePath);
tsmiDeleteSelectedItem.Visible = true;
tsmiDeleteSelectedFile.Visible = uim.SelectedItem.IsFileExist;
@ -868,11 +867,16 @@ private void UpdateActionsMenu(string filePath)
{
tsmiRunAction.DropDownItems.Clear();
if (Program.DefaultTaskSettings.ExternalPrograms.Count > 0 && !string.IsNullOrEmpty(filePath) && File.Exists(filePath))
if (!string.IsNullOrEmpty(filePath) && File.Exists(filePath))
{
foreach (ExternalProgram action in Program.DefaultTaskSettings.ExternalPrograms)
IEnumerable<ExternalProgram> actions = Program.DefaultTaskSettings.ExternalPrograms.
Where(x => !string.IsNullOrEmpty(x.Name) && x.CheckExtension(filePath));
if (actions.Count() > 0)
{
if (!string.IsNullOrEmpty(action.Name))
tsmiRunAction.Visible = true;
foreach (ExternalProgram action in actions)
{
string name = action.Name.Truncate(50, "...");
ToolStripMenuItem tsmi = new ToolStripMenuItem(name);