diff --git a/xbmc/FileSystem/SmartPlaylistDirectory.cpp b/xbmc/FileSystem/SmartPlaylistDirectory.cpp index 98a8c067d0..ab14342f96 100644 --- a/xbmc/FileSystem/SmartPlaylistDirectory.cpp +++ b/xbmc/FileSystem/SmartPlaylistDirectory.cpp @@ -80,8 +80,7 @@ namespace DIRECTORY { CMusicDatabase db; db.Open(); - CStdString whereOrder = playlist.GetWhereClause() + " " + playlist.GetOrderClause(); - success = db.GetAlbumsByWhere("musicdb://3/", whereOrder, items); + success = db.GetAlbumsByWhere("musicdb://3/", playlist.GetWhereClause(), playlist.GetOrderClause(), items); items.SetContent("albums"); db.Close(); return success; diff --git a/xbmc/MusicDatabase.cpp b/xbmc/MusicDatabase.cpp index b5f4132fb5..6cebbbf934 100644 --- a/xbmc/MusicDatabase.cpp +++ b/xbmc/MusicDatabase.cpp @@ -2522,7 +2522,7 @@ bool CMusicDatabase::GetAlbumsByYear(const CStdString& strBaseDir, CFileItemList { CStdString where = FormatSQL("where iYear=%ld", year); - return GetAlbumsByWhere(strBaseDir, where, items); + return GetAlbumsByWhere(strBaseDir, where, "", items); } bool CMusicDatabase::GetArtistsNav(const CStdString& strBaseDir, CFileItemList& items, long idGenre, bool albumArtistsOnly) @@ -2803,10 +2803,10 @@ bool CMusicDatabase::GetAlbumsNav(const CStdString& strBaseDir, CFileItemList& i , idArtist, idArtist, idArtist, idArtist); } - return GetAlbumsByWhere(strBaseDir, strWhere, items); + return GetAlbumsByWhere(strBaseDir, strWhere, "", items); } -bool CMusicDatabase::GetAlbumsByWhere(const CStdString &baseDir, const CStdString &where, CFileItemList &items) +bool CMusicDatabase::GetAlbumsByWhere(const CStdString &baseDir, const CStdString &where, const CStdString &order, CFileItemList &items) { if (NULL == m_pDB.get()) return false; if (NULL == m_pDS.get()) return false; @@ -2820,7 +2820,7 @@ bool CMusicDatabase::GetAlbumsByWhere(const CStdString &baseDir, const CStdStrin sql += "where "; else sql += where + " and "; - sql += "albumview.strAlbum != \"\""; + sql += "albumview.strAlbum != \"\" " + order; // run query CLog::Log(LOGDEBUG, "%s query: %s", __FUNCTION__, sql.c_str()); diff --git a/xbmc/MusicDatabase.h b/xbmc/MusicDatabase.h index 952f535d16..370f313955 100644 --- a/xbmc/MusicDatabase.h +++ b/xbmc/MusicDatabase.h @@ -166,7 +166,7 @@ class CMusicDatabase : public CDatabase bool GetSongsNav(const CStdString& strBaseDir, CFileItemList& items, long idGenre, long idArtist,long idAlbum); bool GetSongsByYear(const CStdString& baseDir, CFileItemList& items, long year); bool GetSongsByWhere(const CStdString &baseDir, const CStdString &whereClause, CFileItemList& items); - bool GetAlbumsByWhere(const CStdString &baseDir, const CStdString &where, CFileItemList &items); + bool GetAlbumsByWhere(const CStdString &baseDir, const CStdString &where, const CStdString &order, CFileItemList &items); bool GetRandomSong(CFileItem* item, long& lSongId, const CStdString& strWhere); int GetSongsCount(); int GetSongsCount(const CStdString& strWhere);