private void TrackButton_Click(object sender, RoutedEventArgs e) { var index = ItemsControlHelper.FindIndexByItemChild(panelTracks, sender as DependencyObject); if (index == -1) { return; } var playQueue = PlayQueueManager.GetInstance(); var track = playQueue.FromTracks(Tracks.ToArray(), index); playQueue.AddPlayedIndex(); var playback = PlaybackManager.GetInstance(); playback.Play(track); var app = (App)Application.Current; app.config.LastPlaylist = Playlist.MetadataUrl; var mainWindow = MainWindow.GetInstance(); mainWindow.GoToPlayQueue(); }
private async void TrackButton_DeleteClick(object sender, RoutedEventArgs e) { var index = ItemsControlHelper.FindIndexByItemChild(panelTracks, sender as DependencyObject); if (index == -1) { return; } var track = Tracks[index]; if (MessageBox.Show("Do you really want to remove it from your playlist?", "PlexFlux", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { var app = (App)Application.Current; try { Playlist = await app.plexClient.DeleteTrackFromPlaylist(track, Playlist); } catch (WebException exception) { MessageBox.Show("Could not send data to remote server.\n" + exception.Message, "PlexFlux", MessageBoxButton.OK, MessageBoxImage.Exclamation); } finally { Page_Loaded(sender, e); } } }
private void TrackButton_DeleteClick(object sender, RoutedEventArgs e) { var index = ItemsControlHelper.FindIndexByItemChild(panelTracks, sender as DependencyObject); if (index == -1) { return; } var playQueue = PlayQueueManager.GetInstance(); playQueue.Remove(index); }
void IDropTarget.Drop(IDropInfo dropInfo) { var source = (Component.TrackButton)VisualTreeHelper.GetChild(dropInfo.DragInfo.VisualSourceItem, 0); int sourceIdx = ItemsControlHelper.FindIndexByItemChild(panelTracks, source); int targetIdx = dropInfo.InsertIndex; if (sourceIdx == targetIdx || sourceIdx == -1 || targetIdx == -1) { return; } var playQueue = PlayQueueManager.GetInstance(); playQueue.Rearrange(sourceIdx, targetIdx); }
private void TrackButton_Click(object sender, RoutedEventArgs e) { var index = ItemsControlHelper.FindIndexByItemChild(panelTracks, sender as DependencyObject); if (index == -1) { return; } var upcomings = UpcomingManager.GetInstance(); var track = upcomings.Remove(index); var playback = PlaybackManager.GetInstance(); playback.Play(track); }
private void MenuItem_Play_Click(object sender, RoutedEventArgs e) { var button = (Component.TrackButton)((ContextMenu)((MenuItem)e.Source).Parent).PlacementTarget; var index = ItemsControlHelper.FindIndexByItemChild(panelTracks, button); var playQueue = PlayQueueManager.GetInstance(); var track = playQueue.FromTracks(Tracks, index); playQueue.AddPlayedIndex(); var playback = PlaybackManager.GetInstance(); playback.Play(track); var mainWindow = MainWindow.GetInstance(); mainWindow.GoToPlayQueue(); }
async void IDropTarget.Drop(IDropInfo dropInfo) { var source = (Component.TrackButton)VisualTreeHelper.GetChild(dropInfo.DragInfo.VisualSourceItem, 0); int sourceIdx = ItemsControlHelper.FindIndexByItemChild(panelTracks, source); int targetIdx = dropInfo.InsertIndex - 1; // nothing need to work if (sourceIdx == targetIdx) { return; } if (sourceIdx > targetIdx) { targetIdx--; } var sourceItem = dropInfo.Data as PlexTrack; var targetItem = targetIdx == -1 ? null : ((Component.TrackButton)ItemsControlHelper.GetItemChildByIndex(panelTracks, targetIdx)).Track; // move it panelTracks.IsEnabled = false; var app = (App)Application.Current; try { await app.plexClient.MoveTrackInPlaylist(Playlist, sourceItem, targetItem); // update UI Tracks.Remove(sourceItem); Tracks.Insert(targetIdx == -1 ? 0 : targetIdx, sourceItem); } catch { MessageBox.Show("Failed to update data in the remote server.", "PlexFlux", MessageBoxButton.OK, MessageBoxImage.Exclamation); } finally { panelTracks.IsEnabled = true; } }
private void TrackButton_Click(object sender, RoutedEventArgs e) { var button = (Component.TrackButton)sender; var index = ItemsControlHelper.FindIndexByItemChild(panelTracks, button); if (index == -1) { return; } skipNextCurrentChanged = true; var playQueue = PlayQueueManager.GetInstance(); playQueue.Play(index); var playback = PlaybackManager.GetInstance(); playback.Play(button.Track); }