protected virtual void OnOptionsChanged() { sorting = options.Sorting.Mode; sortingReversed = options.Sorting.Descending; grouping = options.Grouping.Mode; groupingReversed = options.Grouping.Descending; groupingEnabled = grouping != Settings.GroupMode.None && !IsSortingCustom; switch (sorting) { case Settings.SortMode.Account: case Settings.SortMode.Name: if (this.stringComparer == null) { this.stringComparer = new Util.AlphanumericStringComparer(); } break; default: this.stringComparer = null; break; } }
protected virtual int Compare(Settings.GroupMode grouping, Settings.IAccount a, Settings.IAccount b) { if ((grouping & Settings.GroupMode.Active) == Settings.GroupMode.Active) { var result = -Client.Launcher.IsActive(a).CompareTo(Client.Launcher.IsActive(b)); if (result != 0) { return(result); } } if ((grouping & Settings.GroupMode.Type) == Settings.GroupMode.Type) { var result = a.Type.CompareTo(b.Type); if (result != 0) { return(result); } } return(0); }