bool CDirectoryNodeOverview::GetContent(CFileItemList& items) const { CMusicDatabase musicDatabase; bool showSingles = false; if (musicDatabase.Open()) { CDatabase::Filter filter("songview.idAlbum IN (SELECT idAlbum FROM album WHERE strAlbum = '')"); if (musicDatabase.GetSongsCount(filter) > 0) showSingles = true; } for (unsigned int i = 0; i < sizeof(OverviewChildren) / sizeof(Node); ++i) { if (i == 3 && !showSingles) // singles continue; if (i == 9 && musicDatabase.GetCompilationAlbumsCount() == 0) // compilations continue; CFileItemPtr pItem(new CFileItem(g_localizeStrings.Get(OverviewChildren[i].label))); CStdString strDir = StringUtils::Format("%s/", OverviewChildren[i].id.c_str()); pItem->SetPath(BuildPath() + strDir); pItem->m_bIsFolder = true; pItem->SetCanQueue(false); items.Add(pItem); } return true; }
bool CDirectoryNodeOverview::GetContent(CFileItemList& items) const { CMusicDatabase musicDatabase; bool showSingles = false; if (musicDatabase.Open()) { if (musicDatabase.GetSongsCount("where idAlbum in (select idAlbum from album where strAlbum='')") > 0) showSingles = true; } for (unsigned int i = 0; i < sizeof(OverviewChildren) / sizeof(Node); ++i) { if (i == 3 && !showSingles) // singles continue; if (i == 9 && musicDatabase.GetVariousArtistsAlbumsCount() == 0) // compilations continue; CFileItemPtr pItem(new CFileItem(g_localizeStrings.Get(OverviewChildren[i].label))); CStdString strDir; strDir.Format("%ld/", OverviewChildren[i].id); pItem->SetPath(BuildPath() + strDir); pItem->m_bIsFolder = true; pItem->SetCanQueue(false); items.Add(pItem); } return true; }