public void Dispose ()
{
int track_index = current_track == null ? Count : Math.Max (0, TrackModel.IndexOf (current_track));
DatabaseConfigurationClient.Client.Set (CurrentTrackSchema, 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 (ClearOnQuitSchema.Get ()) {
Clear (true);
}
}