7723e59a72
Search results' meta info currently is expected to have an 'icon' property holding a Clutter.Texture of a fixed icon size. This property is used to implement the createIcon() function of BaseIcon, which is used to actually display the result, ignoring the size parameter due to the fixed icon size. Given that all available search providers create this property for the desired icon size using a function with the same signature, it appears logical to replace the fixed-sized 'icon' property with such a function, so that the icon size will be defined by the display actor rather than the search system. https://bugzilla.gnome.org/show_bug.cgi?id=643632
51 lines
1.5 KiB
JavaScript
51 lines
1.5 KiB
JavaScript
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
|
|
const Gettext = imports.gettext.domain('gnome-shell');
|
|
const _ = Gettext.gettext;
|
|
|
|
const DocInfo = imports.misc.docInfo;
|
|
const Params = imports.misc.params;
|
|
const Search = imports.ui.search;
|
|
|
|
|
|
function DocSearchProvider() {
|
|
this._init();
|
|
}
|
|
|
|
DocSearchProvider.prototype = {
|
|
__proto__: Search.SearchProvider.prototype,
|
|
|
|
_init: function(name) {
|
|
Search.SearchProvider.prototype._init.call(this, _("RECENT ITEMS"));
|
|
this._docManager = DocInfo.getDocManager();
|
|
},
|
|
|
|
getResultMeta: function(resultId) {
|
|
let docInfo = this._docManager.lookupByUri(resultId);
|
|
if (!docInfo)
|
|
return null;
|
|
return { 'id': resultId,
|
|
'name': docInfo.name,
|
|
'createIcon': function(size) {
|
|
return docInfo.createIcon(size);
|
|
}
|
|
};
|
|
},
|
|
|
|
activateResult: function(id, params) {
|
|
params = Params.parse(params, { workspace: null,
|
|
timestamp: null });
|
|
|
|
let docInfo = this._docManager.lookupByUri(id);
|
|
docInfo.launch(params.workspace ? params.workspace.index() : -1);
|
|
},
|
|
|
|
getInitialResultSet: function(terms) {
|
|
return this._docManager.initialSearch(terms);
|
|
},
|
|
|
|
getSubsearchResultSet: function(previousResults, terms) {
|
|
return this._docManager.subsearch(previousResults, terms);
|
|
}
|
|
};
|