Beispiel #1
0
        /// <summary>
        /// Modifies the selected media items
        /// </summary>
        private void ModifySelectedMediaItems()
        {
            try
            {
                if (IsOrganising)
                {
                    GeneralMethods.MessageBoxApplicationError("Please wait for the library to finish organising before modifying any media items");
                    return;
                }

                if (SelectedMediaItems.Length > 0)
                {
                    ModifyMediaItemsDialog mmid = new ModifyMediaItemsDialog(SelectedMediaItems.ToArray());
                    mmid.Owner = Application.Current.MainWindow;

                    if (GeneralMethods.GetNullableBoolValue(mmid.ShowDialog()))
                    {
                        OnMediaItemsSaved(SelectedMediaItems);
                    }
                }
            }
            catch (System.Exception e)
            {
                GeneralMethods.MessageBoxException(e, "Could not modify media items: ");
            }
        }
Beispiel #2
0
        void MediaQueue_MediaItemRemoved(object sender, MediaItemEventArgs e)
        {
            if (SelectedMediaItems.Contains(e.Item))
            {
                SelectedMediaItems.Remove(e.Item);
            }

            if (ActiveMediaItem == e.Item)
            {
                ActiveMediaItem = null;
            }
        }
Beispiel #3
0
        /// <summary>
        /// Merges the parts of the selected media items into a single media item
        /// </summary>
        private void MergePartsOfSelectedMediaItems()
        {
            try
            {
                if (IsOrganising)
                {
                    GeneralMethods.MessageBoxApplicationError("Please wait for the library to finish organising before merging the parts of any media items");
                    return;
                }

                CancelMediaItemsOperationEventArgs e = new CancelMediaItemsOperationEventArgs(SelectedMediaItems);
                OnMergingSelectedMediaItems(e);

                if (e.Cancel)
                {
                    GeneralMethods.MessageBoxApplicationError(e.ReasonForCancel);
                    return;
                }

                MediaItem            mergedMediaItem = SelectedMediaItems[0];
                List <MediaItemPart> originalParts   = new List <MediaItemPart>(mergedMediaItem.Parts);

                for (int i = 1; i < SelectedMediaItems.Length; i++)
                {
                    foreach (MediaItemPart part in SelectedMediaItems[i].Parts)
                    {
                        mergedMediaItem.Parts.Add(part.Location, part.Size, part.Duration);
                    }
                }

                MediaItemDialog mediaItemDialog = new MediaItemDialog(true, mergedMediaItem);
                mediaItemDialog.Owner          = Application.Current.MainWindow;
                mediaItemDialog.ShowHidden     = Filter.ShowHidden;
                mediaItemDialog.FileTypeAdded += new FileTypeEventHandler(mediaItemDialog_FileTypeAdded);

                if (GeneralMethods.GetNullableBoolValue(mediaItemDialog.ShowDialog()))
                {
                    DeleteMediaItems(SelectedMediaItems.Where(p => p != mergedMediaItem).ToArray());
                    OnMediaItemSaved(mergedMediaItem);
                }
                else
                {
                    mergedMediaItem.Parts = new MediaItemPartCollection(originalParts);
                }
            }
            catch (System.Exception e)
            {
                GeneralMethods.MessageBoxException(e, "Could not merge parts: ");
            }
        }
Beispiel #4
0
        private void cmMediaItems_Opened(object sender, RoutedEventArgs e)
        {
            int     selectedItemCount  = SelectedMediaItems.Length;
            Boolean singleTypeSelected = Convert.ToBoolean(selectedItemCount);

            if (selectedItemCount > 1)
            {
                singleTypeSelected = !SelectedMediaItems.Any(p => p.Type != SelectedMediaItems[0].Type);
            }

            Visibility playOptionsVisibility = GeneralMethods.ConvertBooleanToVisibility(EnablePlayOptions);

            miPlay.Visibility               = playOptionsVisibility;
            miPlay.IsEnabled                = selectedItemCount >= 1;
            miPlayFromHere.Visibility       = playOptionsVisibility;
            miPlayFromHere.IsEnabled        = selectedItemCount == 1;
            miAddToNowPlaying.Visibility    = playOptionsVisibility;
            miAddToNowPlaying.IsEnabled     = selectedItemCount >= 1;
            sepPlay.Visibility              = playOptionsVisibility;
            miShowInExplorer.IsEnabled      = selectedItemCount >= 1;
            miEdit.IsEnabled                = selectedItemCount >= 1;
            miModify.IsEnabled              = (singleTypeSelected && (selectedItemCount >= 1));
            miDelete.IsEnabled              = selectedItemCount >= 1;
            miMergeParts.Visibility         = GeneralMethods.ConvertBooleanToVisibility(AllowMergeExtract);
            miMergeParts.IsEnabled          = (singleTypeSelected && (selectedItemCount > 1));
            miSetNameFromFilename.IsEnabled = (selectedItemCount > 0);
            miSetEpisodeNumber.Visibility   = GeneralMethods.ConvertBooleanToVisibility((selectedItemCount > 0) && (singleTypeSelected) && (SelectedMediaItems[0].Type == MediaItemTypeEnum.Video));
            miSetEpisodeNumber.IsEnabled    = selectedItemCount >= 1;
            miSetNumberOfEpisodesToSelectionCount.Visibility = GeneralMethods.ConvertBooleanToVisibility((selectedItemCount > 0) && (singleTypeSelected) && (SelectedMediaItems[0].Type == MediaItemTypeEnum.Video));
            miSetNumberOfEpisodesToSelectionCount.IsEnabled  = selectedItemCount >= 1;
            miSetTrackNumber.Visibility = GeneralMethods.ConvertBooleanToVisibility((selectedItemCount > 0) && (singleTypeSelected) && (SelectedMediaItems[0].Type == MediaItemTypeEnum.Song));
            miSetTrackNumber.IsEnabled  = selectedItemCount >= 1;
            miSetNumberOfTracksToSelectionCount.Visibility = GeneralMethods.ConvertBooleanToVisibility((selectedItemCount > 0) && (singleTypeSelected) && (SelectedMediaItems[0].Type == MediaItemTypeEnum.Song));
            miSetNumberOfTracksToSelectionCount.IsEnabled  = selectedItemCount >= 1;
            miTags.IsEnabled     = (selectedItemCount == 1) && (SelectedMediaItem.Tags.Count > 0);
            miTags.ItemsSource   = (SelectedMediaItem == null ? null : SelectedMediaItem.Tags);
            miExport.IsEnabled   = (selectedItemCount > 0) && (ExportDirectories != null) && (ExportDirectories.Count > 0);
            miExport.ItemsSource = ExportDirectories;
        }
