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); } }
public FileSystemQueueSource() : base(Catalog.GetString("File System Queue"), Catalog.GetString("File System Queue"), "file-system-queue", 30) { TypeUniqueId = "file-system-queue"; Properties.SetStringList("Icon.Name", "system-file-manager"); Properties.Set <bool> ("AutoAddSource", false); IsLocal = true; ServiceManager.Get <DBusCommandService> ().ArgumentPushed += OnCommandLineArgument; AfterInitialized(); InterfaceActionService uia_service = ServiceManager.Get <InterfaceActionService> (); uia_service.GlobalActions.AddImportant( new ActionEntry("ClearFileSystemQueueAction", Stock.Clear, Catalog.GetString("Clear"), null, Catalog.GetString("Remove all tracks from the file system queue"), OnClearFileSystemQueue) ); uia_service.GlobalActions.Add(new ToggleActionEntry [] { new ToggleActionEntry("ClearFileSystemQueueOnQuitAction", null, Catalog.GetString("Clear on Quit"), null, Catalog.GetString("Clear the file system queue when quitting"), OnClearFileSystemQueueOnQuit, ClearOnQuitSchema.Get()) }); uia_service.UIManager.AddUiFromResource("GlobalUI.xml"); Properties.SetString("ActiveSourceUIResource", "ActiveSourceUI.xml"); Properties.SetString("GtkActionPath", "/FileSystemQueueContextMenu"); actions_loaded = true; UpdateActions(); ServiceManager.SourceManager.ActiveSourceChanged += delegate { ThreadAssist.ProxyToMain(UpdateActions); }; TrackModel.Reloaded += OnTrackModelReloaded; Reload(); play_enqueued = ApplicationContext.CommandLine.Contains("play-enqueued"); foreach (string path in ApplicationContext.CommandLine.Files) { // If it looks like a URI with a protocol, leave it as is if (System.Text.RegularExpressions.Regex.IsMatch(path, "^\\w+\\:\\/")) { Log.DebugFormat("URI file : {0}", path); Enqueue(path); } else { Log.DebugFormat("Relative file : {0} -> {1}", path, Path.GetFullPath(path)); Enqueue(Path.GetFullPath(path)); } } StorageName = null; }
public override void Dispose() { ServiceManager.Get <DBusCommandService> ().ArgumentPushed -= OnCommandLineArgument; if (ClearOnQuitSchema.Get()) { OnClearFileSystemQueue(this, EventArgs.Empty); } base.Dispose(); }
public override void Dispose() { ServiceManager.Get <DBusCommandService> ().ArgumentPushed -= OnCommandLineArgument; ServiceManager.SourceManager.MusicLibrary.TracksAdded -= OnTracksImported; if (ClearOnQuitSchema.Get()) { OnClearFileSystemQueue(this, EventArgs.Empty); } base.Dispose(); }
private void OnClearFileSystemQueueOnQuit(object o, EventArgs args) { InterfaceActionService uia_service = ServiceManager.Get <InterfaceActionService> (); if (uia_service == null) { return; } ToggleAction action = (ToggleAction)uia_service.GlobalActions["ClearFileSystemQueueOnQuitAction"]; ClearOnQuitSchema.Set(action.Active); }