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
This commit is contained in:
Tanner Doshier 2012-11-26 16:55:25 -05:00 committed by Cosimo Cecchi
parent 72d54d9915
commit 2cc7fd07f8
2 changed files with 24 additions and 0 deletions

View File

@ -265,6 +265,13 @@ const RemoteSearchProvider = new Lang.Class({
activateResult: function(id) { activateResult: function(id) {
this.proxy.ActivateResultRemote(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) { _init: function(appInfo, dbusName, dbusPath) {
this.parent(appInfo, dbusName, dbusPath, SearchProvider2Proxy); this.parent(appInfo, dbusName, dbusPath, SearchProvider2Proxy);
this.canLaunchSearch = true;
}, },
activateResult: function(id) { activateResult: function(id) {
this.proxy.ActivateResultRemote(id, [], 0); this.proxy.ActivateResultRemote(id, [], 0);
},
launchSearch: function(terms) {
this.proxy.LaunchSearchRemote(terms);
} }
}); });

View File

@ -81,6 +81,7 @@ const SearchProvider = new Lang.Class({
this.appInfo = appInfo; this.appInfo = appInfo;
this.searchSystem = null; this.searchSystem = null;
this.isRemoteProvider = !!isRemoteProvider; this.isRemoteProvider = !!isRemoteProvider;
this.canLaunchSearch = false;
}, },
/** /**
@ -167,6 +168,16 @@ const SearchProvider = new Lang.Class({
*/ */
activateResult: function(id) { activateResult: function(id) {
throw new Error('Not implemented'); 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); Signals.addSignalMethods(SearchProvider.prototype);