private void HandleAdvancedCategoryItemActivation( ListViewItem i, bool reverse, bool updateView = true ) { int oldState = i.StateImageIndex; if( i.StateImageIndex == -1 && reverse ) { i.StateImageIndex = MAX_FILTER_STATE; } else if( i.StateImageIndex == MAX_FILTER_STATE && !reverse ) { i.StateImageIndex = -1; } else { i.StateImageIndex += reverse ? -1 : 1; } Category c = i.Tag as Category; if (i.Tag.ToString() == GlobalStrings.MainForm_Uncategorized) { advFilterUncatState = (AdvancedFilterState)i.StateImageIndex; } else if (i.Tag.ToString() == GlobalStrings.MainForm_Hidden) { advFilterHiddenState = (AdvancedFilterState)i.StateImageIndex; } else { switch (oldState) { case (int)AdvancedFilterState.Allow: advFilterAllow.Remove(c); break; case (int)AdvancedFilterState.Require: advFilterRequire.Remove(c); break; case (int)AdvancedFilterState.Exclude: advFilterExclude.Remove(c); break; } switch( i.StateImageIndex ) { case (int)AdvancedFilterState.Allow: advFilterAllow.Add( c ); break; case (int)AdvancedFilterState.Require: advFilterRequire.Add( c ); break; case (int)AdvancedFilterState.Exclude: advFilterExclude.Add( c ); break; } } if( updateView ) OnViewChange(); }
private void SetAdvancedMode( bool enabled ) { if( enabled ) { lstCategories.StateImageList = imglistFilter; advFilterAllow.Clear(); advFilterExclude.Clear(); advFilterRequire.Clear(); advFilterUncatState = AdvancedFilterState.None; advFilterHiddenState = AdvancedFilterState.None; } else { lstCategories.StateImageList = null; } FillAllCategoryLists(); OnViewChange(); }