Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(624)

Unified Diff: third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js

Issue 2599623002: DevTools: Show not found message in FilteredListWidgets (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js
diff --git a/third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js b/third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js
index 7cb25afe43d69abeea683fee6793bab7e874db82..d9a4d77a8a2f45e8666da4c89073aa7e2e18477d 100644
--- a/third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js
+++ b/third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js
@@ -74,11 +74,13 @@ UI.FilteredListWidget = class extends UI.VBox {
showAsDialog() {
this._dialog = new UI.Dialog();
+ this._dialog.setFixedHeight(false);
this._dialog.setMaxSize(new Size(504, 340));
this._dialog.setPosition(undefined, 22);
this.show(this._dialog.element);
this._dialog.show();
this._progressElementWidth = this._progressElement.offsetWidth;
+ this._updateShowMatchingItems();
}
/**
@@ -102,8 +104,6 @@ UI.FilteredListWidget = class extends UI.VBox {
*/
_onEnter(event) {
event.preventDefault();
- if (!this._delegate.itemCount())
- return;
var selectedIndex = this._shouldShowMatchingItems() && this._selectedIndexInFiltered < this._filteredItems.length ?
this._filteredItems[this._selectedIndexInFiltered] :
null;
@@ -135,8 +135,13 @@ UI.FilteredListWidget = class extends UI.VBox {
itemElement._titleElement = itemElement.createChild('div', 'filtered-list-widget-title');
itemElement._subtitleElement = itemElement.createChild('div', 'filtered-list-widget-subtitle');
itemElement._subtitleElement.textContent = '\u200B';
- itemElement._index = index;
- this._delegate.renderItem(index, this._value(), itemElement._titleElement, itemElement._subtitleElement);
+ if (index < this._filteredItems.length) {
+ var delegateIndex = this._filteredItems[index];
+ itemElement._index = delegateIndex;
+ this._delegate.renderItem(delegateIndex, this._value(), itemElement._titleElement, itemElement._subtitleElement);
+ } else {
+ itemElement._titleElement.textContent = this._delegate.notFoundText(this._value());
+ }
return itemElement;
}
@@ -147,6 +152,7 @@ UI.FilteredListWidget = class extends UI.VBox {
this._prompt.setText(query);
this._prompt.autoCompleteSoon(true);
this._scheduleFilter();
+ this._updateShowMatchingItems();
}
_tabKeyPressed() {
@@ -359,7 +365,7 @@ UI.FilteredListWidget = class extends UI.VBox {
_onClick(event) {
var itemElement = event.target.enclosingNodeOrSelfWithClass('filtered-list-widget-item');
- if (!itemElement)
+ if (!itemElement || !('_index' in itemElement))
return;
// Detach dialog before allowing delegate to override focus.
@@ -373,7 +379,7 @@ UI.FilteredListWidget = class extends UI.VBox {
* @return {number}
*/
itemCount() {
- return this._filteredItems.length;
+ return Math.max(this._filteredItems.length, 1);
}
/**
@@ -382,11 +388,10 @@ UI.FilteredListWidget = class extends UI.VBox {
* @return {number}
*/
fastItemHeight(index) {
- if (!this._rowHeight) {
- var delegateIndex = this._filteredItems[index];
- var element = this._createItemElement(delegateIndex);
- this._rowHeight = UI.measurePreferredSize(element, this._itemElementsContainer).height;
- }
+ if (!this._filteredItems.length)
+ return UI.measurePreferredSize(this._createItemElement(index), this._itemElementsContainer).height;
+ if (!this._rowHeight)
+ this._rowHeight = UI.measurePreferredSize(this._createItemElement(index), this._itemElementsContainer).height;
return this._rowHeight;
}
@@ -397,7 +402,7 @@ UI.FilteredListWidget = class extends UI.VBox {
*/
itemElement(index) {
if (!this._elements[index])
- this._elements[index] = this._createItemElement(this._filteredItems[index]);
+ this._elements[index] = this._createItemElement(index);
return this._elements[index];
}
};
@@ -565,6 +570,14 @@ UI.FilteredListWidget.Delegate = class {
return query;
}
+ /**
+ * @param {string} query
+ * @return {string}
+ */
+ notFoundText(query) {
+ return Common.UIString('No results found.');
+ }
+
dispose() {
}
};

Powered by Google App Engine
This is Rietveld 408576698