public void SetUp()
 {
     _quickFilter = new QuickFilter(new Tailviewer.Settings.QuickFilter());
     _dataSource = new SingleDataSource(_scheduler, _dataSourceSettings = new DataSource("nothing") {Id = Guid.NewGuid()});
     _model = new QuickFilterViewModel(_quickFilter, x => { })
         {
             CurrentDataSource = _dataSource
         };
     _changes = new List<string>();
     _model.PropertyChanged += (sender, args) => _changes.Add(args.PropertyName);
 }
        private void OnRemoveQuickFilter(QuickFilterViewModel viewModel)
        {
            _viewModels.Remove(viewModel);
            _quickFilters.Remove(viewModel.Id);
            viewModel.PropertyChanged -= QuickFilterOnPropertyChanged;

            _settings.Save();

            if (viewModel.IsActive)
            {
                // If we've just deleted an active filter then we most definately need
                // to filter the log file again...
                var fn = OnFiltersChanged;
                if (fn != null)
                    fn();
            }
        }
 private QuickFilterViewModel CreateAndAddViewModel(QuickFilter quickFilter)
 {
     var viewModel = new QuickFilterViewModel(quickFilter, OnRemoveQuickFilter)
         {
             CurrentDataSource = _currentDataSource != null ? _currentDataSource.DataSource : null
         };
     viewModel.PropertyChanged += QuickFilterOnPropertyChanged;
     _viewModels.Add(viewModel);
     return viewModel;
 }