Skip to content

Commit 5deb83e

Browse files
danilsomsikovDevtools-frontend LUCI CQ
authored andcommitted
Simplify FilteredListWidget CSS
Bug: 414792736 Change-Id: I6522ab09e67cfc8952c54fb11e0b1f03f614d2f3 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7201027 Reviewed-by: Simon Zünd <[email protected]> Auto-Submit: Danil Somsikov <[email protected]> Commit-Queue: Simon Zünd <[email protected]>
1 parent 2952b6c commit 5deb83e

File tree

13 files changed

+88
-91
lines changed

13 files changed

+88
-91
lines changed

config/gni/devtools_grd_files.gni

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1933,6 +1933,7 @@ grd_files_unbundled_sources = [
19331933
"front_end/panels/sources/components/HeadersView.js",
19341934
"front_end/panels/sources/debuggerPausedMessage.css.js",
19351935
"front_end/panels/sources/dialog.css.js",
1936+
"front_end/panels/sources/filteredUISourceCodeListProvider.css.js",
19361937
"front_end/panels/sources/navigatorTree.css.js",
19371938
"front_end/panels/sources/navigatorView.css.js",
19381939
"front_end/panels/sources/scopeChainSidebarPane.css.js",

front_end/panels/snippets/SnippetsQuickOpen.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ export class SnippetsQuickOpen extends QuickOpen.FilteredListWidget.Provider {
8282
}
8383

8484
override renderItem(itemIndex: number, query: string, wrapperElement: Element): void {
85-
const itemElement = wrapperElement.createChild('div', 'filtered-list-widget-item one-row');
86-
const titleElement = itemElement.createChild('div', 'filtered-list-widget-title');
85+
const itemElement = wrapperElement.createChild('div');
86+
const titleElement = itemElement.createChild('div');
8787
const icon = IconButton.Icon.create('snippet', 'snippet');
8888
wrapperElement.insertBefore(icon, itemElement);
8989
titleElement.textContent = this.snippets[itemIndex].name();

front_end/panels/sources/BUILD.gn

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ generate_css("css_files") {
1515
"callStackSidebarPane.css",
1616
"debuggerPausedMessage.css",
1717
"dialog.css",
18+
"filteredUISourceCodeListProvider.css",
1819
"navigatorTree.css",
1920
"navigatorView.css",
2021
"scopeChainSidebarPane.css",

front_end/panels/sources/FilteredUISourceCodeListProvider.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import * as QuickOpen from '../../ui/legacy/components/quick_open/quick_open.js'
1111
import * as UI from '../../ui/legacy/legacy.js';
1212

1313
import {FilePathScoreFunction} from './FilePathScoreFunction.js';
14+
import filteredUISourceCodeListProviderStyles from './filteredUISourceCodeListProvider.css.js';
1415

1516
const UIStrings = {
1617
/**
@@ -144,11 +145,12 @@ export class FilteredUISourceCodeListProvider extends QuickOpen.FilteredListWidg
144145
}
145146

146147
override renderItem(itemIndex: number, query: string, wrapperElement: Element): void {
147-
const itemElement = wrapperElement.createChild('div', 'filtered-list-widget-item two-rows');
148+
wrapperElement.createChild('style').textContent = filteredUISourceCodeListProviderStyles;
149+
const itemElement = wrapperElement.createChild('div', 'filtered-ui-source-code-list-item');
148150

149-
const titleElement = itemElement.createChild('div', 'filtered-list-widget-title');
151+
const titleElement = itemElement.createChild('div', 'filtered-ui-source-code-title');
150152

151-
wrapperElement.classList.toggle('search-mode', Boolean(query));
153+
titleElement.classList.toggle('search-mode', Boolean(query));
152154
query = this.rewriteQuery(query);
153155
const uiSourceCode = this.uiSourceCodes[itemIndex];
154156
const fullDisplayName = uiSourceCode.fullDisplayName();
@@ -166,7 +168,7 @@ export class FilteredUISourceCodeListProvider extends QuickOpen.FilteredListWidg
166168
}
167169

168170
titleElement.textContent = uiSourceCode.displayName() + (this.queryLineNumberAndColumnNumber || '');
169-
const subtitleElement = itemElement.createChild('div', 'filtered-list-widget-subtitle');
171+
const subtitleElement = itemElement.createChild('div', 'filtered-ui-source-code-subtitle');
170172
this.renderSubtitleElement(subtitleElement, fullDisplayName.substring(0, fileNameIndex + 1));
171173
UI.Tooltip.Tooltip.install((subtitleElement as HTMLElement), tooltipText);
172174

front_end/panels/sources/GoToLineQuickOpen.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ export class GoToLineQuickOpen extends QuickOpen.FilteredListWidget.Provider {
7878
}
7979

8080
override renderItem(itemIndex: number, _query: string, wrapperElement: Element): void {
81-
const itemElement = wrapperElement.createChild('div', 'filtered-list-widget-item one-row');
82-
const titleElement = itemElement.createChild('div', 'filtered-list-widget-title');
81+
const itemElement = wrapperElement.createChild('div');
82+
const titleElement = itemElement.createChild('div');
8383
const icon = IconButton.Icon.create('colon');
8484
wrapperElement.insertBefore(icon, itemElement);
8585
UI.UIUtils.createTextChild(titleElement, this.#goToLineStrings[itemIndex]);

front_end/panels/sources/OutlineQuickOpen.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -319,8 +319,8 @@ export class OutlineQuickOpen extends QuickOpen.FilteredListWidget.Provider {
319319

320320
override renderItem(itemIndex: number, query: string, wrapperElement: Element): void {
321321
const item = this.items[itemIndex];
322-
const itemElement = wrapperElement.createChild('div', 'filtered-list-widget-item one-row');
323-
const titleElement = itemElement.createChild('div', 'filtered-list-widget-title');
322+
const itemElement = wrapperElement.createChild('div');
323+
const titleElement = itemElement.createChild('div');
324324

325325
const icon = IconButton.Icon.create('deployed');
326326
wrapperElement.insertBefore(icon, itemElement);
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
* Copyright 2025 The Chromium Authors
3+
* Use of this source code is governed by a BSD-style license that can be
4+
* found in the LICENSE file.
5+
*/
6+
7+
.filtered-list-widget-item > .filtered-ui-source-code-list-item {
8+
align-content: center;
9+
display: grid;
10+
gap: var(--sys-size-2);
11+
line-height: initial;
12+
}
13+
14+
.filtered-ui-source-code-list-item.is-ignore-listed * {
15+
color: var(--sys-color-state-disabled);
16+
}
17+
18+
.filtered-ui-source-code-title {
19+
overflow: hidden;
20+
text-overflow: ellipsis;
21+
}
22+
23+
.filtered-ui-source-code-title:not(.search-mode) {
24+
font-weight: var(--ref-typeface-weight-bold);
25+
}
26+
27+
.filtered-ui-source-code-subtitle {
28+
flex: none;
29+
overflow: hidden;
30+
text-overflow: ellipsis;
31+
color: var(--sys-color-on-surface-subtle);
32+
padding-left: var(--sys-size-3);
33+
display: flex;
34+
white-space: pre;
35+
}
36+
37+
.filtered-ui-source-code-subtitle .first-part {
38+
flex-shrink: 1000;
39+
overflow: hidden;
40+
text-overflow: ellipsis;
41+
}

front_end/ui/legacy/components/quick_open/CommandMenu.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -343,16 +343,16 @@ export class CommandMenuProvider extends Provider {
343343
override renderItem(itemIndex: number, query: string, wrapperElement: Element): void {
344344
const command = this.commands[itemIndex];
345345

346-
const itemElement = wrapperElement.createChild('div', 'filtered-list-widget-item one-row');
347-
const titleElement = itemElement.createChild('div', 'filtered-list-widget-title');
346+
const itemElement = wrapperElement.createChild('div');
347+
const titleElement = itemElement.createChild('div');
348348

349349
titleElement.removeChildren();
350350
const icon = IconButton.Icon.create(categoryIcons[command.category]);
351351
wrapperElement.insertBefore(icon, itemElement);
352352
UI.UIUtils.createTextChild(titleElement, command.title);
353353
FilteredListWidget.highlightRanges(titleElement, query, true);
354354

355-
const subtitleElement = itemElement.createChild('div', 'filtered-list-widget-subtitle');
355+
const subtitleElement = itemElement.createChild('div');
356356
if (command.featurePromotionId) {
357357
const badge = UI.UIUtils.maybeCreateNewBadge(command.featurePromotionId);
358358
if (badge) {

front_end/ui/legacy/components/quick_open/FilteredListWidget.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ export class FilteredListWidget extends Common.ObjectWrapper.eventMixin<EventTyp
282282

283283
createElementForItem(item: number): Element {
284284
const wrapperElement = document.createElement('div');
285-
wrapperElement.className = 'filtered-list-widget-item-wrapper';
285+
wrapperElement.className = 'filtered-list-widget-item';
286286

287287
if (this.provider) {
288288
this.provider.renderItem(item, this.cleanValue(), wrapperElement);

front_end/ui/legacy/components/quick_open/HelpQuickOpen.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ export class HelpQuickOpen extends Provider {
4747
override renderItem(itemIndex: number, _query: string, wrapperElement: Element): void {
4848
const provider = this.providers[itemIndex];
4949

50-
const itemElement = wrapperElement.createChild('div', 'filtered-list-widget-item one-row');
51-
const titleElement = itemElement.createChild('div', 'filtered-list-widget-title');
50+
const itemElement = wrapperElement.createChild('div');
51+
const titleElement = itemElement.createChild('div');
5252

5353
const iconElement = new IconButton.Icon.Icon();
5454
iconElement.name = provider.iconName;

0 commit comments

Comments
 (0)