protected override void OnShowContextMenu() { var selectedItem = this.Facade.SelectedListItem; if (selectedItem == null) { return; } var selectedListItem = selectedItem.TVTag as TraktListItem; if (selectedListItem == null) { return; } var dlg = (IDialogbox)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg == null) { return; } dlg.Reset(); dlg.SetHeading(GUIUtils.PluginName()); GUIListItem listItem = null; if (SelectedType == TraktItemType.movie || SelectedType == TraktItemType.episode) { // Mark As Watched if (!selectedListItem.IsWatched()) { listItem = new GUIListItem(Translation.MarkAsWatched); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.MarkAsWatched; } // Mark As UnWatched if (selectedListItem.IsWatched()) { listItem = new GUIListItem(Translation.MarkAsUnWatched); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.MarkAsUnWatched; } } if (SelectedType != TraktItemType.season && SelectedType != TraktItemType.person) { // Add/Remove Watchlist if (!selectedListItem.IsWatchlisted()) { listItem = new GUIListItem(Translation.AddToWatchList); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.AddToWatchList; } else { listItem = new GUIListItem(Translation.RemoveFromWatchList); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.RemoveFromWatchList; } } // Add to Custom list listItem = new GUIListItem(Translation.AddToList); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.AddToList; // Remove from Custom list (only if current user is the active user) if (TraktSettings.Username == CurrentUser) { listItem = new GUIListItem(Translation.RemoveFromList); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.RemoveFromList; } if (SelectedType == TraktItemType.movie || SelectedType == TraktItemType.episode) { // Add to Collection // Don't allow if it will be removed again on next sync // movie could be part of a DVD collection if (!selectedListItem.IsCollected() && !TraktSettings.KeepTraktLibraryClean) { listItem = new GUIListItem(Translation.AddToLibrary); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.AddToLibrary; } if (selectedListItem.IsCollected()) { listItem = new GUIListItem(Translation.RemoveFromLibrary); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.RemoveFromLibrary; } } // Related Movies/Shows if (SelectedType != TraktItemType.person) { listItem = new GUIListItem(SelectedType == TraktItemType.movie ? Translation.RelatedMovies : Translation.RelatedShows); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Related; } if (SelectedType != TraktItemType.season && SelectedType != TraktItemType.person) { // Rate listItem = new GUIListItem(Translation.Rate + "..."); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Rate; // Shouts listItem = new GUIListItem(Translation.Comments); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Shouts; } // Cast and Crew if (SelectedType == TraktItemType.movie || SelectedType == TraktItemType.show) { listItem = new GUIListItem(Translation.Cast); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Cast; listItem = new GUIListItem(Translation.Crew); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Crew; } // Trailers if (SelectedType != TraktItemType.person) { if (TraktHelper.IsTrailersAvailableAndEnabled) { listItem = new GUIListItem(Translation.Trailers); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Trailers; } } // Search with mpNZB if (TraktHelper.IsMpNZBAvailableAndEnabled) { if ((selectedListItem.Movie != null && !selectedListItem.Movie.IsCollected()) || selectedListItem.Episode != null) { listItem = new GUIListItem(Translation.SearchWithMpNZB); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.SearchWithMpNZB; } } // Search with MyTorrents if (TraktHelper.IsMyTorrentsAvailableAndEnabled) { if ((selectedListItem.Movie != null && !selectedListItem.Movie.IsCollected()) || selectedListItem.Episode != null) { listItem = new GUIListItem(Translation.SearchTorrent); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.SearchTorrent; } } // Change Layout listItem = new GUIListItem(Translation.ChangeLayout); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.ChangeLayout; // Show Context Menu dlg.DoModal(GUIWindowManager.ActiveWindow); if (dlg.SelectedId < 0) { return; } switch (dlg.SelectedId) { case ((int)ContextMenuItem.MarkAsWatched): AddItemToWatchedHistory(selectedListItem); selectedItem.IsPlayed = true; OnItemSelected(selectedItem, Facade); if (SelectedType == TraktItemType.movie) { (Facade.SelectedListItem as GUICustomListItem).Images.NotifyPropertyChanged("MoviePoster"); } else { (Facade.SelectedListItem as GUICustomListItem).Images.NotifyPropertyChanged("ShowPoster"); } break; case ((int)ContextMenuItem.MarkAsUnWatched): RemoveItemFromWatchedHistory(selectedListItem); selectedItem.IsPlayed = false; OnItemSelected(selectedItem, Facade); if (SelectedType == TraktItemType.movie) { (Facade.SelectedListItem as GUICustomListItem).Images.NotifyPropertyChanged("MoviePoster"); } else { (Facade.SelectedListItem as GUICustomListItem).Images.NotifyPropertyChanged("ShowPoster"); } break; case ((int)ContextMenuItem.AddToWatchList): AddItemToWatchList(selectedListItem); OnItemSelected(selectedItem, Facade); if (SelectedType == TraktItemType.movie) { (Facade.SelectedListItem as GUICustomListItem).Images.NotifyPropertyChanged("MoviePoster"); } else { (Facade.SelectedListItem as GUICustomListItem).Images.NotifyPropertyChanged("ShowPoster"); } GUIWatchListMovies.ClearCache(TraktSettings.Username); break; case ((int)ContextMenuItem.RemoveFromWatchList): RemoveItemFromWatchList(selectedListItem); OnItemSelected(selectedItem, Facade); if (SelectedType == TraktItemType.movie) { (Facade.SelectedListItem as GUICustomListItem).Images.NotifyPropertyChanged("MoviePoster"); } else { (Facade.SelectedListItem as GUICustomListItem).Images.NotifyPropertyChanged("ShowPoster"); } GUIWatchListMovies.ClearCache(TraktSettings.Username); break; case ((int)ContextMenuItem.AddToList): if (SelectedType == TraktItemType.movie) { TraktHelper.AddRemoveMovieInUserList(selectedListItem.Movie, false); } else if (SelectedType == TraktItemType.show) { TraktHelper.AddRemoveShowInUserList(selectedListItem.Show, false); } else if (SelectedType == TraktItemType.season) { TraktHelper.AddRemoveSeasonInUserList(selectedListItem.Season, false); } else if (SelectedType == TraktItemType.episode) { TraktHelper.AddRemoveEpisodeInUserList(selectedListItem.Episode, false); } else if (SelectedType == TraktItemType.person) { TraktHelper.AddRemovePersonInUserList(selectedListItem.Person, false); } break; case ((int)ContextMenuItem.RemoveFromList): if (!GUIUtils.ShowYesNoDialog(Translation.DeleteListItem, Translation.ConfirmDeleteListItem)) { break; } // Only do remove from current list // We could do same as Add (ie remove from multiple lists) but typically you only remove from the current list TraktHelper.AddRemoveItemInList((int)CurrentList.Ids.Trakt, GetSyncItems(selectedListItem), true); // clear the list item cache TraktLists.ClearListItemCache(CurrentUser, CurrentList.Ids.Trakt.ToString()); // remove item from collection CurrentListItems.RemoveAll(l => ListItemMatch(l, selectedListItem)); // clear the cache TraktLists.ClearListItemCache(TraktSettings.Username, CurrentList.Ids.Trakt.ToString()); // Remove from view if (Facade.Count > 1) { PreviousSelectedIndex = Facade.SelectedListItemIndex; SendListItemsToFacade(CurrentListItems); } else { // no more items left GUIControl.ClearControl(GetID, Facade.GetID); ClearProperties(); GUIWindowManager.Process(); // nothing left, exit GUIWindowManager.ShowPreviousWindow(); return; } break; case ((int)ContextMenuItem.AddToLibrary): AddItemToCollection(selectedListItem); OnItemSelected(selectedItem, Facade); if (SelectedType == TraktItemType.movie) { (Facade.SelectedListItem as GUICustomListItem).Images.NotifyPropertyChanged("MoviePoster"); } else { (Facade.SelectedListItem as GUICustomListItem).Images.NotifyPropertyChanged("ShowPoster"); } break; case ((int)ContextMenuItem.RemoveFromLibrary): RemoveItemFromCollection(selectedListItem); OnItemSelected(selectedItem, Facade); if (SelectedType == TraktItemType.movie) { (Facade.SelectedListItem as GUICustomListItem).Images.NotifyPropertyChanged("MoviePoster"); } else { (Facade.SelectedListItem as GUICustomListItem).Images.NotifyPropertyChanged("ShowPoster"); } break; case ((int)ContextMenuItem.Related): if (SelectedType == TraktItemType.movie) { TraktHelper.ShowRelatedMovies(selectedListItem.Movie); } else { //series, season & episode TraktHelper.ShowRelatedShows(selectedListItem.Show); } break; case ((int)ContextMenuItem.Rate): RateItem(selectedListItem); OnItemSelected(selectedItem, Facade); if (SelectedType == TraktItemType.movie) { (Facade.SelectedListItem as GUICustomListItem).Images.NotifyPropertyChanged("MoviePoster"); } else { (Facade.SelectedListItem as GUICustomListItem).Images.NotifyPropertyChanged("ShowPoster"); } break; case ((int)ContextMenuItem.Shouts): if (SelectedType == TraktItemType.movie) { TraktHelper.ShowMovieShouts(selectedListItem.Movie); } else if (SelectedType == TraktItemType.show) { TraktHelper.ShowTVShowShouts(selectedListItem.Show); } else { TraktHelper.ShowEpisodeShouts(selectedListItem.Show, selectedListItem.Episode); } break; case ((int)ContextMenuItem.Cast): if (SelectedType == TraktItemType.movie) { GUICreditsMovie.Movie = selectedListItem.Movie; GUICreditsMovie.Type = GUICreditsMovie.CreditType.Cast; GUICreditsMovie.Fanart = TmdbCache.GetMovieBackdropFilename((selectedItem as GUIMovieListItem).Images.MovieImages); GUIWindowManager.ActivateWindow((int)TraktGUIWindows.CreditsMovie); } else if (SelectedType == TraktItemType.show) { GUICreditsShow.Show = selectedListItem.Show; GUICreditsShow.Type = GUICreditsShow.CreditType.Cast; GUICreditsShow.Fanart = TmdbCache.GetShowBackdropFilename((selectedItem as GUIShowListItem).Images.ShowImages); GUIWindowManager.ActivateWindow((int)TraktGUIWindows.CreditsShow); } break; case ((int)ContextMenuItem.Crew): if (SelectedType == TraktItemType.movie) { GUICreditsMovie.Movie = selectedListItem.Movie; GUICreditsMovie.Type = GUICreditsMovie.CreditType.Crew; GUICreditsMovie.Fanart = TmdbCache.GetMovieBackdropFilename((selectedItem as GUIMovieListItem).Images.MovieImages); GUIWindowManager.ActivateWindow((int)TraktGUIWindows.CreditsMovie); } else if (SelectedType == TraktItemType.show) { GUICreditsShow.Show = selectedListItem.Show; GUICreditsShow.Type = GUICreditsShow.CreditType.Crew; GUICreditsShow.Fanart = TmdbCache.GetShowBackdropFilename((selectedItem as GUIShowListItem).Images.ShowImages); GUIWindowManager.ActivateWindow((int)TraktGUIWindows.CreditsShow); } break; case ((int)ContextMenuItem.Trailers): if (SelectedType == TraktItemType.movie) { GUICommon.ShowMovieTrailersMenu(selectedListItem.Movie); } else if (SelectedType == TraktItemType.episode) { GUICommon.ShowTVShowTrailersMenu(selectedListItem.Show, selectedListItem.Episode); } else if (SelectedType == TraktItemType.season && TraktHelper.IsTrailersAvailableAndEnabled) { GUICommon.ShowTVSeasonTrailersPluginMenu(selectedListItem.Show, selectedListItem.Season.Number); } break; case ((int)ContextMenuItem.SearchWithMpNZB): string loadingParam = String.Empty; if (selectedListItem.Movie != null) { loadingParam = string.Format("search:{0}", selectedListItem.Movie.Title); } else if (selectedListItem.Episode != null) { loadingParam = string.Format("search:{0} S{1}E{2}", selectedListItem.Show.Title, selectedListItem.Episode.Season.ToString("D2"), selectedListItem.Episode.Number.ToString("D2")); } GUIWindowManager.ActivateWindow((int)ExternalPluginWindows.MpNZB, loadingParam); break; case ((int)ContextMenuItem.SearchTorrent): string loadPar = String.Empty; if (selectedListItem.Movie != null) { loadPar = selectedListItem.Movie.Title; } else if (selectedListItem.Episode != null) { loadPar = string.Format("{0} S{1}E{2}", selectedListItem.Show.Title, selectedListItem.Episode.Season.ToString("D2"), selectedListItem.Episode.Number.ToString("D2")); } GUIWindowManager.ActivateWindow((int)ExternalPluginWindows.MyTorrents, loadPar); break; case ((int)ContextMenuItem.ChangeLayout): CurrentLayout = GUICommon.ShowLayoutMenu(CurrentLayout, PreviousSelectedIndex); break; default: break; } base.OnShowContextMenu(); }
private ShareData FolderInfo(GUIListItem item) { ShareData folderInfo = item.AlbumInfoTag as ShareData; return(folderInfo); }
protected override void OnShowContextMenu() { if (GUIBackgroundTask.Instance.IsBusy) { return; } var selectedItem = this.Facade.SelectedListItem; if (selectedItem == null) { return; } var selectedUser = selectedItem.TVTag as TraktUser; if (selectedUser == null) { return; } var dlg = (IDialogbox)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg == null) { return; } dlg.Reset(); dlg.SetHeading(GUIUtils.PluginName()); GUIListItem listItem = null; // Follow User // Only show menu item if user has an account as this is an unprotected area. if (!string.IsNullOrEmpty(TraktSettings.Username) && !string.IsNullOrEmpty(TraktSettings.Password) && !((selectedItem as GUIUserListItem).IsFollowed)) { listItem = new GUIListItem(Translation.FollowUser); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.FollowUser; } // User Profile if (!selectedUser.Protected) { listItem = new GUIListItem(Translation.UserProfile); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.UserProfile; } // Change Layout listItem = new GUIListItem(Translation.ChangeLayout); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.ChangeLayout; // Show Context Menu dlg.DoModal(GUIWindowManager.ActiveWindow); if (dlg.SelectedId < 0) { return; } switch (dlg.SelectedId) { case ((int)ContextMenuItem.FollowUser): if (GUIUtils.ShowYesNoDialog(Translation.Network, string.Format(Translation.SendFollowRequest, selectedItem.Label), true)) { GUINetwork.FollowUser(selectedUser); GUINetwork.ClearCache(); (selectedItem as GUIUserListItem).IsFollowed = true; } break; case ((int)ContextMenuItem.UserProfile): GUIUserProfile.CurrentUser = selectedUser.Username; GUIWindowManager.ActivateWindow((int)TraktGUIWindows.UserProfile); break; case ((int)ContextMenuItem.ChangeLayout): CurrentLayout = GUICommon.ShowLayoutMenu(CurrentLayout, PreviousSelectedIndex); break; } base.OnShowContextMenu(); }
protected override void LoadDirectory(string strNewDirectory) { if (facadeLayout != null) { GUIWaitCursor.Show(); try { GUIListItem SelectedItem = facadeLayout.SelectedListItem; if (SelectedItem != null) { if (SelectedItem.IsFolder && SelectedItem.Label != "..") { m_history.Set(SelectedItem.Label, currentFolder); } } currentFolder = strNewDirectory; facadeLayout.Clear(); string strObjects = string.Empty; ArrayList itemlist = new ArrayList(); PlayList playlist = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_VIDEO); /* copy playlist from general playlist*/ int iCurrentSong = -1; if (playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_VIDEO) { iCurrentSong = playlistPlayer.CurrentSong; } string strFileName; for (int i = 0; i < playlist.Count; ++i) { PlayListItem item = playlist[i]; strFileName = item.FileName; GUIListItem pItem = new GUIListItem(item.Description); pItem.Path = strFileName; pItem.IsFolder = false; //pItem.m_bIsShareOrDrive = false; if (item.Duration > 0) { int nDuration = item.Duration; if (nDuration > 0) { string str = Util.Utils.SecondsToHMSString(nDuration); pItem.Label2 = str; } else { pItem.Label2 = string.Empty; } } pItem.OnItemSelected += OnItemSelected; itemlist.Add(pItem); Util.Utils.SetDefaultIcons(pItem); } iCurrentSong = 0; strFileName = string.Empty; // Search current playlist item if ((m_nTempPlayListWindow == GetID && m_strTempPlayListDirectory.IndexOf(currentFolder) >= 0 && g_Player.Playing && playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_VIDEO_TEMP) || (GetID == (int)Window.WINDOW_VIDEO_PLAYLIST && playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_VIDEO && g_Player.Playing)) { iCurrentSong = playlistPlayer.CurrentSong; if (iCurrentSong >= 0) { playlist = playlistPlayer.GetPlaylist(playlistPlayer.CurrentPlaylistType); if (iCurrentSong < playlist.Count) { PlayListItem item = playlist[iCurrentSong]; strFileName = item.FileName; } } } SetIMDBThumbs(itemlist); string strSelectedItem = m_history.Get(currentFolder); int iItem = 0; foreach (GUIListItem item in itemlist) { facadeLayout.Add(item); // synchronize playlist with current directory if (strFileName.Length > 0 && item.Path == strFileName) { item.Selected = true; } } for (int i = 0; i < facadeLayout.Count; ++i) { GUIListItem item = facadeLayout[i]; if (item.Label == strSelectedItem) { GUIControl.SelectItemControl(GetID, facadeLayout.GetID, iItem); break; } iItem++; } int iTotalItems = itemlist.Count; if (itemlist.Count > 0) { GUIListItem rootItem = (GUIListItem)itemlist[0]; if (rootItem.Label == "..") { iTotalItems--; } } //set object count label GUIPropertyManager.SetProperty("#itemcount", Util.Utils.GetObjectCountLabel(iTotalItems)); if (currentSelectedItem >= 0) { GUIControl.SelectItemControl(GetID, facadeLayout.GetID, currentSelectedItem); } else if (itemlist.Count > 0) { GUIControl.SelectItemControl(GetID, facadeLayout.GetID, 0); } else { IMDBMovie movie = new IMDBMovie(); movie.SetProperties(false, string.Empty); } UpdateButtonStates(); GUIWaitCursor.Hide(); } catch (Exception ex) { GUIWaitCursor.Hide(); Log.Error("GUIVideoPlaylist: An error occured while loading the directory - {0}", ex.Message); } } }
/// <summary> /// Loads a new Directory /// </summary> /// <param name="newFolderName">Name of the folder</param> private void LoadDirectory(string newFolderName) { _disableSorting = false; String currentFolder = newFolderName; GUIControl.ClearControl(GetID, facadeView.GetID); List <GUIListItem> itemlist = _mDirectory.GetDirectoryExt(currentFolder); List <GUIListItem> itemfiltered = new List <GUIListItem>(); for (int x = 0; x < itemlist.Count; ++x) { bool addItem = true; GUIListItem item1 = itemlist[x]; for (int y = 0; y < itemlist.Count; ++y) { GUIListItem item2 = itemlist[y]; if (x != y) { if (!item1.IsFolder || !item2.IsFolder) { if (!item1.IsRemote && !item2.IsRemote) { if (Utils.ShouldStack(item1.Path, item2.Path)) { if (String.Compare(item1.Path, item2.Path, true) > 0) { addItem = false; // Update to reflect the stacked size item1.FileInfo.Length += item2.FileInfo.Length; } } } } } } if (addItem) { string label = item1.Label; Utils.RemoveStackEndings(ref label); item1.Label = label; if (_treatPlaylistsAsFolders && PlayListFactory.IsPlayList(item1.Path)) { item1.IsFolder = true; Utils.SetDefaultIcons(item1); } itemfiltered.Add(item1); } } itemlist = itemfiltered; if (_treatPlaylistsAsFolders && PlayListFactory.IsPlayList(newFolderName)) { IPlayListIO loader = PlayListFactory.CreateIO(newFolderName); PlayList playlist = new PlayList(); _disableSorting = true; String basePath = Path.GetDirectoryName(Path.GetFullPath(newFolderName)); if (loader.Load(playlist, newFolderName)) { foreach (PlayListItem plItem in playlist) { GUIListItem item = new GUIListItem { Path = plItem.FileName }; if (plItem.FileName.StartsWith(basePath)) { String mainPath = plItem.FileName.Remove(0, basePath.Length + 1); if (mainPath.StartsWith("cue://") || mainPath.StartsWith("cue://") || mainPath.StartsWith("http://") || mainPath.StartsWith("ftp://") || mainPath.StartsWith("http_proxy://") || mainPath.StartsWith("mms://") || mainPath.StartsWith("mmst://") || mainPath.StartsWith("mpst://") || mainPath.StartsWith("rtsp://") || mainPath.StartsWith("rtp://") || mainPath.StartsWith("sdp://") || mainPath.StartsWith("udp://") || mainPath.StartsWith("unsv://")) { item.Path = mainPath; } } Log.Info("MPlayer GUI: " + item.Path); item.Label = plItem.Description; item.IsFolder = false; Utils.SetDefaultIcons(item); itemlist.Add(item); } } } foreach (GUIListItem item in itemlist) { facadeView.Add(item); } OnSort(); }
private IMDBActor.IMDBActorMovie ListItemMovieInfo(GUIListItem item) { IMDBActor.IMDBActorMovie movie = item.AlbumInfoTag as IMDBActor.IMDBActorMovie; return(movie); }
protected override void OnShowContextMenu() { if (GUIBackgroundTask.Instance.IsBusy) { return; } var selectedItem = this.Facade.SelectedListItem; if (selectedItem == null) { return; } var selectedComment = selectedItem.TVTag as TraktComment; if (selectedComment == null) { return; } var dlg = (IDialogbox)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg == null) { return; } dlg.Reset(); dlg.SetHeading(GUIUtils.PluginName()); GUIListItem listItem = null; // Like or Unlike Comment if (selectedComment.User.Username != TraktSettings.Username) { // Like if (!selectedComment.IsLiked()) { listItem = new GUIListItem(Translation.Like); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Like; } else { // UnLike listItem = new GUIListItem(Translation.UnLike); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.UnLike; } } if (ShoutType == ShoutTypeEnum.episode && (selectedComment.ParentId == null || selectedComment.ParentId == 0)) { listItem = new GUIListItem(Translation.NextEpisode); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.NextEpisode; if (EpisodeInfo.EpisodeIdx > 1) { listItem = new GUIListItem(Translation.PreviousEpisode); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.PrevEpisode; } } listItem = new GUIListItem(TraktSettings.HideSpoilersOnShouts ? Translation.ShowSpoilers : Translation.HideSpoilers); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Spoilers; // userprofile - only load for unprotected users if (!selectedComment.User.IsPrivate) { listItem = new GUIListItem(Translation.UserProfile); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.UserProfile; } // Show Context Menu dlg.DoModal(GUIWindowManager.ActiveWindow); if (dlg.SelectedId < 0) { return; } switch (dlg.SelectedId) { case (int)ContextMenuItem.Like: GUICommon.LikeComment(selectedComment); selectedComment.Likes++; PublishCommentSkinProperties(selectedComment); break; case (int)ContextMenuItem.UnLike: GUICommon.UnLikeComment(selectedComment); if (selectedComment.Likes > 0) { selectedComment.Likes--; PublishCommentSkinProperties(selectedComment); } break; case ((int)ContextMenuItem.Spoilers): TraktSettings.HideSpoilersOnShouts = !TraktSettings.HideSpoilersOnShouts; if (hideSpoilersButton != null) { hideSpoilersButton.Selected = TraktSettings.HideSpoilersOnShouts; } PublishCommentSkinProperties(selectedComment); break; case ((int)ContextMenuItem.NextEpisode): GetNextEpisodeComments(); break; case ((int)ContextMenuItem.PrevEpisode): GetPrevEpisodeComments(); break; case ((int)ContextMenuItem.UserProfile): GUIUserProfile.CurrentUser = selectedComment.User.Username; GUIWindowManager.ActivateWindow((int)TraktGUIWindows.UserProfile); break; default: break; } base.OnShowContextMenu(); }
protected override void OnShowContextMenu() { if (GUIBackgroundTask.Instance.IsBusy) { return; } GUIListItem selectedItem = this.Facade.SelectedListItem; if (selectedItem == null) { return; } TraktMovie selectedMovie = (TraktMovie)selectedItem.TVTag; IDialogbox dlg = (IDialogbox)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg == null) { return; } dlg.Reset(); dlg.SetHeading(GUIUtils.PluginName()); GUIListItem listItem = null; // Hide/Show Watched items listItem = new GUIListItem(HideWatched ? Translation.ShowWatched : Translation.HideWatched); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.HideShowWatched; // Mark As Watched if (!selectedMovie.Watched) { listItem = new GUIListItem(Translation.MarkAsWatched); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.MarkAsWatched; } // Mark As UnWatched if (selectedMovie.Watched) { listItem = new GUIListItem(Translation.MarkAsUnWatched); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.MarkAsUnWatched; } // Add/Remove Watch List if (!selectedMovie.InWatchList) { listItem = new GUIListItem(Translation.AddToWatchList); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.AddToWatchList; } else { listItem = new GUIListItem(Translation.RemoveFromWatchList); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.RemoveFromWatchList; } // Add to Custom list listItem = new GUIListItem(Translation.AddToList + "..."); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.AddToList; // Add to Library // Don't allow if it will be removed again on next sync // movie could be part of a DVD collection if (!selectedMovie.InCollection && !TraktSettings.KeepTraktLibraryClean) { listItem = new GUIListItem(Translation.AddToLibrary); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.AddToLibrary; } if (selectedMovie.InCollection) { listItem = new GUIListItem(Translation.RemoveFromLibrary); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.RemoveFromLibrary; } // Related Movies listItem = new GUIListItem(Translation.RelatedMovies + "..."); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Related; // Rate Movie listItem = new GUIListItem(Translation.RateMovie); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Rate; // Shouts listItem = new GUIListItem(Translation.Shouts + "..."); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Shouts; // Trailers if (TraktHelper.IsOnlineVideosAvailableAndEnabled) { listItem = new GUIListItem(Translation.Trailers); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Trailers; } // Change Layout listItem = new GUIListItem(Translation.ChangeLayout); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.ChangeLayout; if (!selectedMovie.InCollection && TraktHelper.IsMpNZBAvailableAndEnabled) { // Search for movie with mpNZB listItem = new GUIListItem(Translation.SearchWithMpNZB); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.SearchWithMpNZB; } if (!selectedMovie.InCollection && TraktHelper.IsMyTorrentsAvailableAndEnabled) { // Search for movie with MyTorrents listItem = new GUIListItem(Translation.SearchTorrent); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.SearchTorrent; } // Show Context Menu dlg.DoModal(GUIWindowManager.ActiveWindow); if (dlg.SelectedId < 0) { return; } switch (dlg.SelectedId) { case ((int)ContextMenuItem.HideShowWatched): HideWatched = !HideWatched; if (hideWatchedButton != null) { hideWatchedButton.Selected = HideWatched; } dictRelatedMovies.Remove(relatedMovie.Slug); LoadRelatedMovies(); break; case ((int)ContextMenuItem.MarkAsWatched): TraktHelper.MarkMovieAsWatched(selectedMovie); if (!HideWatched) { if (selectedMovie.Plays == 0) { selectedMovie.Plays = 1; } selectedMovie.Watched = true; selectedItem.IsPlayed = true; OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); } else { dictRelatedMovies.Remove(relatedMovie.Slug); LoadRelatedMovies(); } break; case ((int)ContextMenuItem.MarkAsUnWatched): TraktHelper.MarkMovieAsUnWatched(selectedMovie); selectedMovie.Watched = false; selectedItem.IsPlayed = false; OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.AddToWatchList): TraktHelper.AddMovieToWatchList(selectedMovie, true); selectedMovie.InWatchList = true; OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.RemoveFromWatchList): TraktHelper.RemoveMovieFromWatchList(selectedMovie, true); selectedMovie.InWatchList = false; OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.AddToList): TraktHelper.AddRemoveMovieInUserList(selectedMovie.Title, selectedMovie.Year, selectedMovie.IMDBID, false); break; case ((int)ContextMenuItem.AddToLibrary): TraktHelper.AddMovieToLibrary(selectedMovie); selectedMovie.InCollection = true; OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.RemoveFromLibrary): TraktHelper.RemoveMovieFromLibrary(selectedMovie); selectedMovie.InCollection = false; OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.Related): RelatedMovie relMovie = new RelatedMovie { Title = selectedMovie.Title, IMDbId = selectedMovie.IMDBID, Year = Convert.ToInt32(selectedMovie.Year) }; relatedMovie = relMovie; GUIUtils.SetProperty("#Trakt.Related.Movie", relMovie.Title); LoadRelatedMovies(); RelationChanged = true; break; case ((int)ContextMenuItem.Rate): GUICommon.RateMovie(selectedMovie); OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.Shouts): TraktHelper.ShowMovieShouts(selectedMovie); break; case ((int)ContextMenuItem.Trailers): GUICommon.ShowMovieTrailersMenu(selectedMovie); break; case ((int)ContextMenuItem.ChangeLayout): CurrentLayout = GUICommon.ShowLayoutMenu(CurrentLayout, PreviousSelectedIndex); break; case ((int)ContextMenuItem.SearchWithMpNZB): string loadingParam = string.Format("search:{0}", selectedMovie.Title); GUIWindowManager.ActivateWindow((int)ExternalPluginWindows.MpNZB, loadingParam); break; case ((int)ContextMenuItem.SearchTorrent): string loadPar = selectedMovie.Title; GUIWindowManager.ActivateWindow((int)ExternalPluginWindows.MyTorrents, loadPar); break; default: break; } base.OnShowContextMenu(); }
internal void MyContextMenu() { try { GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg == null) { return; } dlg.Reset(); dlg.SetHeading(924); //Add Details Menu Item //Play Menu Item GUIListItem pItem = new GUIListItem(Translation.Play); dlg.Add(pItem); pItem.ItemId = 1; pItem = new GUIListItem(Translation.MovieDetails); dlg.Add(pItem); pItem.ItemId = 2; //Add Watched/Unwatched Filter Menu Item if (CurrentFacade.UnWatched) { pItem = new GUIListItem(Translation.ShowUnwatchedMovies); dlg.Add(pItem); pItem.ItemId = 3; } else { pItem = new GUIListItem(Translation.ShowAllMovies); dlg.Add(pItem); pItem.ItemId = 3; } //Add Latests/Watched/Rated Menu Item pItem = new GUIListItem("[^] " + CurrentFacade.Title); dlg.Add(pItem); pItem.ItemId = 4; pItem = new GUIListItem(); pItem.Label = Translation.Update; pItem.ItemId = 5; dlg.Add(pItem); //Show Dialog dlg.DoModal(Utils.ActiveWindow); if (dlg.SelectedLabel == -1) { return; } switch (dlg.SelectedId) { case 1: { PlayMovie(GUIWindowManager.GetWindow(Utils.ActiveWindow)); break; } case 2: { ShowInfo(); break; } case 3: { CurrentFacade.UnWatched = !CurrentFacade.UnWatched; MyVideosUpdateLatest(); break; } case 4: { IDialogbox ldlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (ldlg == null) { return; } ldlg.Reset(); ldlg.SetHeading(924); //Add Types Menu Items pItem = new GUIListItem((CurrentFacade.Type == LatestsFacadeType.Latests ? "[x] " : string.Empty) + Translation.LabelLatestAdded); ldlg.Add(pItem); pItem.ItemId = 1; pItem = new GUIListItem((CurrentFacade.Type == LatestsFacadeType.Watched ? "[x] " : string.Empty) + Translation.LabelLatestWatched); ldlg.Add(pItem); pItem.ItemId = 2; pItem = new GUIListItem((CurrentFacade.Type == LatestsFacadeType.Rated ? "[x] " : string.Empty) + Translation.LabelHighestRated); ldlg.Add(pItem); pItem.ItemId = 3; //Show Dialog ldlg.DoModal(Utils.ActiveWindow); if (ldlg.SelectedLabel == -1) { return; } switch (ldlg.SelectedId - 1) { case 0: CurrentFacade.Type = LatestsFacadeType.Latests; break; case 1: CurrentFacade.Type = LatestsFacadeType.Watched; break; case 2: CurrentFacade.Type = LatestsFacadeType.Rated; break; } MyVideosUpdateLatest(); break; } case 5: { MyVideosUpdateLatest(); break; } } } catch (Exception ex) { logger.Error("MyContextMenu: " + ex.ToString()); } }
private void AddToFilmstrip(Latest latests, int x) { try { //Add to filmstrip IMDBMovie movie = new IMDBMovie(); movie.Title = latests.Title; movie.File = string.Empty; try { movie.RunTime = Int32.Parse(latests.Runtime); } catch { movie.RunTime = 0; } try { movie.Year = Int32.Parse(latests.Year); } catch { movie.Year = 0; } movie.DVDLabel = latests.Fanart; try { movie.Rating = Int32.Parse(latests.RoundedRating); } catch { movie.Rating = 0; } movie.Watched = 0; Utils.LoadImage(latests.Thumb, ref imagesThumbs); GUIListItem item = new GUIListItem(); item.ItemId = x; item.IconImage = latests.Thumb; item.IconImageBig = latests.Thumb; item.ThumbnailImage = latests.Thumb; item.Label = movie.Title; item.Label2 = latests.Genre; item.Label3 = latests.DateAdded; item.IsFolder = false; item.Path = movie.File; item.Duration = movie.RunTime; // *60; item.AlbumInfoTag = movie; item.Year = movie.Year; item.DVDLabel = movie.DVDLabel; item.Rating = movie.Rating; item.Path = latests.Summary; item.IsPlayed = movie.Watched > 0 ? true : false; item.OnItemSelected += new GUIListItem.ItemSelectedHandler(item_OnItemSelected); facadeCollection.Add(item); } catch (Exception ex) { logger.Error("AddToFilmstrip: " + ex.ToString()); } }
/// <summary> /// Fill the list with channels /// </summary> private void FillChannelList() { _channelsListControl.Clear(); int i = 0; int SelectedID = 0; string ChannelLogo = string.Empty; if (_currentGroup != null) { _currentAndNextPrograms = Proxies.SchedulerService.GetCurrentAndNextForGroup(_currentGroup.ChannelGroupId, true, PluginMain.Navigator.LiveStream).Result; } else { _currentAndNextPrograms = new List <CurrentAndNextProgram>(); } Channel currentChannel = PluginMain.Navigator.CurrentChannel; Channel prevChannel = PluginMain.Navigator.GetPreviousChannel(this.ChannelType); foreach (CurrentAndNextProgram currentAndNext in _currentAndNextPrograms) { i++; sb.Length = 0; GUIListItem item = new GUIListItem(""); item.TVTag = currentAndNext.Channel; sb.Append(currentAndNext.Channel.DisplayName); ChannelLogo = Utility.GetLogoImage(currentAndNext.Channel); if (!string.IsNullOrEmpty(ChannelLogo)) { item.IconImageBig = ChannelLogo; item.IconImage = ChannelLogo; } else { item.IconImageBig = string.Empty; item.IconImage = string.Empty; } ActiveRecording activeRecording; if (PluginMain.IsChannelRecording(currentAndNext.Channel.ChannelId, out activeRecording)) { if (_showStateIcons) { item.PinImage = RecordingIcon; } else { sb.Append(" "); sb.Append(recordingText); } item.IsPlayed = (currentAndNext.LiveState == ChannelLiveState.NotTunable || currentAndNext.LiveState == ChannelLiveState.NoFreeCard); } else { switch (currentAndNext.LiveState) { case ChannelLiveState.NotTunable: case ChannelLiveState.NoFreeCard: item.IsPlayed = true; if (_showStateIcons) { item.PinImage = UnavailableIcon; } else { sb.Append(" "); sb.Append(unavailableText); } break; default: item.IsPlayed = false; if (_showStateIcons) { item.PinImage = AvailableIcon; } break; } } if (currentChannel != null) { if (currentChannel.ChannelId == currentAndNext.Channel.ChannelId) { item.IsRemote = true; SelectedID = _channelsListControl.Count; if (_showStateIcons && item.PinImage != RecordingIcon && item.PinImage != UnavailableIcon) { item.PinImage = TimeshiftingIcon; } else if (!_showStateIcons) { sb.Append(" "); sb.Append(timeshiftingText); } } } else if (prevChannel != null && prevChannel.ChannelId == currentAndNext.Channel.ChannelId) { item.IsRemote = true; SelectedID = _channelsListControl.Count; } sbTmp.Length = 0; bool hasNow = currentAndNext.Current != null; if (hasNow) { sbTmp.Append(currentAndNext.Current.CreateProgramTitle()); } else { sbTmp.Append(noDataAvailableText); } item.Label2 = sbTmp.ToString(); sbTmp.Insert(0, nowText); item.Label3 = sbTmp.ToString(); sbTmp.Length = 0; if (_showChannelNumber) { sb.Append(" - "); if (!_byIndex) { if (currentAndNext.Channel.LogicalChannelNumber.HasValue) { sb.Append(currentAndNext.Channel.LogicalChannelNumber.Value.ToString()); } } else { sb.Append(i); } } if (hasNow) { sb.Append(" - "); sb.Append(currentAndNext.CurrentPercentageComplete); sb.Append("%"); } if (currentAndNext.Next != null) { sbTmp.Append(/*currentAndNext.Next.StartTime.ToShortTimeString() + " " + */ currentAndNext.Next.CreateProgramTitle()); } else { sbTmp.Append(noDataAvailableText); } item.Label2 = sb.ToString(); sbTmp.Insert(0, nextText); item.Label = sbTmp.ToString(); _channelsListControl.Add(item); } _channelsListControl.SelectedListItemIndex = SelectedID; Log.Debug("miniguide: state check + filling channel list completed"); if (_channelsListControl.GetID == 37) { GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_SETFOCUS, GetID, 0, 37, 0, 0, null); OnMessage(msg); } sb.Length = 0; sbTmp.Length = 0; }
/// <summary> /// Fill the list with channels /// </summary> public void FillChannelList() { List <Channel> tvChannelList = GetChannelListByGroup(); benchClock = Stopwatch.StartNew(); DateTime nextEPGupdate = GetNextEpgUpdate(); Dictionary <int, NowAndNext> listNowNext = GetNowAndNext(tvChannelList, nextEPGupdate); benchClock.Stop(); Log.Debug("TvMiniGuide: FillChannelList retrieved {0} programs for {1} channels in {2} ms", listNowNext.Count, tvChannelList.Count, benchClock.ElapsedMilliseconds.ToString()); GUIListItem item = null; string ChannelLogo = ""; //List<int> RecChannels = null; //List<int> TSChannels = null; int SelectedID = 0; int channelID = 0; bool DisplayStatusInfo = true; Dictionary <int, ChannelState> tvChannelStatesList = null; if (TVHome.ShowChannelStateIcons()) { benchClock.Reset(); benchClock.Start(); if (TVHome.Navigator.CurrentGroup.GroupName.Equals(TvConstants.TvGroupNames.AllChannels) || (!g_Player.IsTV && !g_Player.Playing)) { //we have no way of using the cached channelstates on the server in the following situations. // 1) when the "all channels" group is selected - too many channels. // 2) when user is not timeshifting - no user object on the server. User currentUser = new User(); tvChannelStatesList = TVHome.TvServer.GetAllChannelStatesForGroup(TVHome.Navigator.CurrentGroup.IdGroup, currentUser); } else { // use the more speedy approach // ask the server of the cached list of channel states corresponding to the user. tvChannelStatesList = TVHome.TvServer.GetAllChannelStatesCached(TVHome.Card.User); if (tvChannelStatesList == null) { //slow approach. tvChannelStatesList = TVHome.TvServer.GetAllChannelStatesForGroup(TVHome.Navigator.CurrentGroup.IdGroup, TVHome.Card.User); } } benchClock.Stop(); if (tvChannelStatesList != null) { Log.Debug("TvMiniGuide: FillChannelList - {0} channel states for group retrieved in {1} ms", Convert.ToString(tvChannelStatesList.Count), benchClock.ElapsedMilliseconds.ToString()); } } for (int i = 0; i < tvChannelList.Count; i++) { Channel CurrentChan = tvChannelList[i]; if (CurrentChan.VisibleInGuide) { ChannelState CurrentChanState = ChannelState.tunable; channelID = CurrentChan.IdChannel; if (TVHome.ShowChannelStateIcons()) { if (!tvChannelStatesList.TryGetValue(channelID, out CurrentChanState)) { CurrentChanState = ChannelState.tunable; } } //StringBuilder sb = new StringBuilder(); sb.Length = 0; item = new GUIListItem(""); // store here as it is not needed right now - please beat me later.. item.TVTag = CurrentChan; sb.Append(CurrentChan.DisplayName); ChannelLogo = Utils.GetCoverArt(Thumbs.TVChannel, CurrentChan.DisplayName); // if we are watching this channel mark it if (TVHome.Navigator != null && TVHome.Navigator.Channel != null && TVHome.Navigator.Channel.IdChannel == channelID) { item.IsRemote = true; SelectedID = lstChannels.Count; } if (!string.IsNullOrEmpty(ChannelLogo)) { item.IconImageBig = ChannelLogo; item.IconImage = ChannelLogo; } else { item.IconImageBig = string.Empty; item.IconImage = string.Empty; } if (DisplayStatusInfo) { bool showChannelStateIcons = (TVHome.ShowChannelStateIcons() && lstChannelsWithStateIcons != null); switch (CurrentChanState) { case ChannelState.nottunable: item.IsPlayed = true; if (showChannelStateIcons) { item.PinImage = Thumbs.TvIsUnavailableIcon; } else { sb.Append(" "); sb.Append(local1056); } break; case ChannelState.timeshifting: if (showChannelStateIcons) { item.PinImage = Thumbs.TvIsTimeshiftingIcon; } else { sb.Append(" "); sb.Append(local1055); } break; case ChannelState.recording: if (showChannelStateIcons) { item.PinImage = Thumbs.TvIsRecordingIcon; } else { sb.Append(" "); sb.Append(local1054); } break; default: item.IsPlayed = false; if (showChannelStateIcons) { item.PinImage = Thumbs.TvIsAvailableIcon; } break; } } //StringBuilder sbTmp = new StringBuilder(); sbTmp.Length = 0; NowAndNext currentNowAndNext = null; bool hasNowNext = listNowNext.TryGetValue(channelID, out currentNowAndNext); if (hasNowNext) { if (!string.IsNullOrEmpty(currentNowAndNext.TitleNow)) { sbTmp.Append(currentNowAndNext.NowStartTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat)); sbTmp.Append(": "); TVUtil.TitleDisplay(sbTmp, currentNowAndNext.TitleNow, currentNowAndNext.EpisodeName, currentNowAndNext.SeriesNum, currentNowAndNext.EpisodeNum, currentNowAndNext.EpisodePart); } else { sbTmp.Append(local736); } } else { sbTmp.Append(local736); } item.Label2 = sbTmp.ToString(); sbTmp.Insert(0, string.Empty); item.Label3 = sbTmp.ToString(); sbTmp.Length = 0; if (_showChannelNumber == true) { sb.Append(" - "); if (!_byIndex) { sb.Append(tvChannelList[i].ChannelNumber); } else { sb.Append(i + 1); } } if (hasNowNext) { // if the "Now" DB entry is in the future we set MinValue intentionally to avoid wrong percentage calculations DateTime startTime = currentNowAndNext.NowStartTime; if (startTime != SqlDateTime.MinValue.Value) { DateTime endTime = currentNowAndNext.NowEndTime; int percent = (int)CalculateProgress(startTime, endTime); sb.Append(" - "); sb.Append( percent.ToString()); sb.Append("%"); item.HasProgressBar = true; item.ProgressBarPercentage = percent; if (endTime < nextEPGupdate || nextEPGupdate == DateTime.MinValue) { nextEPGupdate = endTime; SetNextEpgUpdate(endTime); } } } if (hasNowNext && listNowNext[channelID].IdProgramNext != -1) { sbTmp.Append(currentNowAndNext.NextStartTime.ToString("t", CultureInfo.CurrentCulture.DateTimeFormat)); sbTmp.Append(": "); TVUtil.TitleDisplay(sbTmp, currentNowAndNext.TitleNext, currentNowAndNext.EpisodeNameNext, currentNowAndNext.SeriesNumNext, currentNowAndNext.EpisodeNumNext, currentNowAndNext.EpisodePartNext); } else { sbTmp.Append(local736); } item.Label2 = sb.ToString(); sbTmp.Insert(0, string.Empty); item.Label = sbTmp.ToString(); lstChannels.Add(item); } } benchClock.Stop(); Log.Debug("TvMiniGuide: State check + filling completed after {0} ms", benchClock.ElapsedMilliseconds.ToString()); lstChannels.SelectedListItemIndex = SelectedID; if (lstChannels.GetID == 37) { GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_SETFOCUS, GetID, 0, 37, 0, 0, null); OnMessage(msg); } sb.Length = 0; sbTmp.Length = 0; }
protected override void OnShowContextMenu() { try { GUIListItem currentitem = this.m_Facade.SelectedListItem; if (currentitem == null || !(currentitem.TVTag is PosterContainer)) { return; } PosterContainer selectedPoster = currentitem.TVTag as PosterContainer; IDialogbox dlg = (IDialogbox)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg == null) { return; } dlg.Reset(); dlg.SetHeading("Poster"); GUIListItem pItem; if (!selectedPoster.IsImageEnabled) { pItem = new GUIListItem("Enable"); dlg.Add(pItem); } else { pItem = new GUIListItem("Disable"); dlg.Add(pItem); } if (selectedPoster.IsImageEnabled) { if (selectedPoster.IsImageDefault) { pItem = new GUIListItem("Remove as Default"); dlg.Add(pItem); } else { pItem = new GUIListItem("Set as Default"); dlg.Add(pItem); } } // lets show it dlg.DoModal(GUIWindowManager.ActiveWindow); if (dlg.SelectedId == 1) // enabled/disable { bool endis = !selectedPoster.IsImageEnabled; JMMServerHelper.EnableDisablePoster(endis, selectedPoster, AnimeID); ShowPosters(); return; } if (dlg.SelectedId == 2) { bool isdef = !selectedPoster.IsImageDefault; JMMServerHelper.SetDefaultPoster(isdef, selectedPoster, AnimeID); ShowPosters(); return; } } catch (Exception ex) { BaseConfig.MyAnimeLog.Write("Exception in Poster Chooser Context Menu: " + ex.Message + ex.StackTrace); return; } }
private void OnAddPath() { GUIDialogSelect dlg = (GUIDialogSelect)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_SELECT); if (dlg == null) { return; } dlg.Reset(); dlg.SetHeading(300049); // Folder browser dlg.EnableButton(true); dlg.SetButtonLabel(424); // manual // Get drive list if (_folderLvl == 0) { ClearFolders(); GetDrives(); } // Add list to dlg menu foreach (GUIListItem drive in _folders) { dlg.Add(drive.Label); if (drive.IsPlayed) { dlg.SelectedLabel = _folders.IndexOf(drive); } } // Show dialog menu dlg.MarkSelectedItemOnButton = true; dlg.DoModal(GetID); // Folder is selected - return if (dlg.IsButtonPressed) { GUIListItem item = (GUIListItem)_folders[dlg.SelectedItemLabelIndexNoFocus]; _folderPath = item.Label2; // Reset browsing history ClearFolders(); OnAddEditFolder(); return; } //ESC pressed, go back folder or if it's lvl=0 (Drives) return if (dlg.SelectedLabel == -1) { if (_folderLvl > 0) { GetFolderHistory(); OnAddPath(); return; } else { ClearFolders(); _userNetFolder = GUILocalizeStrings.Get(145); // Network OnAddEditFolder(); return; } } // Browse folders further _selectedLabelIndex = dlg.SelectedLabel; GUIListItem selectedItem = (GUIListItem)_folders[dlg.SelectedItemLabelIndexNoFocus]; GetFolders(selectedItem); OnAddPath(); }
private void OnCommentSelected(GUIListItem item, GUIControl parent) { PublishCommentSkinProperties(item.TVTag as TraktComment); }
protected override void OnShowContextMenu() { var selectedItem = this.Facade.SelectedListItem as GUIMovieListItem; if (selectedItem == null) { return; } var selectedMovie = selectedItem.TVTag as TraktMovieSummary; if (selectedMovie == null) { return; } var dlg = (IDialogbox)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg == null) { return; } dlg.Reset(); dlg.SetHeading(GUIUtils.PluginName()); GUIListItem listItem = null; if (!selectedMovie.IsWatchlisted()) { listItem = new GUIListItem(Translation.AddToWatchList); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.AddToWatchList; } else { listItem = new GUIListItem(Translation.RemoveFromWatchList); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.RemoveFromWatchList; } // Add to Custom List listItem = new GUIListItem(Translation.AddToList); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.AddToList; // Mark As Watched if (!selectedMovie.IsWatched()) { listItem = new GUIListItem(Translation.MarkAsWatched); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.MarkAsWatched; } // Mark As UnWatched if (selectedMovie.IsWatched()) { listItem = new GUIListItem(Translation.MarkAsUnWatched); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.MarkAsUnWatched; } // Add to Collection if (!selectedMovie.IsCollected() && !TraktSettings.KeepTraktLibraryClean) { listItem = new GUIListItem(Translation.AddToLibrary); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.AddToLibrary; } if (selectedMovie.IsCollected()) { listItem = new GUIListItem(Translation.RemoveFromLibrary); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.RemoveFromLibrary; } // Related Movies listItem = new GUIListItem(Translation.RelatedMovies); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Related; // Rate Movie listItem = new GUIListItem(Translation.RateMovie); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Rate; // Shouts listItem = new GUIListItem(Translation.Comments); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Shouts; // Cast and Crew listItem = new GUIListItem(Translation.Cast); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Cast; listItem = new GUIListItem(Translation.Crew); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Crew; if (TraktHelper.IsTrailersAvailableAndEnabled) { // Trailers listItem = new GUIListItem(Translation.Trailers); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Trailers; } // Change Layout listItem = new GUIListItem(Translation.ChangeLayout); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.ChangeLayout; if (!selectedMovie.IsCollected() && TraktHelper.IsMpNZBAvailableAndEnabled) { // Search for movie with mpNZB listItem = new GUIListItem(Translation.SearchWithMpNZB); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.SearchWithMpNZB; } if (!selectedMovie.IsCollected() && TraktHelper.IsMyTorrentsAvailableAndEnabled) { // Search for movie with MyTorrents listItem = new GUIListItem(Translation.SearchTorrent); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.SearchTorrent; } // Show Context Menu dlg.DoModal(GUIWindowManager.ActiveWindow); if (dlg.SelectedId < 0) { return; } switch (dlg.SelectedId) { case ((int)ContextMenuItem.MarkAsWatched): TraktHelper.AddMovieToWatchHistory(selectedMovie); selectedItem.IsPlayed = true; OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.MarkAsUnWatched): TraktHelper.RemoveMovieFromWatchHistory(selectedMovie); selectedItem.IsPlayed = false; OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.AddToWatchList): TraktHelper.AddMovieToWatchList(selectedMovie, true); OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.RemoveFromWatchList): TraktHelper.RemoveMovieFromWatchList(selectedMovie, true); OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.AddToList): TraktHelper.AddRemoveMovieInUserList(selectedMovie, false); break; case ((int)ContextMenuItem.Trailers): PreviousUser = CurrentUser; GUICommon.ShowMovieTrailersMenu(selectedMovie); break; case ((int)ContextMenuItem.AddToLibrary): TraktHelper.AddMovieToCollection(selectedMovie); OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.RemoveFromLibrary): TraktHelper.RemoveMovieFromCollection(selectedMovie); OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.Related): TraktHelper.ShowRelatedMovies(selectedMovie); break; case ((int)ContextMenuItem.Rate): GUICommon.RateMovie(selectedMovie); OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.Shouts): TraktHelper.ShowMovieShouts(selectedMovie); break; case ((int)ContextMenuItem.Cast): GUICreditsMovie.Movie = selectedMovie; GUICreditsMovie.Type = GUICreditsMovie.CreditType.Cast; GUICreditsMovie.Fanart = TmdbCache.GetMovieBackdropFilename(selectedItem.Images.MovieImages); GUIWindowManager.ActivateWindow((int)TraktGUIWindows.CreditsMovie); break; case ((int)ContextMenuItem.Crew): GUICreditsMovie.Movie = selectedMovie; GUICreditsMovie.Type = GUICreditsMovie.CreditType.Crew; GUICreditsMovie.Fanart = TmdbCache.GetMovieBackdropFilename(selectedItem.Images.MovieImages); GUIWindowManager.ActivateWindow((int)TraktGUIWindows.CreditsMovie); break; case ((int)ContextMenuItem.ChangeLayout): CurrentLayout = GUICommon.ShowLayoutMenu(CurrentLayout, PreviousSelectedIndex); break; case ((int)ContextMenuItem.SearchWithMpNZB): string loadingParam = string.Format("search:{0}", selectedMovie.Title); GUIWindowManager.ActivateWindow((int)ExternalPluginWindows.MpNZB, loadingParam); break; case ((int)ContextMenuItem.SearchTorrent): string loadPar = selectedMovie.Title; GUIWindowManager.ActivateWindow((int)ExternalPluginWindows.MyTorrents, loadPar); break; default: break; } base.OnShowContextMenu(); }
internal void MyContextMenu() { try { GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg == null) { return; } dlg.Reset(); dlg.SetHeading(924); //Play Menu Item GUIListItem pItem = new GUIListItem(); pItem.Label = Translation.View; pItem.ItemId = 1; dlg.Add(pItem); pItem = new GUIListItem(); pItem.Label = GUILocalizeStrings.Get(940); pItem.ItemId = 2; dlg.Add(pItem); pItem = new GUIListItem(); pItem.Label = Translation.Update; pItem.ItemId = 3; dlg.Add(pItem); //Show Dialog dlg.DoModal(Utils.ActiveWindow); if (dlg.SelectedLabel < 0) { return; } switch (dlg.SelectedId) { case 1: { PlayPictures(GUIWindowManager.GetWindow(Utils.ActiveWindow)); break; } case 2: { InfoPictures(); break; } case 3: { GetLatestPictures(); break; } } } catch (Exception ex) { logger.Error("MyContextMenu: " + ex.ToString()); } }
/// <summary> /// Handles the click in the facadeview /// </summary> private void OnClick() { GUIListItem item = facadeView.SelectedListItem; if (item == null) { return; } bool isFolderAMovie = false; string path = item.Path; if (item.IsFolder && !item.IsRemote) { // Check if folder is actually a DVD. If so don't browse this folder, but play the DVD! if ((File.Exists(path + @"\VIDEO_TS\VIDEO_TS.IFO")) && (item.Label != "..")) { isFolderAMovie = true; if (_useDvdnav) { path = "dvdnav://" + path; } else { path = "dvd://" + path; } //_path = item.Path + @"\VIDEO_TS\VIDEO_TS.IFO"; } else if ((File.Exists(path + @"\MPEGAV\AVSEQ01.DAT")) && (item.Label != "..")) { isFolderAMovie = true; path = "vcd://" + String.Format(@"{0}\MPEGAV\AVSEQ01.DAT", item.Path); } else if ((File.Exists(path + @"\MPEG2\AVSEQ01.MPG")) && (item.Label != "..")) { isFolderAMovie = true; path = "svcd://" + String.Format(@"{0}\MPEG2\AVSEQ01.MPG", item.Path); } else if ((File.Exists(path + @"\MPEG2\AVSEQ01.MPEG")) && (item.Label != "..")) { isFolderAMovie = true; path = "svcd://" + String.Format(@"{0}\MPEG2\AVSEQ01.MPEG", item.Path); } } if ((item.IsFolder) && (!isFolderAMovie)) { //currentSelectedItem = -1; _virtualPath = path; LoadDirectory(path); } else { if (PlayListFactory.IsPlayList(path)) { LoadPlayList(path); return; } string movieFileName = _mDirectory.GetLocalFilename(path) + ".mplayer"; if (movieFileName.StartsWith("rtsp:")) { movieFileName = "ZZZZ:" + movieFileName.Remove(0, 5); } g_Player.Play(movieFileName); if (g_Player.IsVideo) { GUIGraphicsContext.IsFullScreenVideo = true; GUIWindowManager.ActivateWindow((int)Window.WINDOW_FULLSCREEN_VIDEO); } return; } }
private void item_OnItemSelected(GUIListItem item, GUIControl parent) { UpdateSelectedProperties(item); }
/* * private string GetPlotTmdb(GUIListItem item, ref string thumbOut) * { * // Get TMDBId to retreive full details from TMDB * string shortPlot = string.Empty; * string strUrl = * String.Format("http://api.themoviedb.org/2.1/Movie.imdbLookup/en/xml/2ed40b5d82aa804a2b1fcedb5ca8d97a/" + * ListItemMovieInfo(item).MovieImdbID); * string absUri; * string regex = @"<id>(?<tmdbId>.*?)</id>"; * string body = GetPage(strUrl, "utf-8", out absUri); * string tmdbId = Regex.Match(body, regex, RegexOptions.Singleline).Groups["tmdbId"].Value; * * if (tmdbId == string.Empty) * { * shortPlot = string.Empty; * thumbOut = string.Empty; * return shortPlot; * } * * // Main - details by TMDBid * strUrl = * String.Format("http://api.themoviedb.org/2.1/Movie.getInfo/-/xml/2ed40b5d82aa804a2b1fcedb5ca8d97a/" + tmdbId); * * regex = @"<overview>(?<moviePlot>.*)</overview>"; * body = string.Empty; * * // Search Tmdb by API, body is XML result * shortPlot = GetPlot(strUrl, regex, ref body); * // Check if XML is valid (on English) * regex = @"<translated>false</translated>"; * if (Regex.Match(body, regex).Success || shortPlot == string.Empty) * { * shortPlot = string.Empty; * thumbOut = string.Empty; * return shortPlot; * } * * thumbOut = GetThumbTmdb(body); * * // MPARating * regex = @"<certification>(?<certification>.*)</certification>"; * string mpaaRating = Regex.Match(body, regex, RegexOptions.Singleline).Groups["certification"].Value; * * if (mpaaRating == string.Empty) * mpaaRating = Strings.Unknown; * * // Genres * string regexBlockPattern = @"<categories>(?<cast>.*?)</categories>"; * regex = @"<category\stype=""genre""\sname=""(?<genre>.*?)"""; * string block = Regex.Match(body, regexBlockPattern, RegexOptions.Singleline).Value; * MatchCollection mc = Regex.Matches(block, regex, RegexOptions.Singleline); * * string genre = string.Empty; * * foreach (Match m in mc) * { * genre += m.Groups["genre"].Value; * genre += " / "; * } * if (genre != string.Empty) * genre = genre.Remove(genre.LastIndexOf(" / ")); * * // Actors * regexBlockPattern = @"<cast>(?<cast>.*?)</cast>"; * regex = @"<person\sname=""(?<name>.*?)"".?character=""(?<role>.*?)"".?job=""(?<job>.*?)"""; * block = Regex.Match(body, regexBlockPattern, RegexOptions.Singleline).Value; * mc = Regex.Matches(block, regex, RegexOptions.Singleline); * * string name = string.Empty; * string job = string.Empty; * string strCast = string.Empty; * * if (mc.Count != 0) * { * foreach (Match m in mc) * { * name = m.Groups["name"].Value; * job = m.Groups["job"].Value; * * switch (job) * { * case "Director": * break; * * case "Screenplay": * break; * * case "Writer": * break; * * case "Actor": * strCast += name; * strCast += " / "; * break; * } * } * } * int index = strCast.LastIndexOf(" /"); * if (index > 0) * strCast = strCast.Remove(index); * * // Execute sql to db for genres, rating and cast list * ExecuteSql("strGenre", genre, item); * ExecuteSql("mpaa", mpaaRating, item); * ExecuteSql("strCast", strCast, item); * ListItemMovieInfo(item).MovieGenre = genre; * ListItemMovieInfo(item).MovieMpaaRating = mpaaRating; * ListItemMovieInfo(item).MovieCast = strCast; * * return shortPlot; * } * * private string GetThumbTmdb(string body) * { * string thumb = string.Empty; * string regexBlockPattern = @"<images>.*?</images>"; * string regex = @"<image\stype=""poster""\surl=""(?<cover>http://cf1.imgobject.com/posters/.*?jpg)"""; * string block = Regex.Match(body, regexBlockPattern, RegexOptions.Singleline).Value; * * MatchCollection mc = Regex.Matches(block, regex, RegexOptions.Singleline); * if (mc.Count > 0) * { * foreach (Match m in mc) * { * // Get cover - using mid quality cover * if (m.Groups["cover"].Value.ToLowerInvariant().Contains("mid.jpg")) * { * thumb = m.Groups["cover"].Value; * break; * } * } * } * return thumb; * } */ #endregion #region IMDB private string GetPlotImdb(GUIListItem item) { try { string plot = string.Empty; IMDBMovie movie = new IMDBMovie(); movie.IMDBNumber = ListItemMovieInfo(item).MovieImdbID; if (!IMDB.InternalActorsScriptGrabber.InternalActorsGrabber.GetPlotImdb(ref movie)) { return(string.Empty); } plot = movie.PlotOutline; #region Extra data // Title if (movie.Title != string.Empty) { ExecuteSql("strTitle", movie.Title, item); ListItemMovieInfo(item).MovieTitle = movie.Title; } // Year if (movie.Year == 0) { movie.Year = DateTime.Today.Year + 3; } ExecuteSql("iYear", movie.Year.ToString(), item); ListItemMovieInfo(item).Year = movie.Year; // Director if (movie.WritingCredits == string.Empty) { movie.WritingCredits = Strings.Unknown; } ExecuteSql("strCredits", movie.WritingCredits, item); ListItemMovieInfo(item).MovieCredits = movie.WritingCredits; // Genres if (movie.SingleGenre == string.Empty) { movie.SingleGenre = Strings.Unknown; } ExecuteSql("strGenre", movie.SingleGenre, item); ListItemMovieInfo(item).MovieGenre = movie.SingleGenre; // MPAA rating if (movie.MPARating == string.Empty) { movie.MPARating = Strings.Unknown; } ExecuteSql("mpaa", movie.MPARating, item); ListItemMovieInfo(item).MovieMpaaRating = movie.MPARating; // Cast list ExecuteSql("strCast", movie.Cast, item); ListItemMovieInfo(item).MovieCast = movie.Cast; #endregion movie = null; return(plot); } catch (ThreadAbortException) { Log.Info("GUIVideoArtistInfo: Movie database lookup GetDetails(): Thread aborted"); } catch (Exception ex) { Log.Error("GUIVideoArtistInfo: Movie database lookup GetDetails() error: {0}", ex.Message); } return(string.Empty); }
protected override void OnShowContextMenu() { GUIListItem selectedItem = this.Facade.SelectedListItem; if (selectedItem == null) { return; } TraktMovie selectedMovie = (TraktMovie)selectedItem.TVTag; IDialogbox dlg = (IDialogbox)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg == null) { return; } dlg.Reset(); dlg.SetHeading(GUIUtils.PluginName()); GUIListItem listItem = null; // Dismiss Recommendation listItem = new GUIListItem(Translation.DismissRecommendation); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.DismissRecommendation; // Mark As Watched // This should remove item from recommendations if executed if (!selectedMovie.Watched) { listItem = new GUIListItem(Translation.MarkAsWatched); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.MarkAsWatched; } // Add/Remove Watch List if (!selectedMovie.InWatchList) { listItem = new GUIListItem(Translation.AddToWatchList); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.AddToWatchList; } else { listItem = new GUIListItem(Translation.RemoveFromWatchList); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.RemoveFromWatchList; } // Add to Custom List listItem = new GUIListItem(Translation.AddToList + "..."); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.AddToList; // Add to Library // Don't allow if it will be removed again on next sync // movie could be part of a DVD collection if (!selectedMovie.InCollection && !TraktSettings.KeepTraktLibraryClean) { listItem = new GUIListItem(Translation.AddToLibrary); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.AddToLibrary; } if (selectedMovie.InCollection) { listItem = new GUIListItem(Translation.RemoveFromLibrary); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.RemoveFromLibrary; } // Related Movies listItem = new GUIListItem(Translation.RelatedMovies + "..."); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Related; // Rate Movie listItem = new GUIListItem(Translation.RateMovie); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Rate; // Shouts listItem = new GUIListItem(Translation.Shouts + "..."); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Shouts; if (TraktHelper.IsOnlineVideosAvailableAndEnabled) { // Trailers listItem = new GUIListItem(Translation.Trailers); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.Trailers; } // Change Layout listItem = new GUIListItem(Translation.ChangeLayout); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.ChangeLayout; if (!selectedMovie.InCollection && TraktHelper.IsMpNZBAvailableAndEnabled) { // Search for movie with mpNZB listItem = new GUIListItem(Translation.SearchWithMpNZB); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.SearchWithMpNZB; } if (!selectedMovie.InCollection && TraktHelper.IsMyTorrentsAvailableAndEnabled) { // Search for movie with MyTorrents listItem = new GUIListItem(Translation.SearchTorrent); dlg.Add(listItem); listItem.ItemId = (int)ContextMenuItem.SearchTorrent; } // Show Context Menu dlg.DoModal(GUIWindowManager.ActiveWindow); if (dlg.SelectedId < 0) { return; } switch (dlg.SelectedId) { case ((int)ContextMenuItem.DismissRecommendation): PreviousSelectedIndex = this.Facade.SelectedListItemIndex; DismissRecommendation(selectedMovie); if (_RecommendedMovies.Count() > 1) { var moviesToExcept = new List <TraktMovie>(); moviesToExcept.Add(selectedMovie); _RecommendedMovies = RecommendedMovies.Except(moviesToExcept); } else { // reload, none left ClearProperties(); GUIControl.ClearControl(GetID, Facade.GetID); _RecommendedMovies = null; } LoadRecommendedMovies(); break; case ((int)ContextMenuItem.MarkAsWatched): PreviousSelectedIndex = this.Facade.SelectedListItemIndex; TraktHelper.MarkMovieAsWatched(selectedMovie); if (_RecommendedMovies.Count() > 1) { var moviesToExcept = new List <TraktMovie>(); moviesToExcept.Add(selectedMovie); _RecommendedMovies = RecommendedMovies.Except(moviesToExcept); } else { // reload, none left ClearProperties(); GUIControl.ClearControl(GetID, Facade.GetID); _RecommendedMovies = null; } LoadRecommendedMovies(); break; case ((int)ContextMenuItem.AddToWatchList): TraktHelper.AddMovieToWatchList(selectedMovie, true); selectedMovie.InWatchList = true; OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.RemoveFromWatchList): TraktHelper.RemoveMovieFromWatchList(selectedMovie, true); selectedMovie.InWatchList = false; OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.AddToList): TraktHelper.AddRemoveMovieInUserList(selectedMovie.Title, selectedMovie.Year, selectedMovie.IMDBID, false); break; case ((int)ContextMenuItem.AddToLibrary): TraktHelper.AddMovieToLibrary(selectedMovie); selectedMovie.InCollection = true; OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.RemoveFromLibrary): TraktHelper.RemoveMovieFromLibrary(selectedMovie); selectedMovie.InCollection = false; OnMovieSelected(selectedItem, Facade); (Facade.SelectedListItem as GUIMovieListItem).Images.NotifyPropertyChanged("Poster"); break; case ((int)ContextMenuItem.Related): TraktHelper.ShowRelatedMovies(selectedMovie); break; case ((int)ContextMenuItem.Rate): PreviousSelectedIndex = this.Facade.SelectedListItemIndex; if (GUICommon.RateMovie(selectedMovie)) { // also mark as watched TraktHelper.MarkMovieAsWatched(selectedMovie); // remove from recommendations if (_RecommendedMovies.Count() > 1) { var moviesToExcept = new List <TraktMovie>(); moviesToExcept.Add(selectedMovie); _RecommendedMovies = RecommendedMovies.Except(moviesToExcept); } else { // reload, none left ClearProperties(); GUIControl.ClearControl(GetID, Facade.GetID); _RecommendedMovies = null; } LoadRecommendedMovies(); } break; case ((int)ContextMenuItem.Shouts): TraktHelper.ShowMovieShouts(selectedMovie); break; case ((int)ContextMenuItem.Trailers): GUICommon.ShowMovieTrailersMenu(selectedMovie); break; case ((int)ContextMenuItem.ChangeLayout): CurrentLayout = GUICommon.ShowLayoutMenu(CurrentLayout, PreviousSelectedIndex); break; case ((int)ContextMenuItem.SearchWithMpNZB): string loadingParam = string.Format("search:{0}", selectedMovie.Title); GUIWindowManager.ActivateWindow((int)ExternalPluginWindows.MpNZB, loadingParam); break; case ((int)ContextMenuItem.SearchTorrent): string loadPar = selectedMovie.Title; GUIWindowManager.ActivateWindow((int)ExternalPluginWindows.MyTorrents, loadPar); break; default: break; } base.OnShowContextMenu(); }
private void SetNewproperties() { _currentActor.SortActorMoviesByYear(); for (int i = 0; i < _currentActor.Count; ++i) { string line = String.Format("{0}. {1} ({2})", _currentActor[i].Year, _currentActor[i].MovieTitle, _currentActor[i].Role); //List view var item = new GUIListItem(); item.ItemId = i; item.Label = line.Replace("()", string.Empty).Trim(); // Year+Title+Role (visible on screen item) if (_currentActor[i].MoviePlot == "-" || _currentActor[i].MoviePlot == Strings.Unknown) { _currentActor[i].MoviePlot = string.Empty; // Plot } item.AlbumInfoTag = Actor[i]; string filenameL = string.Empty; string path = string.Empty; // Find image if (VideoDatabase.CheckMovieImdbId(_currentActor[i].MovieImdbID)) { string ttFolder = Regex.Replace(_currentActor[i].MovieImdbID, "(tt(0*))", string.Empty); int i_ttFolder = 0; int.TryParse(ttFolder, out i_ttFolder); i_ttFolder = i_ttFolder / 25000; // 25000 thumbs in one folder ttFolder = i_ttFolder.ToString(); path = string.Format(@"{0}\Videos\Actors\ActorsMovies\{1}\", Config.GetFolder(Config.Dir.Thumbs), ttFolder); filenameL = _currentActor[i].MovieImdbID + ".jpg"; if (File.Exists(path + filenameL)) { filenameL = path + filenameL; // Movie cover file item.IconImage = filenameL; } else { filenameL = string.Empty; // Movie cover file item.IconImage = string.Empty; } } // Show in list if user have that movie in collection (played property = true) ArrayList movies = new ArrayList(); string sql = string.Format("SELECT * FROM movieinfo WHERE IMDBID = '{0}'", _currentActor[i].MovieImdbID); VideoDatabase.GetMoviesByFilter(sql, out movies, false, true, false, false, false); if (movies.Count > 0) // We have a movie, color normal or color played for watched { IMDBMovie movie = new IMDBMovie(); movie = (IMDBMovie)movies[0]; item.DVDLabel = movie.ID.ToString(); // DVD label holds videodatabase movieID item.IsPlayed = true; } item.ThumbnailImage = filenameL; item.OnItemSelected += OnItemSelected; listActorMovies.Add(item); } if (listActorMovies.ListItems.Count == 0) { GUIListItem item = new GUIListItem(); item.Label = GUILocalizeStrings.Get(284); IMDBMovie movie = item.AlbumInfoTag as IMDBMovie; movie = new IMDBMovie(); item.AlbumInfoTag = movie; listActorMovies.Add(item); } _currentSelectedItem = 0; string largeCoverArtImage = Util.Utils.GetLargeCoverArtName(Thumbs.MovieActors, _currentActor.ID.ToString()); if (imgCoverArt != null) { imgCoverArt.Dispose(); imgCoverArt.SetFileName(largeCoverArtImage); imgCoverArt.AllocResources(); } // Update skin controls visibility Update(); // Restore screen from last session if needed LoadState(); }
protected override void OnClicked(int controlId, GUIControl control, Action.ActionType actionType) { base.OnClicked(controlId, control, actionType); // Default folder (select/deselect on click) - settings saved if (control == videosShareListcontrol) { OnSetDefaultFolder(); } // Add new folder if (control == btnAdd) { // reset menu position _selectedOption = -1; // reset folder browser ClearFolders(); // Clear folder info ClearFolderInfoData(); _userNetFolder = GUILocalizeStrings.Get(145); // Network // Show menu OnAddEditFolder(); // Define new folder GUIListItem item = new GUIListItem(); // Watch for last parameter (my version with selective thumbs will use that) ShareData shareData = new ShareData("", "", "", true); item.AlbumInfoTag = shareData; _shareFolderListItem = item; // Check new data CheckCurrentShareData(); if (_error) { _error = false; GUIDialogOK dlgOk = (GUIDialogOK)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_OK); dlgOk.SetHeading(257); dlgOk.SetLine(1, GUILocalizeStrings.Get(300053)); // Error in folder data dlgOk.SetLine(2, GUILocalizeStrings.Get(300054)); // Name or path couldn't be empty dlgOk.DoModal(GUIWindowManager.ActiveWindow); return; } // Prepare folder info data FolderInfo(_shareFolderListItem).DefaultLayout = SettingsSharesHelper.ProperLayoutFromDefault(_folderDefaultLayoutIndex); FolderInfo(_shareFolderListItem).Name = _folderName; FolderInfo(_shareFolderListItem).Folder = _folderPath; FolderInfo(_shareFolderListItem).CreateThumbs = _folderCreateThumbs; FolderInfo(_shareFolderListItem).EachFolderIsMovie = _folderEachFolderIsMovie; FolderInfo(_shareFolderListItem).PinCode = _folderPin; // Almost forgot this, needed for proper sort :) _shareFolderListItem.Label = _folderName; _shareFolderListItem.OnItemSelected += OnItemSelected; // Add new folder in list videosShareListcontrol.Add(_shareFolderListItem); GUIListItem newItem = _shareFolderListItem; Sort(); int index = videosShareListcontrol.ListItems.IndexOf(newItem); videosShareListcontrol.SelectedListItemIndex = index; } // Edit folder if (control == btnEdit) { string name = _folderName; string path = _folderPath; // reset menu position _selectedOption = -1; OnAddEditFolder(); // Check new data CheckCurrentShareData(); if (_error) { _error = false; GUIDialogOK dlgOk = (GUIDialogOK)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_OK); dlgOk.SetHeading(257); dlgOk.SetLine(1, GUILocalizeStrings.Get(300053)); // Error in folder data dlgOk.SetLine(2, GUILocalizeStrings.Get(300054)); // Name or path couldn't be empty dlgOk.DoModal(GUIWindowManager.ActiveWindow); _folderName = name; _folderPath = path; return; } // Update changes FolderInfo(_shareFolderListItem).Name = _folderName; _shareFolderListItem.Label = _folderName; FolderInfo(_shareFolderListItem).Folder = _folderPath; FolderInfo(_shareFolderListItem).PinCode = _folderPin; FolderInfo(_shareFolderListItem).CreateThumbs = _folderCreateThumbs; FolderInfo(_shareFolderListItem).EachFolderIsMovie = _folderEachFolderIsMovie; FolderInfo(_shareFolderListItem).DefaultLayout = SettingsSharesHelper.ProperLayoutFromDefault(_folderDefaultLayoutIndex); // Add changes to a listitem videosShareListcontrol.SelectedListItem.AlbumInfoTag = _shareFolderListItem.AlbumInfoTag; videosShareListcontrol.SelectedListItem.Label = _folderName; // Sort list GUIListItem newItem = _shareFolderListItem; Sort(); int index = videosShareListcontrol.ListItems.IndexOf(newItem); videosShareListcontrol.SelectedListItemIndex = index; } // Remove folder - settings saved if (control == btnRemove) { OnRemoveFolder(); } // Reset folders - settings saved if (control == btnReset) { GUIDialogYesNo dlgYesNo = (GUIDialogYesNo)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_YES_NO); if (dlgYesNo != null) { dlgYesNo.SetHeading(GUILocalizeStrings.Get(927)); // Warning dlgYesNo.SetLine(1, GUILocalizeStrings.Get(300055)); // this will delete folders dlgYesNo.DoModal(GetID); if (dlgYesNo.IsConfirmed) { OnResetFolders(); } } } }
/// <summary> /// Examines the current playing movie and fills in all the #tags for the skin. /// For movies it will look in the video database for any IMDB info /// For record TV programs it will look in the TVDatabase for recording info /// </summary> /// <param name="fileName">Filename of the current playing movie</param> /// <remarks> /// Function will fill in the following tags for TV programs /// #Play.Current.Title, #Play.Current.Plot, #Play.Current.PlotOutline #Play.Current.File, #Play.Current.Thumb, #Play.Current.Year, #Play.Current.Channel, /// /// Function will fill in the following tags for movies /// #Play.Current.Title, #Play.Current.Plot, #Play.Current.PlotOutline #Play.Current.File, #Play.Current.Thumb, #Play.Current.Year /// #Play.Current.Director, #cast, #dvdlabel, #imdbnumber, #Play.Current.Plot, #Play.Current.PlotOutline, #rating, #tagline, #votes, #credits /// </remarks> private void SetCurrentFile(string fileName) { GUIPropertyManager.RemovePlayerProperties(); GUIPropertyManager.SetProperty("#Play.Current.Title", Util.Utils.GetFilename(fileName)); GUIPropertyManager.SetProperty("#Play.Current.File", Util.Utils.GetFileNameWithExtension(fileName)); GUIPropertyManager.SetProperty("#Play.Current.Thumb", string.Empty); GUIPropertyManager.SetProperty("#Play.Current.VideoCodec.Texture", string.Empty); GUIPropertyManager.SetProperty("#Play.Current.VideoResolution", string.Empty); GUIPropertyManager.SetProperty("#Play.Current.AudioCodec.Texture", string.Empty); GUIPropertyManager.SetProperty("#Play.Current.AudioChannels", string.Empty); GUIPropertyManager.SetProperty("#Play.Current.HasSubtitles", string.Empty); GUIPropertyManager.SetProperty("#Play.Current.AspectRatio", string.Empty); if ((g_Player.IsVideo || g_Player.IsDVD) && !g_Player.IsTV && g_Player.MediaInfo != null) { GUIPropertyManager.SetProperty("#Play.Current.VideoCodec.Texture", Util.Utils.MakeFileName(g_Player.MediaInfo.VideoCodec)); GUIPropertyManager.SetProperty("#Play.Current.VideoResolution", g_Player.MediaInfo.VideoResolution); GUIPropertyManager.SetProperty("#Play.Current.AudioCodec.Texture", Util.Utils.MakeFileName(g_Player.MediaInfo.AudioCodec)); GUIPropertyManager.SetProperty("#Play.Current.AudioChannels", g_Player.MediaInfo.AudioChannelsFriendly); GUIPropertyManager.SetProperty("#Play.Current.HasSubtitles", g_Player.MediaInfo.HasSubtitles.ToString()); GUIPropertyManager.SetProperty("#Play.Current.AspectRatio", g_Player.MediaInfo.AspectRatio); } if (g_Player.IsDVD) { // for dvd's the file is in the form c:\media\movies\the matrix\video_ts\video_ts.ifo // first strip the \video_ts\video_ts.ifo string lowPath = fileName.ToLower(); int index = lowPath.IndexOf("video_ts/"); if (index < 0) { index = lowPath.IndexOf(@"video_ts\"); } if (index >= 0) { fileName = fileName.Substring(0, index); fileName = Util.Utils.RemoveTrailingSlash(fileName); // get the name by stripping the first part : c:\media\movies string strName = fileName; int pos = fileName.LastIndexOfAny(new char[] { '\\', '/' }); if (pos >= 0 && pos + 1 < fileName.Length - 1) { strName = fileName.Substring(pos + 1); } // get the name when play DVD directly from Drive letter List <GUIListItem> rootDrives = VirtualDirectories.Instance.Movies.GetRootExt(); for (int i = rootDrives.Count - 1; i >= 0; i--) { GUIListItem itemDVDroot = (GUIListItem)rootDrives[i]; string itemDVD = Path.GetPathRoot(itemDVDroot.Path); itemDVD = Util.Utils.RemoveTrailingSlash(itemDVD); if (itemDVD == strName && !String.IsNullOrEmpty(itemDVDroot.DVDLabel)) //cd or dvd drive { strName = itemDVDroot.DVDLabel; } } GUIPropertyManager.SetProperty("#Play.Current.Title", strName); GUIPropertyManager.SetProperty("#Play.Current.File", strName); // construct full filename as imdb info is stored... fileName += @"\VIDEO_TS\VIDEO_TS.IFO"; } } bool isLive = g_Player.IsTimeShifting; string extension = Util.Utils.GetFileExtension(fileName).ToLower(); if (extension.Equals(".sbe") || extension.Equals(".dvr-ms") || (extension.Equals(".ts") && !isLive || g_Player.IsTVRecording)) { // this is a recorded movie. // check the TVDatabase for the description,genre,title,... if (g_Player.currentTitle != "") { GUIPropertyManager.SetProperty("#Play.Current.Title", g_Player.currentTitle); GUIPropertyManager.SetProperty("#Play.Current.Plot", g_Player.currentTitle + "\n" + g_Player.currentDescription); GUIPropertyManager.SetProperty("#Play.Current.PlotOutline", g_Player.currentDescription); } } /*if (fileName.Substring(0, 4) == "rtsp") * { * GUIPropertyManager.SetProperty("#Play.Current.Title", g_Player.currentTitle); * GUIPropertyManager.SetProperty("#Play.Current.Plot", g_Player.currentTitle + "\n" + g_Player.currentDescription); * GUIPropertyManager.SetProperty("#Play.Current.PlotOutline", g_Player.currentDescription); * }*/ IMDBMovie movieDetails = new IMDBMovie(); bool bMovieInfoFound = false; ISelectBDHandler selectBdHandler; if (GlobalServiceProvider.IsRegistered <ISelectBDHandler>()) { selectBdHandler = GlobalServiceProvider.Get <ISelectBDHandler>(); } else { selectBdHandler = new SelectBDHandler(); GlobalServiceProvider.Add <ISelectBDHandler>(selectBdHandler); } bool playingRemoteUrl = Util.Utils.IsRemoteUrl(fileName); if (!g_Player.IsTVRecording && !playingRemoteUrl) { // Check if we play image file to search db with the proper filename if (Util.Utils.IsISOImage(fileName)) { fileName = DaemonTools.MountedIsoFile; } if (VideoDatabase.HasMovieInfo(fileName)) { VideoDatabase.GetMovieInfo(fileName, ref movieDetails); bMovieInfoFound = true; } else if (File.Exists(Path.ChangeExtension(fileName, ".xml"))) { MatroskaTagInfo info = MatroskaTagHandler.Fetch(Path.ChangeExtension(fileName, ".xml")); movieDetails.Title = info.title; movieDetails.Plot = info.description; movieDetails.Genre = info.genre; GUIPropertyManager.SetProperty("#Play.Current.Channel", info.channelName); string logo = Util.Utils.GetCoverArt(Thumbs.TVChannel, info.channelName); if (!Util.Utils.FileExistsInCache(logo)) { logo = "defaultVideoBig.png"; } GUIPropertyManager.SetProperty("#Play.Current.Thumb", logo); _thumbLogo = logo; bMovieInfoFound = true; } else // Nfo support { string path = string.Empty; int pathIndex = 0; if (fileName.ToUpperInvariant().Contains(@"\BDMV")) { pathIndex = fileName.ToUpperInvariant().LastIndexOf(@"\BDMV"); path = fileName.Remove(pathIndex); } else if (fileName.ToUpperInvariant().Contains(@"\VIDEO_TS\")) { pathIndex = fileName.ToUpperInvariant().LastIndexOf(@"\VIDEO_TS\"); path = fileName.Remove(pathIndex); } else if (!String.IsNullOrEmpty(fileName)) { path = Path.GetDirectoryName(fileName); } IMDBMovie.FetchMovieNfo(path, fileName, ref movieDetails); if (!movieDetails.IsEmpty) { bMovieInfoFound = true; } } if (bMovieInfoFound) { movieDetails.SetPlayProperties(true); } else { GUIListItem item = new GUIListItem(); item.IsFolder = false; item.Path = fileName; Util.Utils.SetThumbnails(ref item); GUIPropertyManager.SetProperty("#Play.Current.Thumb", item.ThumbnailImage); // Image file check to set title for OSD (non db) if (VirtualDirectory.IsImageFile(Path.GetExtension(fileName))) { string title = Util.Utils.GetFilename(fileName, true); GUIPropertyManager.SetProperty("#Play.Current.Title", title); } else if (fileName.ToLower().Contains("index.bdmv")) // BD folder title check { string title = selectBdHandler.GetDiscTitle(fileName); // get the name when play BD directly from Drive letter if (String.IsNullOrEmpty(title)) { List <GUIListItem> rootDrives = VirtualDirectories.Instance.Movies.GetRootExt(); title = Path.GetPathRoot(fileName); title = Util.Utils.RemoveTrailingSlash(title); for (int i = rootDrives.Count - 1; i >= 0; i--) { GUIListItem itemBDroot = (GUIListItem)rootDrives[i]; string itemBD = Path.GetPathRoot(itemBDroot.Path); itemBD = Util.Utils.RemoveTrailingSlash(itemBD); if (itemBD == title && !String.IsNullOrEmpty(itemBDroot.DVDLabel)) //cd or dvd drive { title = itemBDroot.DVDLabel; } } } GUIPropertyManager.SetProperty("#Play.Current.Title", title); } else if (fileName.ToLower().Contains(".mpls")) // BD folder title check (playlist) { // Check if index.bdmv is in the VDB int index = fileName.ToLower().LastIndexOf(@"\playlist"); string name = fileName.Remove(index); name = name + @"\index.bdmv"; if (VideoDatabase.HasMovieInfo(name)) { VideoDatabase.GetMovieInfo(name, ref movieDetails); movieDetails.SetPlayProperties(); } else { string title = selectBdHandler.GetDiscTitle(fileName); // get the name when play BD directly from Drive letter if (String.IsNullOrEmpty(title)) { List <GUIListItem> rootDrives = VirtualDirectories.Instance.Movies.GetRootExt(); title = Path.GetPathRoot(fileName); title = Util.Utils.RemoveTrailingSlash(title); for (int i = rootDrives.Count - 1; i >= 0; i--) { GUIListItem itemBDroot = (GUIListItem)rootDrives[i]; string itemBD = Path.GetPathRoot(itemBDroot.Path); itemBD = Util.Utils.RemoveTrailingSlash(itemBD); if (itemBD == title && !String.IsNullOrEmpty(itemBDroot.DVDLabel)) //cd or dvd drive { title = itemBDroot.DVDLabel; } } } GUIPropertyManager.SetProperty("#Play.Current.Title", title); } } } } else if (g_Player.IsTV && g_Player.IsTimeShifting) { GUIPropertyManager.SetProperty("#Play.Current.Title", GUIPropertyManager.GetProperty("#TV.View.channel")); GUIPropertyManager.SetProperty("#Play.Current.Genre", GUIPropertyManager.GetProperty("#TV.View.title")); } else { GUIListItem item = new GUIListItem(); item.IsFolder = false; item.Path = fileName; Util.Utils.SetThumbnails(ref item); GUIPropertyManager.SetProperty("#Play.Current.Thumb", item.ThumbnailImage); } _thumbLogo = GUIPropertyManager.GetProperty("#Play.Current.Thumb"); }
/// <summary> /// Network share enumeration from netShare parameter resource /// </summary> /// <param name="netShare">Network resource</param> private void GetNetworkFolders(string netShare) { ArrayList netComputers = NetShareCollection.GetComputersOnNetwork(); if (netComputers == null || netComputers.Count == 0) { GUIDialogOK dlgOk = (GUIDialogOK)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_OK); dlgOk.SetHeading(GUILocalizeStrings.Get(1020)); dlgOk.SetLine(1, GUILocalizeStrings.Get(300056)); //No network resources found. dlgOk.SetLine(2, GUILocalizeStrings.Get(300057)); // Try manual search. dlgOk.DoModal(GetID); GetStringFromKeyboard(ref netShare, -1); } else { GUIDialogSelect dlg = (GUIDialogSelect)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_SELECT); if (dlg == null) { return; } dlg.Reset(); dlg.SetHeading(924); // Menu dlg.EnableButton(true); dlg.SetButtonLabel(413); // manual // Add list to dlg menu foreach (string netWrkst in netComputers) { dlg.Add(netWrkst); } // Show dialog menu dlg.DoModal(GetID); if (dlg.IsButtonPressed) { GetStringFromKeyboard(ref netShare, -1); } else if (dlg.SelectedLabel == -1) { return; } else { netShare = dlg.SelectedLabelText; } } if (string.IsNullOrEmpty(netShare) || !netShare.StartsWith(@"\\") || (netShare.StartsWith(@"\\") && netShare.Length <= 2)) { netShare = GUILocalizeStrings.Get(145); return; } // Get selected network resource shared folders _userNetFolder = netShare; NetShareCollection netShares = NetShareCollection.GetShares(netShare); SetFolderHistory(); _folders.Clear(); GUIListItem goBack = new GUIListItem(); goBack.Label = ".."; goBack.Label2 = ".."; _folders.Add(goBack); foreach (NetShare share in netShares) { if (share.IsFileSystem && share.ShareType == ShareType.Disk) { GUIListItem netFolder = new GUIListItem(); string nFolder = Path.GetFileName(share.Root.FullName); netFolder.Label = nFolder.ToUpperInvariant(); netFolder.Label2 = share.Root.FullName; _folders.Add(netFolder); } } }
public void UpdateList() { var grabberIndex = 0; updateStationLogoTimer.Enabled = false; downloaQueue.Clear(); GUIControl.ClearControl(GetID, listControl.GetID); if (grabber.Parent != null && grabber.Parent.Body.Count > 0) { var item = new GUIListItem(); // and add station name & bitrate item.Label = ".."; item.Label2 = "(" + grabber.Parent.Body.Count.ToString() + ")"; item.OnItemSelected += item_OnItemSelected; item.IsFolder = true; item.IconImage = "defaultFolderBack.png"; item.IconImageBig = "DefaultFolderBackBig.png"; item.MusicTag = null; listControl.Add(item); } RadioTimeOutline selected = null; foreach (var body in grabber.Body) { if (null != grabber.Selected && null != body && null == selected && ( (null != body.Url && body.Url.Equals((string)grabber.Selected, StringComparison.InvariantCultureIgnoreCase)) || (!string.IsNullOrEmpty(body.GuidId) && ((string)grabber.Selected).ToUpperInvariant().Contains(body.GuidId.ToUpperInvariant())) ) ) { selected = body; } var item = new GUIListItem(); // and add station name & bitrate item.Label = body.Text; item.Label2 = body.Bitrate; item.ThumbnailImage = GetStationLogoFileName(body); item.IconImage = GetStationLogoFileName(body); item.IsFolder = false; item.OnItemSelected += item_OnItemSelected; item.MusicTag = body; listControl.Add(item); DownloadStationLogo(body); switch (body.Type) { case RadioTimeOutline.OutlineType.audio: if (string.IsNullOrEmpty(item.IconImage)) { item.IconImage = "defaultMyRadio.png"; item.IconImageBig = "defaultMyRadioBig.png"; } item.IsFolder = false; item.Year = ++grabberIndex; break; case RadioTimeOutline.OutlineType.link: if (string.IsNullOrEmpty(item.IconImage)) { item.IconImage = "defaultFolder.png"; item.IconImageBig = "defaultFolderBig.png"; } item.IsFolder = true; item.Year = ++grabberIndex; break; case RadioTimeOutline.OutlineType.unknow: { item.IconImage = "defaultFolder.png"; item.IconImageBig = "defaultFolderBig.png"; } item.IsFolder = true; item.Year = ++grabberIndex; break; default: break; } } updateStationLogoTimer.Enabled = true; //if (curSorting != StationSort.SortMethod.none) listControl.Sort(new StationSort(curSorting, mapSettings.SortAscending)); var i = 0; foreach (var item in listControl.ListLayout.ListItems) { if (item.MusicTag == selected) { break; } i++; } listControl.SelectedListItemIndex = i; GUIPropertyManager.SetProperty("#itemcount", grabber.Body.Count + " " + Translation.Objects); //GUIPropertyManager.SetProperty("#header.label", grabber.Head.Title); GUIPropertyManager.SetProperty("#header.label", grabber.NavigationTitle); if (grabber.CurentUrl.Contains("id=")) { randomButton.Disabled = false; } else { randomButton.Disabled = true; } ShowPanel(); }
private void OnItemSelected(GUIListItem item, GUIControl parent) { if (item == null) { return; } var listItem = item.TVTag as TraktListItem; if (listItem == null) { return; } PreviousSelectedIndex = Facade.SelectedListItemIndex; switch (listItem.Type) { case "movie": SelectedType = TraktItemType.movie; PublishMovieSkinProperties(listItem); string fanart = TmdbCache.GetMovieBackdropFilename((item as GUICustomListItem).Images.MovieImages); if (!string.IsNullOrEmpty(fanart)) { GUIImageHandler.LoadFanart(backdrop, fanart); } break; case "show": SelectedType = TraktItemType.show; PublishShowSkinProperties(listItem); fanart = TmdbCache.GetShowBackdropFilename((item as GUICustomListItem).Images.ShowImages); if (!string.IsNullOrEmpty(fanart)) { GUIImageHandler.LoadFanart(backdrop, fanart); } break; case "season": SelectedType = TraktItemType.season; PublishSeasonSkinProperties(listItem); fanart = TmdbCache.GetShowBackdropFilename((item as GUICustomListItem).Images.ShowImages); if (!string.IsNullOrEmpty(fanart)) { GUIImageHandler.LoadFanart(backdrop, fanart); } break; case "episode": SelectedType = TraktItemType.episode; PublishEpisodeSkinProperties(listItem); fanart = TmdbCache.GetShowBackdropFilename((item as GUICustomListItem).Images.ShowImages); if (!string.IsNullOrEmpty(fanart)) { GUIImageHandler.LoadFanart(backdrop, fanart); } break; case "person": SelectedType = TraktItemType.person; PublishPersonSkinProperties(listItem); break; } GUIUtils.SetProperty("#Trakt.List.ItemType", SelectedType.ToString()); }