bool CGUIDialogSmartPlaylistEditor::EditPlaylist(const std::string &path, const std::string &type) { CGUIDialogSmartPlaylistEditor *editor = (CGUIDialogSmartPlaylistEditor *)g_windowManager.GetWindow(WINDOW_DIALOG_SMART_PLAYLIST_EDITOR); if (!editor) return false; editor->m_mode = type; if (URIUtils::PathEquals(path, CProfilesManager::GetInstance().GetUserDataItem("PartyMode.xsp"))) editor->m_mode = "partymusic"; if (URIUtils::PathEquals(path, CProfilesManager::GetInstance().GetUserDataItem("PartyMode-Video.xsp"))) editor->m_mode = "partyvideo"; CSmartPlaylist playlist; bool loaded(playlist.Load(path)); if (!loaded) { // failed to load if (!StringUtils::StartsWithNoCase(editor->m_mode, "party")) return false; // only edit normal playlists that exist // party mode playlists can be editted even if they don't exist playlist.SetType(editor->m_mode == "partymusic" ? "songs" : "musicvideos"); } editor->m_playlist = playlist; editor->m_path = path; editor->Initialize(); editor->Open(); return !editor->m_cancelled; }
bool CGUIDialogSmartPlaylistEditor::NewPlaylist(const std::string &type) { CGUIDialogSmartPlaylistEditor *editor = (CGUIDialogSmartPlaylistEditor *)g_windowManager.GetWindow(WINDOW_DIALOG_SMART_PLAYLIST_EDITOR); if (!editor) return false; editor->m_path = ""; editor->m_playlist = CSmartPlaylist(); editor->m_mode = type; editor->Initialize(); editor->Open(); return !editor->m_cancelled; }