remoteSearch: Stop using callback to return loaded providers
Provider loading has been synchronous since 2013, so we can just as well return the results directly instead of passing them to a callback. Even if we returned to asynchronous loading in the future, we wouldn't want to use a callback, but make the function itself async. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2344>
This commit is contained in:
parent
4880364cd2
commit
1cce999c30
@ -60,7 +60,13 @@ const SearchProvider2Iface = `
|
||||
var SearchProviderProxyInfo = Gio.DBusInterfaceInfo.new_for_xml(SearchProviderIface);
|
||||
var SearchProvider2ProxyInfo = Gio.DBusInterfaceInfo.new_for_xml(SearchProvider2Iface);
|
||||
|
||||
function loadRemoteSearchProviders(searchSettings, callback) {
|
||||
/**
|
||||
* loadRemoteSearchProviders:
|
||||
*
|
||||
* @param {Gio.Settings} searchSettings - search settings
|
||||
* @returns {RemoteSearchProvider[]} - the list of remote providers
|
||||
*/
|
||||
function loadRemoteSearchProviders(searchSettings) {
|
||||
let objectPaths = {};
|
||||
let loadedProviders = [];
|
||||
|
||||
@ -130,10 +136,8 @@ function loadRemoteSearchProviders(searchSettings, callback) {
|
||||
}
|
||||
}
|
||||
|
||||
if (searchSettings.get_boolean('disable-external')) {
|
||||
callback([]);
|
||||
return;
|
||||
}
|
||||
if (searchSettings.get_boolean('disable-external'))
|
||||
return [];
|
||||
|
||||
FileUtils.collectFromDatadirs('search-providers', false, loadRemoteSearchProvider);
|
||||
|
||||
@ -184,7 +188,7 @@ function loadRemoteSearchProviders(searchSettings, callback) {
|
||||
return idxA - idxB;
|
||||
});
|
||||
|
||||
callback(loadedProviders);
|
||||
return loadedProviders;
|
||||
}
|
||||
|
||||
var RemoteSearchProvider = class {
|
||||
|
@ -615,9 +615,8 @@ var SearchResultsView = GObject.registerClass({
|
||||
this._unregisterProvider(provider);
|
||||
});
|
||||
|
||||
RemoteSearch.loadRemoteSearchProviders(this._searchSettings, providers => {
|
||||
providers.forEach(this._registerProvider.bind(this));
|
||||
});
|
||||
const providers = RemoteSearch.loadRemoteSearchProviders(this._searchSettings);
|
||||
providers.forEach(this._registerProvider.bind(this));
|
||||
}
|
||||
|
||||
_registerProvider(provider) {
|
||||
|
Loading…
Reference in New Issue
Block a user