return params.GetMovieId() != -1 ||
params.GetEpisodeId() != -1 ||
params.GetMVideoId() != -1 ||
+ params.GetSetId() != -1 ||
(params.GetTvShowId() != -1 && params.GetSeason() <= -1 &&
!CVideoDatabaseDirectory::IsAllItem(item->GetPath()));
}
case VIDEODB_CONTENT_MUSICVIDEOS:
heading = 20392;
break;
+ case VIDEODB_CONTENT_MOVIE_SETS:
+ heading = 646;
+ break;
default:
return false;
if (!pDialog->IsConfirmed())
return false;
- CStdString path;
CVideoDatabase database;
database.Open();
+ if (type == VIDEODB_CONTENT_MOVIE_SETS)
+ {
+ database.DeleteSet(item->GetVideoInfoTag()->m_iDbId);
+ return true;
+ }
+
+ CStdString path;
database.GetFilePathById(item->GetVideoInfoTag()->m_iDbId, path, type);
if (path.empty())
return false;
if (!DeleteVideoItemFromDatabase(item, unavailable))
return false;
- bool result = true;
// check if the user is allowed to delete the actual file as well
if ((CProfilesManager::Get().GetCurrentProfile().getLockMode() == LOCK_MODE_EVERYONE ||
!CProfilesManager::Get().GetCurrentProfile().filesLocked() ||
// HACK: stacked files need to be treated as folders in order to be deleted
if (item->IsStack())
item->m_bIsFolder = true;
- result = CFileUtils::DeleteItem(item);
+ CFileUtils::DeleteItem(item);
}
}
CUtil::DeleteVideoDatabaseDirectoryCache();
- return result;
+ return true;
}
bool CGUIDialogVideoInfo::ManageMovieSets(const CFileItemPtr &item)
CFileItemList listItems;
CStdString baseDir = "videodb://movies/sets/";
- if (!CDirectory::GetDirectory(baseDir, listItems) || listItems.Size() <= 0)
+ if (!CDirectory::GetDirectory(baseDir, listItems))
return false;
listItems.Sort(SortByLabel, SortOrderAscending, SortAttributeIgnoreArticle);
}
int iSelectedLabel = 0;
- if (list.Size() > 1)
+ if (list.Size() > 1 || (!bRemove && !list.IsEmpty()))
{
list.Sort(SortByLabel, SortOrderAscending, CSettings::Get().GetBool("filelists.ignorethewhensorting") ? SortAttributeIgnoreArticle : SortAttributeNone);
CGUIDialogSelect* pDialog = (CGUIDialogSelect*)g_windowManager.GetWindow(WINDOW_DIALOG_SELECT);
iSelectedLabel = pDialog->GetSelectedLabel();
}
- if (iSelectedLabel > -1)
+ if (iSelectedLabel > -1 && iSelectedLabel < list.Size())
return database.LinkMovieToTvshow(dbId, list[iSelectedLabel]->GetVideoInfoTag()->m_iDbId, bRemove);
return false;