コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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;
        }
コード例 #3
0
 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();
 }
コード例 #5
0
        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);
        }