searchDisplay: Remove the setResults/getResultsForDisplay dance

Now that we control our own destiny, I noticed that getResultsToDisplay
is the only user of this._notDisplayedResult, and it's called immediately
after setResults, which is the only thing that sets it. Just remove the
stateness entirely.

https://bugzilla.gnome.org/show_bug.cgi?id=693836
This commit is contained in:
Jasper St. Pierre 2013-02-08 18:42:03 -05:00
parent 1ec82d2ddd
commit a7e9655e32

View File

@ -186,7 +186,6 @@ const SearchResultsBase = new Lang.Class({
_init: function(provider) { _init: function(provider) {
this.provider = provider; this.provider = provider;
this._notDisplayedResult = [];
this._terms = []; this._terms = [];
this.actor = new St.BoxLayout({ style_class: 'search-section', this.actor = new St.BoxLayout({ style_class: 'search-section',
@ -202,7 +201,6 @@ const SearchResultsBase = new Lang.Class({
destroy: function() { destroy: function() {
this.actor.destroy(); this.actor.destroy();
this._notDisplayedResult = [];
this._terms = []; this._terms = [];
}, },
@ -214,31 +212,24 @@ const SearchResultsBase = new Lang.Class({
this.actor.hide(); this.actor.hide();
}, },
hasMoreResults: function() {
return this._notDisplayedResult.length > 0;
},
_keyFocusIn: function(icon) { _keyFocusIn: function(icon) {
this.emit('key-focus-in', icon); this.emit('key-focus-in', icon);
}, },
setResults: function(results, terms) {
// copy the lists
this._notDisplayedResult = results.slice(0);
this._terms = terms.slice(0);
},
_setMoreIconVisible: function(visible) { _setMoreIconVisible: function(visible) {
}, },
updateSearch: function(providerResults, terms, callback) { updateSearch: function(providerResults, terms, callback) {
this.setResults(providerResults, terms); this._terms = terms;
if (providerResults.length == 0) { if (providerResults.length == 0) {
this._clearResultDisplay(); this._clearResultDisplay();
this.actor.hide(); this.actor.hide();
callback(); callback();
} else { } else {
let results = this.getResultsForDisplay(); let maxResults = this._getMaxDisplayedResults();
let results = providerResults.slice(0, maxResults);
let hasMoreResults = results.length < providerResults.length;
this.provider.getResultMetas(results, Lang.bind(this, function(metas) { this.provider.getResultMetas(results, Lang.bind(this, function(metas) {
this.clear(); this.clear();
@ -249,7 +240,7 @@ const SearchResultsBase = new Lang.Class({
this.actor.hide(); this.actor.hide();
this._clearResultDisplay(); this._clearResultDisplay();
this._renderResults(metas); this._renderResults(metas);
this._setMoreIconVisible(this.hasMoreResults() && this.provider.canLaunchSearch); this._setMoreIconVisible(hasMoreResults && this.provider.canLaunchSearch);
this.actor.show(); this.actor.show();
callback(); callback();
})); }));
@ -288,10 +279,8 @@ const ListSearchResults = new Lang.Class({
this.providerIcon.moreIcon.visible = true; this.providerIcon.moreIcon.visible = true;
}, },
getResultsForDisplay: function() { _getMaxDisplayedResults: function() {
let canDisplay = MAX_LIST_SEARCH_RESULTS_ROWS; return MAX_LIST_SEARCH_RESULTS_ROWS;
let newResults = this._notDisplayedResult.splice(0, canDisplay);
return newResults;
}, },
_renderResults: function(metas) { _renderResults: function(metas) {
@ -330,10 +319,8 @@ const GridSearchResults = new Lang.Class({
this._resultDisplayBin.set_child(this._bin); this._resultDisplayBin.set_child(this._bin);
}, },
getResultsForDisplay: function() { _getMaxDisplayedResults: function() {
let canDisplay = this._grid.childrenInRow(this._bin.width) * this._grid.getRowLimit(); return this._grid.childrenInRow(this._bin.width) * this._grid.getRowLimit();
let newResults = this._notDisplayedResult.splice(0, canDisplay);
return newResults;
}, },
_renderResults: function(metas) { _renderResults: function(metas) {