protected override void OnShowContextMenu()
{
var selectedItem = this.Facade.SelectedListItem as GUIMovieListItem;
if (selectedItem == null) return;
var selectedAnticipatedItem = selectedItem.TVTag as TraktMovieAnticipated;
if (selectedAnticipatedItem == null) return;
var dlg = (IDialogbox)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU);
if (dlg == null) return;
dlg.Reset();
dlg.SetHeading(GUIUtils.PluginName());
GUICommon.CreateMoviesContextMenu(ref dlg, selectedAnticipatedItem.Movie, false);
// Show Context Menu
dlg.DoModal(GUIWindowManager.ActiveWindow);
if (dlg.SelectedId < 0) return;
switch (dlg.SelectedId)
{
case ((int)MediaContextMenuItem.MarkAsWatched):
TraktHelper.AddMovieToWatchHistory(selectedAnticipatedItem.Movie);
selectedItem.IsPlayed = true;
OnMovieSelected(selectedItem, Facade);
(Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster");
LoadAnticipatedMovies(CurrentPage);
break;
case ((int)MediaContextMenuItem.MarkAsUnWatched):
TraktHelper.RemoveMovieFromWatchHistory(selectedAnticipatedItem.Movie);
selectedItem.IsPlayed = false;
OnMovieSelected(selectedItem, Facade);
(Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster");
break;
case ((int)MediaContextMenuItem.AddToWatchList):
TraktHelper.AddMovieToWatchList(selectedAnticipatedItem.Movie, true);
OnMovieSelected(selectedItem, Facade);
(Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster");
if (TraktSettings.AnticipatedMoviesHideWatchlisted) LoadAnticipatedMovies(CurrentPage);
break;
case ((int)MediaContextMenuItem.RemoveFromWatchList):
TraktHelper.RemoveMovieFromWatchList(selectedAnticipatedItem.Movie, true);
OnMovieSelected(selectedItem, Facade);
(Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster");
break;
case ((int)MediaContextMenuItem.AddToList):
TraktHelper.AddRemoveMovieInUserList(selectedAnticipatedItem.Movie, false);
break;
case ((int)MediaContextMenuItem.AddToLibrary):
TraktHelper.AddMovieToCollection(selectedAnticipatedItem.Movie);
OnMovieSelected(selectedItem, Facade);
(Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster");
LoadAnticipatedMovies(CurrentPage);
break;
case ((int)MediaContextMenuItem.RemoveFromLibrary):
TraktHelper.RemoveMovieFromCollection(selectedAnticipatedItem.Movie);
OnMovieSelected(selectedItem, Facade);
(Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster");
break;
case ((int)MediaContextMenuItem.Related):
TraktHelper.ShowRelatedMovies(selectedAnticipatedItem.Movie);
break;
case ((int)MediaContextMenuItem.Rate):
GUICommon.RateMovie(selectedAnticipatedItem.Movie);
OnMovieSelected(selectedItem, Facade);
(Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster");
LoadAnticipatedMovies(CurrentPage);
break;
case ((int)MediaContextMenuItem.Filters):
if (GUICommon.ShowMovieFiltersMenu())
{
PreviousSelectedIndex = CurrentPage == 1 ? 0 : 1;
UpdateButtonState();
LoadAnticipatedMovies(CurrentPage);
}
break;
case ((int)MediaContextMenuItem.Shouts):
TraktHelper.ShowMovieShouts(selectedAnticipatedItem.Movie);
break;
case ((int)MediaContextMenuItem.Cast):
GUICreditsMovie.Movie = selectedAnticipatedItem.Movie;
GUICreditsMovie.Type = GUICreditsMovie.CreditType.Cast;
GUICreditsMovie.Fanart = TmdbCache.GetMovieBackdropFilename(selectedItem.Images.MovieImages);
GUIWindowManager.ActivateWindow((int)TraktGUIWindows.CreditsMovie);
break;
case ((int)MediaContextMenuItem.Crew):
GUICreditsMovie.Movie = selectedAnticipatedItem.Movie;
GUICreditsMovie.Type = GUICreditsMovie.CreditType.Crew;
GUICreditsMovie.Fanart = TmdbCache.GetMovieBackdropFilename(selectedItem.Images.MovieImages);
GUIWindowManager.ActivateWindow((int)TraktGUIWindows.CreditsMovie);
break;
case ((int)MediaContextMenuItem.Trailers):
GUICommon.ShowMovieTrailersMenu(selectedAnticipatedItem.Movie);
break;
case ((int)MediaContextMenuItem.ChangeLayout):
CurrentLayout = GUICommon.ShowLayoutMenu(CurrentLayout, PreviousSelectedIndex);
break;
case ((int)MediaContextMenuItem.SearchWithMpNZB):
string loadingParam = string.Format("search:{0}", selectedAnticipatedItem.Movie.Title);
GUIWindowManager.ActivateWindow((int)ExternalPluginWindows.MpNZB, loadingParam);
break;
case ((int)MediaContextMenuItem.SearchTorrent):
string loadPar = selectedAnticipatedItem.Movie.Title;
GUIWindowManager.ActivateWindow((int)ExternalPluginWindows.MyTorrents, loadPar);
break;
default:
break;
}
base.OnShowContextMenu();
}