private void FilterViewControllerFiltersUnapplied()
        {
            LevelsViewController.SetData(_lastPack);

            if (!SongBrowserTweaks.ModLoaded)
            {
                FilterButton.SetButtonText(FilterButtonText);
                FilterButton.SetButtonTextSize(3f);

                // if the clear button is shown, then that was pressed to clear filters
                // therefore, it should currently be highlighted
                if ((ClearButton as NoTransitionsButton).selectionState == NoTransitionsButton.SelectionState.Highlighted)
                {
                    ClearButton.SetButtonText(ClearFilterButtonHighlightedText);
                }
                else
                {
                    ClearButton.SetButtonText(ClearFilterButtonText);
                }
            }
            else
            {
                SongBrowserTweaks.FiltersUnapplied();
            }
        }
        /// <summary>
        /// Unapplies the filters in the FilterViewController, but saves their current status.
        /// </summary>
        /// <param name="songBrowserFilterSelected">Used only by the SongBrowser mod. Set this to true when another filter (Favorites/Playlist) was selected.</param>
        public void UnapplyFilters(bool songBrowserFilterSelected = false)
        {
            if (_filterViewController != null)
            {
                _filterViewController.UnapplyFilters(false);
            }

            if (!SongBrowserTweaks.ModLoaded)
            {
                FilterButton.SetButtonText(FilterButtonText);
                FilterButton.SetButtonTextSize(3f);

                if ((ClearButton as NoTransitionsButton).selectionState == NoTransitionsButton.SelectionState.Highlighted)
                {
                    ClearButton.SetButtonText(ClearFilterButtonHighlightedText);
                }
                else
                {
                    ClearButton.SetButtonText(ClearFilterButtonText);
                }
            }
            else if (SongBrowserTweaks.Initialized && !songBrowserFilterSelected)
            {
                LevelsViewController.SetData(_lastPack);
            }
        }
        private void FilterViewControllerSetFilteredSongs(IPreviewBeatmapLevel[] levels)
        {
            // filter application should be handled by FilterViewController calling stuff in SongBrowserTweaks
            if (SongBrowserTweaks.Initialized)
            {
                return;
            }

            BeatmapLevelPack levelPack = new BeatmapLevelPack("", FilteredSongsPackName, LevelsViewController.levelPack.coverImage, new BeatmapLevelCollection(levels));

            LevelsViewController.SetData(levelPack);

            FilterButton.SetButtonText(FilterButtonAppliedText);
            FilterButton.SetButtonTextSize(2.3f);

            ClearButton.SetButtonText(ClearFilterButtonAppliedText);
        }