public void Dispose() { int track_index = current_track == null ? Count : Math.Max(0, TrackModel.IndexOf(current_track)); CurrentTrackSchema.Set(track_index); ServiceManager.PlayerEngine.DisconnectEvent(OnPlayerEvent); ServiceManager.PlaybackController.TrackStarted -= OnTrackStarted; if (actions != null) { actions.Dispose(); } UninstallPreferences(); Properties.Remove("Nereid.SourceContents.HeaderWidget"); if (header_widget != null) { header_widget.Destroy(); header_widget = null; } if (!Populate && ClearOnQuitSchema.Get()) { Clear(); } }
private void HandleReloaded(object sender, EventArgs e) { int track_index = CurrentTrackSchema.Get(); if (track_index < Count) { SetCurrentTrack(TrackModel[track_index] as DatabaseTrackInfo); } SetAsPlaybackSourceUnlessPlaying(); TrackModel.Reloaded -= HandleReloaded; }