From 5b507f1c42d0bf5cfd8cd31afb732a7c48bc5d0b Mon Sep 17 00:00:00 2001 From: Jonas Rapp Date: Wed, 16 Nov 2016 13:53:00 +0100 Subject: [PATCH] Fixed #17 Possibility to filter plugins to exclude. --- Cinteros.XTB.PluginTraceViewer/PluginTraceViewer.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Cinteros.XTB.PluginTraceViewer/PluginTraceViewer.cs b/Cinteros.XTB.PluginTraceViewer/PluginTraceViewer.cs index 135e026..5603171 100644 --- a/Cinteros.XTB.PluginTraceViewer/PluginTraceViewer.cs +++ b/Cinteros.XTB.PluginTraceViewer/PluginTraceViewer.cs @@ -291,14 +291,22 @@ private void RefreshTraces() } if (chkPlugin.Checked && !string.IsNullOrWhiteSpace(comboPlugin.Text)) { - var pluginFilter = QEplugintracelog.Criteria.AddFilter(LogicalOperator.Or); + var pluginFilterInclude = QEplugintracelog.Criteria.AddFilter(LogicalOperator.Or); + var pluginFilterExclude = QEplugintracelog.Criteria.AddFilter(LogicalOperator.And); foreach (var plugin in comboPlugin.Text.Split(',')) { if (string.IsNullOrWhiteSpace(plugin)) { continue; } - pluginFilter.AddCondition("typename", plugin.Contains("*") ? ConditionOperator.Like : ConditionOperator.Equal, plugin.Replace("*", "%").Trim()); + if (plugin.Trim().StartsWith("!")) + { + pluginFilterExclude.AddCondition("typename", plugin.Contains("*") ? ConditionOperator.NotLike : ConditionOperator.NotEqual, plugin.Replace("*", "%").Trim().Substring(1)); + } + else + { + pluginFilterInclude.AddCondition("typename", plugin.Contains("*") ? ConditionOperator.Like : ConditionOperator.Equal, plugin.Replace("*", "%").Trim()); + } } } if (chkMessage.Checked && !string.IsNullOrWhiteSpace(comboMessage.Text))