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) {
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);
}
});

View File

@ -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);