From f18fa454950e3a046a90cb26bbde2f40251f415a Mon Sep 17 00:00:00 2001 From: "Devin J. Pohly" Date: Sat, 31 Jan 2015 04:26:51 -0500 Subject: [PATCH] MusicWheel: fix CloseCurrentFolder with OnlyShowActiveSection Moves all of the wheel-entry-hiding logic into SetOpenSection rather than prematurely throwing out section headings. Now when we close the active section with OnlyShowActiveSection in effect, the headings are shown rather than an empty wheel. --- src/MusicWheel.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/MusicWheel.cpp b/src/MusicWheel.cpp index 82d87c33e0..e1a3b9b641 100644 --- a/src/MusicWheel.cpp +++ b/src/MusicWheel.cpp @@ -677,10 +677,7 @@ void MusicWheel::BuildWheelItemDatas( vector &arrayWheelIt // todo: preferred sort section color handling? -aj RageColor colorSection = (so==SORT_GROUP) ? SONGMAN->GetSongGroupColor(pSong->m_sGroupName) : SECTION_COLORS.GetValue(iSectionColorIndex); iSectionColorIndex = (iSectionColorIndex+1) % NUM_SECTION_COLORS; - // In certain situations (e.g. simulating Pump it Up), themes may - // want to only show one group at a time. - if( !HIDE_INACTIVE_SECTIONS ) - arrayWheelItemDatas.push_back( new MusicWheelItemData(WheelItemDataType_Section, NULL, sThisSection, NULL, colorSection, iSectionCount) ); + arrayWheelItemDatas.push_back( new MusicWheelItemData(WheelItemDataType_Section, NULL, sThisSection, NULL, colorSection, iSectionCount) ); sLastSection = sThisSection; } } @@ -1361,9 +1358,14 @@ void MusicWheel::SetOpenSection( RString group ) for( unsigned i = 0; i < from.size(); ++i ) { MusicWheelItemData &d = *from[i]; + // Don't show songs outside the current group if( (d.m_Type == WheelItemDataType_Song || d.m_Type == WheelItemDataType_Course) && !d.m_sText.empty() && d.m_sText != group ) continue; + // In certain situations (e.g. simulating Pump it Up), themes may + // want to hide inactive group headings as well. + if( HIDE_INACTIVE_SECTIONS && d.m_Type == WheelItemDataType_Section && group != "" ) + continue; // If AUTO_SET_STYLE, hide courses that prefer a style that isn't available. if( d.m_Type == WheelItemDataType_Course && CommonMetrics::AUTO_SET_STYLE )