Index: Favourites.h =================================================================== --- Favourites.h (revision 16115) +++ Favourites.h (working copy) @@ -27,6 +27,7 @@ { public: static bool Load(CFileItemList& items); + static bool LoadFavourites(CStdString& strPath, CFileItemList& items); static bool AddOrRemove(CFileItem *item, DWORD contextWindow); static bool Save(const CFileItemList& items); static bool IsFavourite(CFileItem *item, DWORD contextWindow); Index: Favourites.cpp =================================================================== --- Favourites.cpp (revision 16115) +++ Favourites.cpp (working copy) @@ -25,16 +25,33 @@ #include "Key.h" #include "Settings.h" #include "FileItem.h" +#include "File.h" bool CFavourites::Load(CFileItemList &items) { items.Clear(); CStdString favourites; + + favourites = _P("Q:\\system\\favourites.xml"); + if(CFile::Exists(favourites)) + LoadFavourites(favourites, items); + else + CLog::Log(LOGDEBUG, "CFavourites::Load - no system favourites found, skipping"); CUtil::AddFileToFolder(g_settings.GetProfileUserDataFolder(), "favourites.xml", favourites); + if(CFile::Exists(favourites)) + LoadFavourites(favourites, items); + else + CLog::Log(LOGDEBUG, "CFavourites::Load - no userdata favourites found, skipping"); + + return true; +} + +bool CFavourites::LoadFavourites(CStdString& strPath, CFileItemList& items) +{ TiXmlDocument doc; - if (!doc.LoadFile(favourites)) + if (!doc.LoadFile(strPath)) { - CLog::Log(LOGERROR, "Unable to load %s (row %i column %i)", favourites.c_str(), doc.Row(), doc.Column()); + CLog::Log(LOGERROR, "Unable to load %s (row %i column %i)", strPath.c_str(), doc.Row(), doc.Column()); return false; } TiXmlElement *root = doc.RootElement();