diff options
-rw-r--r-- | language/English/strings.xml | 2 | ||||
-rw-r--r-- | xbmc/video/GUIViewStateVideo.cpp | 115 | ||||
-rw-r--r-- | xbmc/video/windows/GUIWindowVideoNav.cpp | 10 |
3 files changed, 85 insertions, 42 deletions
diff --git a/language/English/strings.xml b/language/English/strings.xml index 66989763da..3570c7b01e 100644 --- a/language/English/strings.xml +++ b/language/English/strings.xml @@ -706,6 +706,8 @@ <string id="851">Valid port range is 1-65535</string> <string id="852">Valid port range is 1024-65535</string> + <string id="998">Add Music...</string> + <string id="999">Add Videos...</string> <string id="1000">- Preview</string> <string id="1001">Unable to connect</string> <string id="1002">XBMC was unable to connect to the network location.</string> diff --git a/xbmc/video/GUIViewStateVideo.cpp b/xbmc/video/GUIViewStateVideo.cpp index d8cbc23561..42b413aa6f 100644 --- a/xbmc/video/GUIViewStateVideo.cpp +++ b/xbmc/video/GUIViewStateVideo.cpp @@ -340,46 +340,59 @@ CGUIViewStateWindowVideoNav::CGUIViewStateWindowVideoNav(const CFileItemList& it } else { - AddSortMethod(SORT_METHOD_LABEL, 551, LABEL_MASKS("%F", "%D", "%L", "")); // Filename, Duration | Foldername, empty - SetSortMethod(SORT_METHOD_LABEL); - - SetViewAsControl(DEFAULT_VIEW_LIST); - + if (g_guiSettings.GetBool("filelists.ignorethewhensorting")) + AddSortMethod(SORT_METHOD_LABEL_IGNORE_THE, 551, LABEL_MASKS("%L", "%I", "%L", "")); // FileName, Size | Foldername, empty + else + AddSortMethod(SORT_METHOD_LABEL, 551, LABEL_MASKS("%L", "%I", "%L", "")); // FileName, Size | Foldername, empty + AddSortMethod(SORT_METHOD_SIZE, 553, LABEL_MASKS("%L", "%I", "%L", "%I")); // FileName, Size | Foldername, Size + AddSortMethod(SORT_METHOD_DATE, 552, LABEL_MASKS("%L", "%J", "%L", "%J")); // FileName, Date | Foldername, Date + AddSortMethod(SORT_METHOD_FILE, 561, LABEL_MASKS("%L", "%I", "%L", "")); // Filename, Size | FolderName, empty + + SetSortMethod(g_settings.m_viewStateVideoFiles.m_sortMethod); + SetViewAsControl(g_settings.m_viewStateVideoFiles.m_viewMode); + SetSortOrder(g_settings.m_viewStateVideoFiles.m_sortOrder); } LoadViewState(items.m_strPath, WINDOW_VIDEO_NAV); } void CGUIViewStateWindowVideoNav::SaveViewState() { - NODE_TYPE NodeType = CVideoDatabaseDirectory::GetDirectoryChildType(m_items.m_strPath); - switch (NodeType) + if (m_items.IsVideoDb()) { - case NODE_TYPE_ACTOR: - SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavActors); - break; - case NODE_TYPE_YEAR: - SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavYears); - break; - case NODE_TYPE_GENRE: - SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavGenres); - break; - case NODE_TYPE_TITLE_MOVIES: - SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavTitles); - break; - case NODE_TYPE_EPISODES: - SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavEpisodes); - break; - case NODE_TYPE_TITLE_TVSHOWS: - SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavTvShows); - break; - case NODE_TYPE_SEASONS: - SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavSeasons); - break; - case NODE_TYPE_TITLE_MUSICVIDEOS: - SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavMusicVideos); - default: - SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV); - break; + NODE_TYPE NodeType = CVideoDatabaseDirectory::GetDirectoryChildType(m_items.m_strPath); + switch (NodeType) + { + case NODE_TYPE_ACTOR: + SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavActors); + break; + case NODE_TYPE_YEAR: + SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavYears); + break; + case NODE_TYPE_GENRE: + SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavGenres); + break; + case NODE_TYPE_TITLE_MOVIES: + SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavTitles); + break; + case NODE_TYPE_EPISODES: + SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavEpisodes); + break; + case NODE_TYPE_TITLE_TVSHOWS: + SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavTvShows); + break; + case NODE_TYPE_SEASONS: + SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavSeasons); + break; + case NODE_TYPE_TITLE_MUSICVIDEOS: + SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavMusicVideos); + default: + SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV); + break; + } + } + else + { + SaveViewToDb(m_items.m_strPath, WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoFiles); } } @@ -401,14 +414,34 @@ VECSOURCES& CGUIViewStateWindowVideoNav::GetSources() m_sources.push_back(share); } - // Playlists share - CMediaSource share; - share.strName=g_localizeStrings.Get(136); // Playlists - share.strPath = "special://videoplaylists/"; - share.m_strThumbnailImage = CUtil::GetDefaultFolderThumb("DefaultVideoPlaylists.png"); - share.m_iDriveType = CMediaSource::SOURCE_TYPE_LOCAL; - m_sources.push_back(share); - + if (g_settings.GetSourcesFromType("video")->empty()) + { // no sources - add the "Add Source" item + CMediaSource share; + share.strName=g_localizeStrings.Get(999); // "Add Videos" + share.strPath = "sources://add/"; + share.m_strThumbnailImage = CUtil::GetDefaultFolderThumb("DefaultAddSource.png"); + share.m_iDriveType = CMediaSource::SOURCE_TYPE_LOCAL; + m_sources.push_back(share); + } + else + { + { // Files share + CMediaSource share; + share.strName=g_localizeStrings.Get(744); // Files + share.strPath = "sources://video/"; + share.m_strThumbnailImage = CUtil::GetDefaultFolderThumb("DefaultFolder.png"); + share.m_iDriveType = CMediaSource::SOURCE_TYPE_LOCAL; + m_sources.push_back(share); + } + { // Playlists share + CMediaSource share; + share.strName=g_localizeStrings.Get(136); // Playlists + share.strPath = "special://videoplaylists/"; + share.m_strThumbnailImage = CUtil::GetDefaultFolderThumb("DefaultVideoPlaylists.png"); + share.m_iDriveType = CMediaSource::SOURCE_TYPE_LOCAL; + m_sources.push_back(share); + } + } return CGUIViewStateWindowVideo::GetSources(); } diff --git a/xbmc/video/windows/GUIWindowVideoNav.cpp b/xbmc/video/windows/GUIWindowVideoNav.cpp index 83d8ca55d2..55a743310e 100644 --- a/xbmc/video/windows/GUIWindowVideoNav.cpp +++ b/xbmc/video/windows/GUIWindowVideoNav.cpp @@ -263,6 +263,8 @@ CStdString CGUIWindowVideoNav::GetQuickpathName(const CStdString& strPath) const return "RecentlyAddedMusicVideos"; else if (strPath.Equals("special://videoplaylists/")) return "Playlists"; + else if (strPath.Equals("sources://video/")) + return "Files"; else { CLog::Log(LOGERROR, " CGUIWindowVideoNav::GetQuickpathName: Unknown parameter (%s)", strPath.c_str()); @@ -450,12 +452,16 @@ void CGUIWindowVideoNav::UpdateButtons() CStdString strDummy; URIUtils::Split(m_vecItems->m_strPath, strDummy, strLabel); } + else if (m_vecItems->m_strPath.Equals("sources://video/")) + strLabel = g_localizeStrings.Get(744); // everything else is from a videodb:// path - else + else if (m_vecItems->IsVideoDb()) { CVideoDatabaseDirectory dir; dir.GetLabel(m_vecItems->m_strPath, strLabel); } + else + strLabel = URIUtils::GetFileName(m_vecItems->m_strPath); SET_CONTROL_LABEL(CONTROL_FILTER, strLabel); @@ -1339,5 +1345,7 @@ CStdString CGUIWindowVideoNav::GetStartFolder(const CStdString &dir) return "videodb://5/"; else if (dir.Equals("RecentlyAddedMusicVideos")) return "videodb://6/"; + else if (dir.Equals("Files")) + return "sources://video/"; return CGUIWindowVideoBase::GetStartFolder(dir); } |