[gnome-shell] search: Replace 'icon' property in metaInfo with a function
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] search: Replace 'icon' property in metaInfo with a function
- Date: Wed, 2 Mar 2011 22:13:15 +0000 (UTC)
commit 7723e59a724cdb391f9b70e6b4c5e0683908510e
Author: Florian Müllner <fmuellner gnome org>
Date: Mon Feb 28 20:36:52 2011 +0100
search: Replace 'icon' property in metaInfo with a function
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
js/ui/appDisplay.js | 5 ++++-
js/ui/docDisplay.js | 5 ++++-
js/ui/placeDisplay.js | 5 ++++-
js/ui/search.js | 7 +++----
js/ui/searchDisplay.js | 4 +---
5 files changed, 16 insertions(+), 10 deletions(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 364b637..b9f4b1f 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -251,7 +251,10 @@ BaseAppSearchProvider.prototype = {
return null;
return { 'id': resultId,
'name': app.get_name(),
- 'icon': app.create_icon_texture(Search.RESULT_ICON_SIZE)};
+ 'createIcon': function(size) {
+ return app.create_icon_texture(size);
+ }
+ };
},
activateResult: function(id, params) {
diff --git a/js/ui/docDisplay.js b/js/ui/docDisplay.js
index 85bbdf9..2687172 100644
--- a/js/ui/docDisplay.js
+++ b/js/ui/docDisplay.js
@@ -26,7 +26,10 @@ DocSearchProvider.prototype = {
return null;
return { 'id': resultId,
'name': docInfo.name,
- 'icon': docInfo.createIcon(Search.RESULT_ICON_SIZE)};
+ 'createIcon': function(size) {
+ return docInfo.createIcon(size);
+ }
+ };
},
activateResult: function(id, params) {
diff --git a/js/ui/placeDisplay.js b/js/ui/placeDisplay.js
index a44506e..450a7ba 100644
--- a/js/ui/placeDisplay.js
+++ b/js/ui/placeDisplay.js
@@ -415,7 +415,10 @@ PlaceSearchProvider.prototype = {
return null;
return { 'id': resultId,
'name': placeInfo.name,
- 'icon': placeInfo.iconFactory(Search.RESULT_ICON_SIZE) };
+ 'createIcon': function(size) {
+ return placeInfo.iconFactory(size);
+ }
+ };
},
activateResult: function(id, params) {
diff --git a/js/ui/search.js b/js/ui/search.js
index fce5866..7e30fc0 100644
--- a/js/ui/search.js
+++ b/js/ui/search.js
@@ -15,8 +15,6 @@ const Main = imports.ui.main;
const DISABLED_OPEN_SEARCH_PROVIDERS_KEY = 'disabled-open-search-providers';
-const RESULT_ICON_SIZE = 48;
-
// Not currently referenced by the search API, but
// this enumeration can be useful for provider
// implementations.
@@ -165,8 +163,9 @@ SearchProvider.prototype = {
* getResultInfo:
* @id: Result identifier string
*
- * Return an object with 'id', 'name', (both strings) and 'icon' (Clutter.Texture)
- * properties which describe the given search result.
+ * Return an object with 'id', 'name', (both strings) and 'createIcon'
+ * (function(size) returning a Clutter.Texture) properties which describe
+ * the given search result.
*/
getResultMeta: function(id) {
throw new Error('Not implemented');
diff --git a/js/ui/searchDisplay.js b/js/ui/searchDisplay.js
index 552737e..485620c 100644
--- a/js/ui/searchDisplay.js
+++ b/js/ui/searchDisplay.js
@@ -36,9 +36,7 @@ SearchResult.prototype = {
reactive: true,
track_hover: true });
let icon = new IconGrid.BaseIcon(this.metaInfo['name'],
- { createIcon: Lang.bind(this, function(size) {
- return this.metaInfo['icon'];
- })});
+ { createIcon: this.metaInfo['createIcon'] });
content.set_child(icon.actor);
}
this._content = content;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]