Skip to content

Commit

Permalink
utilise the SORT_METHOD->SortBy lookup routine in CFileItemList::Sort
Browse files Browse the repository at this point in the history
  • Loading branch information
Jonathan Marshall committed Nov 2, 2012
1 parent 111203a commit 9f6d26f
Showing 1 changed file with 1 addition and 123 deletions.
124 changes: 1 addition & 123 deletions xbmc/FileItem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1821,131 +1821,9 @@ void CFileItemList::Sort(SORT_METHOD sortMethod, SortOrder sortOrder)
if (sortMethod == m_sortMethod && m_sortOrder == sortOrder)
return;

SortDescription sorting;
SortDescription sorting = SortUtils::TranslateOldSortMethod(sortMethod);
sorting.sortOrder = sortOrder;

switch (sortMethod)
{
case SORT_METHOD_LABEL:
case SORT_METHOD_LABEL_IGNORE_FOLDERS:
case SORT_METHOD_LABEL_IGNORE_THE:
sorting.sortBy = SortByLabel;
break;
case SORT_METHOD_DATE:
sorting.sortBy = SortByDate;
break;
case SORT_METHOD_SIZE:
sorting.sortBy = SortBySize;
break;
case SORT_METHOD_BITRATE:
sorting.sortBy = SortByBitrate;
break;
case SORT_METHOD_DRIVE_TYPE:
sorting.sortBy = SortByDriveType;
break;
case SORT_METHOD_TRACKNUM:
sorting.sortBy = SortByTrackNumber;
break;
case SORT_METHOD_EPISODE:
sorting.sortBy = SortByEpisodeNumber;
break;
case SORT_METHOD_DURATION:
case SORT_METHOD_VIDEO_RUNTIME:
sorting.sortBy = SortByTime;
break;
case SORT_METHOD_TITLE:
case SORT_METHOD_TITLE_IGNORE_THE:
case SORT_METHOD_VIDEO_TITLE:
sorting.sortBy = SortByTitle;
break;
case SORT_METHOD_ARTIST:
case SORT_METHOD_ARTIST_IGNORE_THE:
sorting.sortBy = SortByArtist;
break;
case SORT_METHOD_ALBUM:
case SORT_METHOD_ALBUM_IGNORE_THE:
sorting.sortBy = SortByAlbum;
break;
case SORT_METHOD_GENRE:
sorting.sortBy = SortByGenre;
break;
case SORT_METHOD_COUNTRY:
sorting.sortBy = SortByCountry;
break;
case SORT_METHOD_DATEADDED:
sorting.sortBy = SortByDateAdded;
break;
case SORT_METHOD_FILE:
sorting.sortBy = SortByFile;
break;
case SORT_METHOD_SONG_RATING:
case SORT_METHOD_VIDEO_RATING:
sorting.sortBy = SortByRating;
break;
case SORT_METHOD_VIDEO_SORT_TITLE:
case SORT_METHOD_VIDEO_SORT_TITLE_IGNORE_THE:
sorting.sortBy = SortBySortTitle;
break;
case SORT_METHOD_YEAR:
sorting.sortBy = SortByYear;
break;
case SORT_METHOD_PRODUCTIONCODE:
sorting.sortBy = SortByProductionCode;
break;
case SORT_METHOD_PROGRAM_COUNT:
sorting.sortBy = SortByProgramCount;
break;
case SORT_METHOD_PLAYLIST_ORDER:
sorting.sortBy = SortByPlaylistOrder;
break;
case SORT_METHOD_MPAA_RATING:
sorting.sortBy = SortByMPAA;
break;
case SORT_METHOD_STUDIO:
case SORT_METHOD_STUDIO_IGNORE_THE:
sorting.sortBy = SortByStudio;
break;
case SORT_METHOD_FULLPATH:
sorting.sortBy = SortByPath;
break;
case SORT_METHOD_LASTPLAYED:
sorting.sortBy = SortByLastPlayed;
break;
case SORT_METHOD_PLAYCOUNT:
sorting.sortBy = SortByPlaycount;
break;
case SORT_METHOD_LISTENERS:
sorting.sortBy = SortByListeners;
break;
case SORT_METHOD_CHANNEL:
sorting.sortBy = SortByChannel;
break;
default:
CLog::Log(LOGWARNING, "Unknown sort method %d", sortMethod);
return;
}

if (sortMethod == SORT_METHOD_LABEL_IGNORE_THE ||
sortMethod == SORT_METHOD_TITLE_IGNORE_THE ||
sortMethod == SORT_METHOD_ARTIST_IGNORE_THE ||
sortMethod == SORT_METHOD_ALBUM_IGNORE_THE ||
sortMethod == SORT_METHOD_VIDEO_SORT_TITLE_IGNORE_THE ||
sortMethod == SORT_METHOD_STUDIO_IGNORE_THE)
sorting.sortAttributes = (SortAttribute)((int)sorting.sortAttributes | SortAttributeIgnoreArticle);

if (sortMethod == SORT_METHOD_FILE ||
sortMethod == SORT_METHOD_VIDEO_SORT_TITLE ||
sortMethod == SORT_METHOD_VIDEO_SORT_TITLE_IGNORE_THE ||
sortMethod == SORT_METHOD_LABEL_IGNORE_FOLDERS ||
sortMethod == SORT_METHOD_DATEADDED ||
sortMethod == SORT_METHOD_VIDEO_RATING ||
sortMethod == SORT_METHOD_YEAR ||
sortMethod == SORT_METHOD_PLAYLIST_ORDER ||
sortMethod == SORT_METHOD_LASTPLAYED ||
sortMethod == SORT_METHOD_PLAYCOUNT ||
m_sortIgnoreFolders)
sorting.sortAttributes = (SortAttribute)((int)sorting.sortAttributes | SortAttributeIgnoreFolders);

Sort(sorting);

m_sortMethod = sortMethod;
Expand Down

0 comments on commit 9f6d26f

Please sign in to comment.