aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/ApplicationLogsViewVM.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/ApplicationLogsViewVM.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/ApplicationLogsViewVM.cs59
1 files changed, 43 insertions, 16 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/ApplicationLogsViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/ApplicationLogsViewVM.cs
index b0bc613bd..3e0e3ab84 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/ApplicationLogsViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/ApplicationLogsViewVM.cs
@@ -13,6 +13,7 @@ using Tango.MachineStudio.Logging.Navigation;
using Tango.MachineStudio.Logging.Parsing;
using Tango.MachineStudio.Logging.Views;
using Tango.SharedUI;
+using Tango.SharedUI.Components;
namespace Tango.MachineStudio.Logging.ViewModels
{
@@ -41,6 +42,8 @@ namespace Tango.MachineStudio.Logging.ViewModels
set { _logsViewSource = value; RaisePropertyChangedAuto(); }
}
+ public SelectedObjectCollection<LogCategory> SelectedLogCategories { get; set; }
+
private String _filter;
public String Filter
{
@@ -118,22 +121,7 @@ namespace Tango.MachineStudio.Logging.ViewModels
{
_realTimePaused = value;
RaisePropertyChangedAuto();
-
- if (!_realTimePaused)
- {
- LogsViewSource.Filter = null;
- _realTimeLogs.InsertRange(0, _pausedLogs);
- _pausedLogs.Clear();
- }
- else
- {
- LogsViewSource.Filter = (x) =>
- {
- if (String.IsNullOrWhiteSpace(Filter)) return true;
- LogItemBase log = x as LogItemBase;
- return log.Message.ToLower().Contains(Filter.ToLower());
- };
- }
+ ApplyLogsFilter();
}
}
@@ -149,6 +137,27 @@ namespace Tango.MachineStudio.Logging.ViewModels
NavigateToHomeCommand = new RelayCommand(() => navigation.NavigateTo(LoggingNavigationView.HomeView));
+ SelectedLogCategories = new SelectedObjectCollection<LogCategory>(new ObservableCollection<LogCategory>()
+ {
+ LogCategory.Info,
+ LogCategory.Warning,
+ LogCategory.Error,
+ LogCategory.Critical,
+ LogCategory.Debug,
+ }, new ObservableCollection<LogCategory>()
+ {
+ LogCategory.Info,
+ LogCategory.Warning,
+ LogCategory.Error,
+ LogCategory.Critical,
+ LogCategory.Debug,
+ });
+
+ SelectedLogCategories.SynchedSource.CollectionChanged += (_, __) =>
+ {
+ ApplyLogsFilter();
+ };
+
_parser = new ApplicationLogFileParser();
_logFiles = _parser.GetLogFiles();
@@ -177,6 +186,24 @@ namespace Tango.MachineStudio.Logging.ViewModels
_is_debug = LogManager.Categories.Contains(LogCategory.Debug);
}
+ private void ApplyLogsFilter()
+ {
+ if ((_realTimePaused && _isRealTime) || !_isRealTime)
+ {
+ LogsViewSource.Filter = (x) =>
+ {
+ LogItemBase log = x as LogItemBase;
+ return (SelectedLogCategories.SynchedSource.Contains(log.Category) && (String.IsNullOrWhiteSpace(Filter) || log.Message.ToLower().Contains(Filter.ToLower())));
+ };
+ }
+ else
+ {
+ LogsViewSource.Filter = null;
+ _realTimeLogs.InsertRange(0, _pausedLogs);
+ _pausedLogs.Clear();
+ }
+ }
+
private void LogManager_NewLog(object sender, LogItemBase log)
{
if (log.Category == LogCategory.Debug && !DisplayDebug) return;