[gnome-shell] remote-search: implement LaunchSearch() DBus method



commit 2cc7fd07f89ae7af555ca369200e2befcb590e22
Author: Tanner Doshier <doshitan gmail com>
Date:   Mon Nov 26 16:55:25 2012 -0500

    remote-search: implement LaunchSearch() DBus method
    
    This will be used to launch a search in the application itself.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=689735

 js/ui/remoteSearch.js |   13 +++++++++++++
 js/ui/search.js       |   11 +++++++++++
 2 files changed, 24 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/remoteSearch.js b/js/ui/remoteSearch.js
index 1a3132f..5e9ee89 100644
--- a/js/ui/remoteSearch.js
+++ b/js/ui/remoteSearch.js
@@ -265,6 +265,13 @@ const RemoteSearchProvider = new Lang.Class({
 
     activateResult: function(id) {
         this.proxy.ActivateResultRemote(id);
+    },
+
+    launchSearch: function(terms) {
+        // the provider is not compatible with the new version of the interface, launch
+        // the app itself but warn so we can catch the error in logs
+        log('Search provider ' + this.appInfo.get_id() + ' does not implement LaunchSearch');
+        this.appInfo.launch([], global.create_app_launch_context());
     }
 });
 
@@ -274,9 +281,15 @@ const RemoteSearchProvider2 = new Lang.Class({
 
     _init: function(appInfo, dbusName, dbusPath) {
         this.parent(appInfo, dbusName, dbusPath, SearchProvider2Proxy);
+
+        this.canLaunchSearch = true;
     },
 
     activateResult: function(id) {
         this.proxy.ActivateResultRemote(id, [], 0);
+    },
+
+    launchSearch: function(terms) {
+        this.proxy.LaunchSearchRemote(terms);
     }
 });
diff --git a/js/ui/search.js b/js/ui/search.js
index 2e746d8..e21c2a7 100644
--- a/js/ui/search.js
+++ b/js/ui/search.js
@@ -81,6 +81,7 @@ const SearchProvider = new Lang.Class({
         this.appInfo = appInfo;
         this.searchSystem = null;
         this.isRemoteProvider = !!isRemoteProvider;
+        this.canLaunchSearch = false;
     },
 
     /**
@@ -167,6 +168,16 @@ const SearchProvider = new Lang.Class({
      */
     activateResult: function(id) {
         throw new Error('Not implemented');
+    },
+
+    /**
+     * launchSearch:
+     * @terms: Current search terms
+     *
+     * Called when the user clicks the provider icon.
+     */
+    launchSearch: function(terms) {
+        throw new Error('Not implemented');
     }
 });
 Signals.addSignalMethods(SearchProvider.prototype);



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