| 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() {
|
| }
|
| };
|
|
|