public new void DragOver(Controls.DragDrop.IDropInfo dropInfo) { if (Playlist.IsCDInPlaylist) { bool trackOfCDDropped = false; if (dropInfo.Data is Track || dropInfo.Data is List <Track> ) { // Prüfen, ob ein Track einer CD gedropped wurde MainCDUserControl mainCDUserControl = VisualTreeExtensions.FindParent <MainCDUserControl>(dropInfo.DragInfo.VisualSource); if (mainCDUserControl != null) { trackOfCDDropped = true; } } if (dropInfo.Data is PlaylistItem) { trackOfCDDropped = true; } if (!trackOfCDDropped) { dropInfo.Effects = DragDropEffects.None; return; } } dropInfo.DropTargetAdorner = Big3.Hitbase.Controls.DragDrop.DropTargetAdorners.Insert; if (dropInfo.Data is PlaylistItem) { dropInfo.Effects = DragDropEffects.Move; } if (dropInfo.Data is Big3.Hitbase.CDUtilities.WishlistItem) { dropInfo.Effects = DragDropEffects.Copy; } if (dropInfo.Data is AlbumItem) { dropInfo.Effects = DragDropEffects.Copy; } if (dropInfo.Data is AlbumViewItem) { dropInfo.Effects = DragDropEffects.Copy; } if (dropInfo.Data is Track || dropInfo.Data is List <Track> ) { dropInfo.Effects = DragDropEffects.Copy; } if (dropInfo.Data is MyMusicListItem || dropInfo.Data is List <MyMusicListItem> ) { dropInfo.Effects = DragDropEffects.Copy; } if (dropInfo.Data is DataObject) { DataObject dataObject = dropInfo.Data as DataObject; if (dataObject.GetDataPresent(DataFormats.FileDrop)) { dropInfo.Effects = DragDropEffects.Copy; } } }
public new void Drop(Controls.DragDrop.IDropInfo dropInfo) { if (dropInfo.Data is PlaylistItem) { Controls.DragDrop.DragDrop.DefaultDropHandler.Drop(dropInfo); } if (dropInfo.Data is Big3.Hitbase.CDUtilities.WishlistItem) { Big3.Hitbase.CDUtilities.WishlistItem wishlistItem = dropInfo.Data as Big3.Hitbase.CDUtilities.WishlistItem; AddTracksToPlaylistParameter addTracksParams = new AddTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; addTracksParams.TrackIds.Add(wishlistItem.TrackID); HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } if (dropInfo.Data is AlbumViewItem) { AlbumViewItem item = dropInfo.Data as AlbumViewItem; CD cd = DataBase.GetCDById(item.ID); AddTracksToPlaylistParameter addTracksParams = new AddTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; foreach (Track track in cd.Tracks) { addTracksParams.TrackIds.Add(track.ID); } HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } if (dropInfo.Data is AlbumItem) { AlbumItem item = dropInfo.Data as AlbumItem; CD cd = DataBase.GetCDById(item.ID); AddTracksToPlaylistParameter addTracksParams = new AddTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; foreach (Track track in cd.Tracks) { addTracksParams.TrackIds.Add(track.ID); } HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } if (dropInfo.Data is Track || dropInfo.Data is List <Track> ) { // Prüfen, ob ein Track einer CD gedropped wurde MainCDUserControl mainCDUserControl = VisualTreeExtensions.FindParent <MainCDUserControl>(dropInfo.DragInfo.VisualSource); if (mainCDUserControl != null) { Track track = dropInfo.Data as Track; List <Track> trackList = dropInfo.Data as List <Track>; AddCDTracksToPlaylistParameter addTracksParams = new AddCDTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; if (track != null) { addTracksParams.Tracks.Add(track); } if (trackList != null) { addTracksParams.Tracks.AddRange(trackList); } HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } else { Track track = dropInfo.Data as Track; List <Track> trackList = dropInfo.Data as List <Track>; AddTracksToPlaylistParameter addTracksParams = new AddTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; if (track != null) { addTracksParams.TrackIds.Add(track.ID); } if (trackList != null) { foreach (Track trackItem in trackList) { addTracksParams.TrackIds.Add(trackItem.ID); } } HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } } if (dropInfo.Data is MyMusicListItem) { MyMusicListItem item = dropInfo.Data as MyMusicListItem; AddTracksToPlaylistParameter addTracksParams = new AddTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; addTracksParams.TrackIds.Add(item.ID); HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } if (dropInfo.Data is List <MyMusicListItem> ) { List <MyMusicListItem> items = dropInfo.Data as List <MyMusicListItem>; AddTracksToPlaylistParameter addTracksParams = new AddTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; foreach (MyMusicListItem item in items) { addTracksParams.TrackIds.Add(item.ID); } HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } if (dropInfo.Data is DataObject) { DataObject dataObject = dropInfo.Data as DataObject; if (dataObject.GetDataPresent(DataFormats.FileDrop)) { AddTracksToPlaylistParameter addTracksParams = new AddTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; foreach (string item in dataObject.GetFileDropList()) { addTracksParams.Filenames.Add(item); } HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } } }
public new void Drop(Controls.DragDrop.IDropInfo dropInfo) { List <WishlistItem> wishlistItems = new List <WishlistItem>(); if (dropInfo.Data is PlaylistItem) { PlaylistItem playlistItem = dropInfo.Data as PlaylistItem; WishlistItem item = new WishlistItem(); item.Artist = playlistItem.Info.Artist; item.Title = playlistItem.Info.Title; item.TrackID = playlistItem.ID; wishlistItems.Add(item); } if (dropInfo.Data is Track || dropInfo.Data is List <Track> ) { // Prüfen, ob ein Track einer CD gedropped wurde MainCDUserControl mainCDUserControl = VisualTreeExtensions.FindParent <MainCDUserControl>(dropInfo.DragInfo.VisualSource); if (mainCDUserControl != null) { } else { Track track = dropInfo.Data as Track; List <Track> trackList = dropInfo.Data as List <Track>; if (track != null) { WishlistItem item = GetWishlistItemByTrack(track); wishlistItems.Add(item); } if (trackList != null) { foreach (Track trackItem in trackList) { WishlistItem item = GetWishlistItemByTrack(track); wishlistItems.Add(item); } } } } if (dropInfo.Data is MyMusicListItem) { MyMusicListItem item = dropInfo.Data as MyMusicListItem; Track track = DataBase.GetTrackById(item.ID); AddTracksToPlaylistParameter addTracksParams = new AddTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; addTracksParams.Filenames.Add(track.Soundfile); HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } if (dropInfo.Data is List <MyMusicListItem> ) { List <MyMusicListItem> items = dropInfo.Data as List <MyMusicListItem>; AddTracksToPlaylistParameter addTracksParams = new AddTracksToPlaylistParameter(); addTracksParams.AddTracksType = AddTracksToPlaylistType.InsertAtIndex; addTracksParams.InsertIndex = dropInfo.InsertIndex; foreach (MyMusicListItem item in items) { addTracksParams.Filenames.Add(item.Soundfile); } HitbaseCommands.AddTracksToPlaylist.Execute(addTracksParams, this); } if (wishlistItems.Count > 0) { HitbaseCommands.AddToWishlist.Execute(wishlistItems, System.Windows.Application.Current.MainWindow); } }