diff options
Diffstat (limited to 'xbmc/filesystem/VideoDatabaseDirectory/DirectoryNodeTvShowsOverview.cpp')
-rw-r--r-- | xbmc/filesystem/VideoDatabaseDirectory/DirectoryNodeTvShowsOverview.cpp | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/xbmc/filesystem/VideoDatabaseDirectory/DirectoryNodeTvShowsOverview.cpp b/xbmc/filesystem/VideoDatabaseDirectory/DirectoryNodeTvShowsOverview.cpp new file mode 100644 index 0000000..07e5ff4 --- /dev/null +++ b/xbmc/filesystem/VideoDatabaseDirectory/DirectoryNodeTvShowsOverview.cpp @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2005-2018 Team Kodi + * This file is part of Kodi - https://kodi.tv + * + * SPDX-License-Identifier: GPL-2.0-or-later + * See LICENSES/README.md for more information. + */ + +#include "DirectoryNodeTvShowsOverview.h" + +#include "FileItem.h" +#include "guilib/LocalizeStrings.h" +#include "utils/StringUtils.h" +#include "video/VideoDbUrl.h" + +using namespace XFILE::VIDEODATABASEDIRECTORY; + +Node TvShowChildren[] = { + { NODE_TYPE_GENRE, "genres", 135 }, + { NODE_TYPE_TITLE_TVSHOWS, "titles", 10024 }, + { NODE_TYPE_YEAR, "years", 652 }, + { NODE_TYPE_ACTOR, "actors", 344 }, + { NODE_TYPE_STUDIO, "studios", 20388 }, + { NODE_TYPE_TAGS, "tags", 20459 } + }; + +CDirectoryNodeTvShowsOverview::CDirectoryNodeTvShowsOverview(const std::string& strName, CDirectoryNode* pParent) + : CDirectoryNode(NODE_TYPE_TVSHOWS_OVERVIEW, strName, pParent) +{ + +} + +NODE_TYPE CDirectoryNodeTvShowsOverview::GetChildType() const +{ + if (GetName()=="0") + return NODE_TYPE_EPISODES; + + for (const Node& node : TvShowChildren) + if (GetName() == node.id) + return node.node; + + return NODE_TYPE_NONE; +} + +std::string CDirectoryNodeTvShowsOverview::GetLocalizedName() const +{ + for (const Node& node : TvShowChildren) + if (GetName() == node.id) + return g_localizeStrings.Get(node.label); + return ""; +} + +bool CDirectoryNodeTvShowsOverview::GetContent(CFileItemList& items) const +{ + CVideoDbUrl videoUrl; + if (!videoUrl.FromString(BuildPath())) + return false; + + for (const Node& node : TvShowChildren) + { + CFileItemPtr pItem(new CFileItem(g_localizeStrings.Get(node.label))); + + CVideoDbUrl itemUrl = videoUrl; + std::string strDir = StringUtils::Format("{}/", node.id); + itemUrl.AppendPath(strDir); + pItem->SetPath(itemUrl.ToString()); + + pItem->m_bIsFolder = true; + pItem->SetCanQueue(false); + items.Add(pItem); + } + + return true; +} |