diff --git a/RetroFE/Source/Collection/CollectionInfo.cpp b/RetroFE/Source/Collection/CollectionInfo.cpp index 2d912b1..d07db47 100644 --- a/RetroFE/Source/Collection/CollectionInfo.cpp +++ b/RetroFE/Source/Collection/CollectionInfo.cpp @@ -181,25 +181,31 @@ void CollectionInfo::sortItems() } -void CollectionInfo::sortFavoriteItems() +void CollectionInfo::sortPlaylists() { std::vector *allItems = playlists["all"]; - std::vector favItems; - for(std::vector ::iterator itFav = playlists["favorites"]->begin(); itFav != playlists["favorites"]->end(); itFav++) - { - favItems.push_back((*itFav)); - } - playlists["favorites"]->clear(); - + std::vector toSortItems; - for(std::vector ::iterator itAll = allItems->begin(); itAll != allItems->end(); itAll++) + for ( Playlists_T::iterator itP = playlists.begin( ); itP != playlists.end( ); itP++ ) { - for(std::vector ::iterator itFav = favItems.begin(); itFav != favItems.end(); itFav++) + if ( itP->second != allItems ) { - if ((*itAll) == (*itFav)) + toSortItems.clear(); + for(std::vector ::iterator itSort = itP->second->begin(); itSort != itP->second->end(); itSort++) { - playlists["favorites"]->push_back((*itAll)); + toSortItems.push_back((*itSort)); + } + itP->second->clear(); + for(std::vector ::iterator itAll = allItems->begin(); itAll != allItems->end(); itAll++) + { + for(std::vector ::iterator itSort = toSortItems.begin(); itSort != toSortItems.end(); itSort++) + { + if ((*itAll) == (*itSort)) + { + itP->second->push_back((*itAll)); + } + } } } } diff --git a/RetroFE/Source/Collection/CollectionInfo.h b/RetroFE/Source/Collection/CollectionInfo.h index ff26119..1f52389 100644 --- a/RetroFE/Source/Collection/CollectionInfo.h +++ b/RetroFE/Source/Collection/CollectionInfo.h @@ -29,7 +29,7 @@ public: std::string settingsPath() const; bool Save(); void sortItems(); - void sortFavoriteItems(); + void sortPlaylists(); void addSubcollection(CollectionInfo *info); void extensionList(std::vector &extensions); std::string name; diff --git a/RetroFE/Source/Graphics/Page.cpp b/RetroFE/Source/Graphics/Page.cpp index 26e2957..7710e39 100644 --- a/RetroFE/Source/Graphics/Page.cpp +++ b/RetroFE/Source/Graphics/Page.cpp @@ -996,7 +996,7 @@ void Page::removePlaylist() if(it != items->end()) { items->erase(it); - collection->sortFavoriteItems(); + collection->sortPlaylists(); collection->saveRequest = true; } collection->Save(); @@ -1014,7 +1014,7 @@ void Page::addPlaylist() if(playlist_->first != "favorites" && std::find(items->begin(), items->end(), selectedItem_) == items->end()) { items->push_back(selectedItem_); - collection->sortFavoriteItems(); + collection->sortPlaylists(); collection->saveRequest = true; } collection->Save(); diff --git a/RetroFE/Source/RetroFE.cpp b/RetroFE/Source/RetroFE.cpp index c284a1c..31c002a 100644 --- a/RetroFE/Source/RetroFE.cpp +++ b/RetroFE/Source/RetroFE.cpp @@ -1210,7 +1210,7 @@ CollectionInfo *RetroFE::getCollection(std::string collectionName) mp.buildMenuItems( collection, menuSort ); cib.addPlaylists( collection ); - collection->sortFavoriteItems( ); + collection->sortPlaylists( ); // Add extra info, if available for ( std::vector::iterator it = collection->items.begin( ); it != collection->items.end( ); it++ ) diff --git a/RetroFE/Source/Version.cpp b/RetroFE/Source/Version.cpp index 690c2c1..010c0ee 100644 --- a/RetroFE/Source/Version.cpp +++ b/RetroFE/Source/Version.cpp @@ -21,7 +21,7 @@ std::string retrofe_version_major = "0"; std::string retrofe_version_minor = "8"; -std::string retrofe_version_build = "15b5"; +std::string retrofe_version_build = "15b6"; std::string Version::getString( )