[gnome-shell] search: add API to get a list of remote providers



commit 80e7f5832bdd3b77d969d2813c6439e222d1176c
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Tue Nov 6 18:42:33 2012 -0500

    search: add API to get a list of remote providers
    
    This will be used to reload them in case the configuration changes.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=687491

 js/ui/remoteSearch.js |    2 +-
 js/ui/search.js       |   15 ++++++++++++++-
 2 files changed, 15 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/remoteSearch.js b/js/ui/remoteSearch.js
index 21e3d0f..16c0910 100644
--- a/js/ui/remoteSearch.js
+++ b/js/ui/remoteSearch.js
@@ -114,7 +114,7 @@ const RemoteSearchProvider = new Lang.Class({
         this._proxy = new SearchProviderProxy(Gio.DBus.session,
             dbusName, dbusPath, Lang.bind(this, this._onProxyConstructed));
 
-        this.parent(appInfo.get_name().toUpperCase(), appInfo);
+        this.parent(appInfo.get_name().toUpperCase(), appInfo, true);
         this._cancellable = new Gio.Cancellable();
     },
 
diff --git a/js/ui/search.js b/js/ui/search.js
index f106e91..bc50cb0 100644
--- a/js/ui/search.js
+++ b/js/ui/search.js
@@ -74,10 +74,11 @@ const SearchResultDisplay = new Lang.Class({
 const SearchProvider = new Lang.Class({
     Name: 'SearchProvider',
 
-    _init: function(title, appInfo) {
+    _init: function(title, appInfo, isRemoteProvider) {
         this.title = title;
         this.appInfo = appInfo;
         this.searchSystem = null;
+        this.isRemoteProvider = !!isRemoteProvider;
     },
 
     /**
@@ -173,12 +174,16 @@ const SearchSystem = new Lang.Class({
 
     _init: function() {
         this._providers = [];
+        this._remoteProviders = [];
         this.reset();
     },
 
     registerProvider: function (provider) {
         provider.searchSystem = this;
         this._providers.push(provider);
+
+        if (provider.isRemoteProvider)
+            this._remoteProviders.push(provider);
     },
 
     unregisterProvider: function (provider) {
@@ -187,12 +192,20 @@ const SearchSystem = new Lang.Class({
             return;
         provider.searchSystem = null;
         this._providers.splice(index, 1);
+
+        let remoteIndex = this._remoteProviders.indexOf(provider);
+        if (remoteIndex != -1)
+            this._remoteProviders.splice(index, 1);
     },
 
     getProviders: function() {
         return this._providers;
     },
 
+    getRemoteProviders: function() {
+        return this._remoteProviders;
+    },
+
     getTerms: function() {
         return this._previousTerms;
     },



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]