From fbcea5a7557424a8f35709577e10354f033e8690 Mon Sep 17 00:00:00 2001 From: Jaex Date: Sat, 21 Sep 2019 10:51:11 +0300 Subject: [PATCH] Respect extension filter while populating actions list --- ShareX.HelpersLib/ExternalProgram.cs | 17 +++++++---------- ShareX/Forms/MainForm.cs | 12 ++++++++---- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/ShareX.HelpersLib/ExternalProgram.cs b/ShareX.HelpersLib/ExternalProgram.cs index 6ebaec523..99c665c9e 100644 --- a/ShareX.HelpersLib/ExternalProgram.cs +++ b/ShareX.HelpersLib/ExternalProgram.cs @@ -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 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)) { diff --git a/ShareX/Forms/MainForm.cs b/ShareX/Forms/MainForm.cs index fcbb26b3b..127b68df4 100644 --- a/ShareX/Forms/MainForm.cs +++ b/ShareX/Forms/MainForm.cs @@ -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 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);