Fixed sorting for playlists other than favorites.

This commit is contained in:
Pieter Hulshoff 2018-05-22 22:08:42 +02:00 committed by Vincent-FK
parent 04cae80445
commit 1680c8467d
5 changed files with 23 additions and 17 deletions

View File

@ -181,25 +181,31 @@ void CollectionInfo::sortItems()
} }
void CollectionInfo::sortFavoriteItems() void CollectionInfo::sortPlaylists()
{ {
std::vector<Item *> *allItems = playlists["all"]; std::vector<Item *> *allItems = playlists["all"];
std::vector<Item *> favItems; std::vector<Item *> toSortItems;
for(std::vector <Item *>::iterator itFav = playlists["favorites"]->begin(); itFav != playlists["favorites"]->end(); itFav++)
for ( Playlists_T::iterator itP = playlists.begin( ); itP != playlists.end( ); itP++ )
{ {
favItems.push_back((*itFav)); if ( itP->second != allItems )
{
toSortItems.clear();
for(std::vector <Item *>::iterator itSort = itP->second->begin(); itSort != itP->second->end(); itSort++)
{
toSortItems.push_back((*itSort));
} }
playlists["favorites"]->clear(); itP->second->clear();
for(std::vector <Item *>::iterator itAll = allItems->begin(); itAll != allItems->end(); itAll++) for(std::vector <Item *>::iterator itAll = allItems->begin(); itAll != allItems->end(); itAll++)
{ {
for(std::vector <Item *>::iterator itFav = favItems.begin(); itFav != favItems.end(); itFav++) for(std::vector <Item *>::iterator itSort = toSortItems.begin(); itSort != toSortItems.end(); itSort++)
{ {
if ((*itAll) == (*itFav)) if ((*itAll) == (*itSort))
{ {
playlists["favorites"]->push_back((*itAll)); itP->second->push_back((*itAll));
}
}
} }
} }
} }

View File

@ -29,7 +29,7 @@ public:
std::string settingsPath() const; std::string settingsPath() const;
bool Save(); bool Save();
void sortItems(); void sortItems();
void sortFavoriteItems(); void sortPlaylists();
void addSubcollection(CollectionInfo *info); void addSubcollection(CollectionInfo *info);
void extensionList(std::vector<std::string> &extensions); void extensionList(std::vector<std::string> &extensions);
std::string name; std::string name;

View File

@ -996,7 +996,7 @@ void Page::removePlaylist()
if(it != items->end()) if(it != items->end())
{ {
items->erase(it); items->erase(it);
collection->sortFavoriteItems(); collection->sortPlaylists();
collection->saveRequest = true; collection->saveRequest = true;
} }
collection->Save(); collection->Save();
@ -1014,7 +1014,7 @@ void Page::addPlaylist()
if(playlist_->first != "favorites" && std::find(items->begin(), items->end(), selectedItem_) == items->end()) if(playlist_->first != "favorites" && std::find(items->begin(), items->end(), selectedItem_) == items->end())
{ {
items->push_back(selectedItem_); items->push_back(selectedItem_);
collection->sortFavoriteItems(); collection->sortPlaylists();
collection->saveRequest = true; collection->saveRequest = true;
} }
collection->Save(); collection->Save();

View File

@ -1210,7 +1210,7 @@ CollectionInfo *RetroFE::getCollection(std::string collectionName)
mp.buildMenuItems( collection, menuSort ); mp.buildMenuItems( collection, menuSort );
cib.addPlaylists( collection ); cib.addPlaylists( collection );
collection->sortFavoriteItems( ); collection->sortPlaylists( );
// Add extra info, if available // Add extra info, if available
for ( std::vector<Item *>::iterator it = collection->items.begin( ); it != collection->items.end( ); it++ ) for ( std::vector<Item *>::iterator it = collection->items.begin( ); it != collection->items.end( ); it++ )

View File

@ -21,7 +21,7 @@
std::string retrofe_version_major = "0"; std::string retrofe_version_major = "0";
std::string retrofe_version_minor = "8"; std::string retrofe_version_minor = "8";
std::string retrofe_version_build = "15b5"; std::string retrofe_version_build = "15b6";
std::string Version::getString( ) std::string Version::getString( )