Beispiel #5
0
 private void mivSongs_AddedToNowPlaying(object sender, MediaItemsEventArgs e)
 {
     OnAddedToNowPlaying(SelectedMediaItems.ToArray());
 }
Beispiel #6
0
        /// <summary>
        /// Edits the selected videos
        /// </summary>
        private void EditSelectedMediaItems()
        {
            try
            {
                if (IsOrganising)
                {
                    GeneralMethods.MessageBoxApplicationError("Please wait for the library to finish organising before editing any media items");
                    return;
                }

                if (SelectedMediaItems.Length > 0)
                {
                    if (SelectedMediaItems.Length == 1)
                    {
                        MediaItemDialog mediaItemDialog = new MediaItemDialog(true, MediaItems.ToArray());
                        mediaItemDialog.FileTypeAdded  += new FileTypeEventHandler(mediaItemDialog_FileTypeAdded);
                        mediaItemDialog.SavedMediaItem += new MediaItemEventHandler(mediaItemDialog_SavedMediaItem);
                        mediaItemDialog.PartExtracted  += new MediaItemPartEventHandler(mediaItemDialog_PartExtracted);
                        mediaItemDialog.Owner           = Application.Current.MainWindow;
                        mediaItemDialog.ShowHidden      = Filter.ShowHidden;
                        mediaItemDialog.SelectedIndex   = SelectedIndex;
                        mediaItemDialog.ShowDialog();
                    }
                    else
                    {
                        MediaItem firstItem = SelectedMediaItems[0];

                        if (SelectedMediaItems.Any(p => p.Type != firstItem.Type))
                        {
                            //generic media items
                            throw new NotImplementedException();
                        }
                        else
                        {
                            switch (firstItem.Type)
                            {
                            case MediaItemTypeEnum.Video:

                                VideosDialog videosDialog = new VideosDialog(SelectedMediaItems.Cast <Video>().ToArray(), Filter.ShowHidden);
                                videosDialog.Owner = Application.Current.MainWindow;

                                if (GeneralMethods.GetNullableBoolValue(videosDialog.ShowDialog()))
                                {
                                    OnMediaItemsSaved(videosDialog.Videos);
                                }

                                break;

                            case MediaItemTypeEnum.Song:

                                SongsDialog songsDialog = new SongsDialog(SelectedMediaItems.Cast <Song>().ToArray(), Filter.ShowHidden);
                                songsDialog.Owner = Application.Current.MainWindow;

                                if (GeneralMethods.GetNullableBoolValue(songsDialog.ShowDialog()))
                                {
                                    OnMediaItemsSaved(songsDialog.Songs);
                                }

                                break;
                            }
                        }
                    }
                }
            }
            catch (System.Exception e)
            {
                GeneralMethods.MessageBoxException(e, "Could not edit media items: ");
            }
        }
Beispiel #7
0
 /// <summary>
 /// Adds the selected media items to the "Now Playing..." playlist
 /// </summary>
 private void AddToNowPlaying()
 {
     OnAddedToNowPlaying(SelectedMediaItems.ToArray());
 }
Beispiel #8
0
 /// <summary>
 /// Plays the selected media items
 /// </summary>
 private void PlaySelectedMediaItems()
 {
     OnPlayMediaItems(SelectedMediaItems.ToArray(), 0);
 }