Skip to content

Commit 49c61d1

Browse files
Kateryna ProkopenkoDevtools-frontend LUCI CQ
authored andcommitted
[GM3Restyling] Remove adorner settings pane in favour of a submenu
Screenshot: https://imgur.com/a/9jpWWW8 Bug: 325442993 Change-Id: Ibc7240e3fc5d3405c2589c2e5e39ecc6cc2e92e2 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/5987922 Auto-Submit: Kateryna Prokopenko <[email protected]> Reviewed-by: Kim-Anh Tran <[email protected]> Commit-Queue: Kim-Anh Tran <[email protected]>
1 parent 32ecd4e commit 49c61d1

File tree

9 files changed

+37
-238
lines changed

9 files changed

+37
-238
lines changed

config/gni/devtools_grd_files.gni

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1350,7 +1350,6 @@ grd_files_debug_sources = [
13501350
"front_end/panels/elements/classesPaneWidget.css.js",
13511351
"front_end/panels/elements/components/AccessibilityTreeNode.js",
13521352
"front_end/panels/elements/components/AdornerManager.js",
1353-
"front_end/panels/elements/components/AdornerSettingsPane.js",
13541353
"front_end/panels/elements/components/AnchorFunctionLinkSwatch.js",
13551354
"front_end/panels/elements/components/CSSHintDetailsView.js",
13561355
"front_end/panels/elements/components/CSSPropertyDocsView.js",
@@ -1368,7 +1367,6 @@ grd_files_debug_sources = [
13681367
"front_end/panels/elements/components/QueryContainer.js",
13691368
"front_end/panels/elements/components/StylePropertyEditor.js",
13701369
"front_end/panels/elements/components/accessibilityTreeNode.css.js",
1371-
"front_end/panels/elements/components/adornerSettingsPane.css.js",
13721370
"front_end/panels/elements/components/anchorFunctionLinkSwatch.css.js",
13731371
"front_end/panels/elements/components/computedStyleProperty.css.js",
13741372
"front_end/panels/elements/components/computedStyleTrace.css.js",

front_end/panels/elements/ElementsPanel.ts

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,10 @@ const UIStrings = {
145145
* @description Accessible name for the DOM tree explorer view.
146146
*/
147147
domTreeExplorer: 'DOM tree explorer',
148+
/**
149+
* @description A context menu item to reveal a submenu with badge settings.
150+
*/
151+
adornerSettings: 'Badge settings',
148152
};
149153

150154
const str_ = i18n.i18n.registerUIStrings('panels/elements/ElementsPanel.ts', UIStrings);
@@ -202,7 +206,6 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
202206
private currentSearchResultIndex: number;
203207
pendingNodeReveal: boolean;
204208
private readonly adornerManager: ElementsComponents.AdornerManager.AdornerManager;
205-
private adornerSettingsPane: ElementsComponents.AdornerSettingsPane.AdornerSettingsPane|null;
206209
private readonly adornersByName: Map<string, Set<Adorners.Adorner.Adorner>>;
207210
accessibilityTreeButton?: HTMLElement;
208211
domTreeButton?: HTMLElement;
@@ -300,7 +303,6 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
300303

301304
this.adornerManager = new ElementsComponents.AdornerManager.AdornerManager(
302305
Common.Settings.Settings.instance().moduleSetting('adorner-settings'));
303-
this.adornerSettingsPane = null;
304306
this.adornersByName = new Map();
305307
}
306308

@@ -1186,30 +1188,23 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
11861188
}
11871189
}
11881190

1189-
showAdornerSettingsPane(): void {
1190-
// Delay the initialization of the pane to the first showing
1191-
// since usually this pane won't be used.
1192-
if (!this.adornerSettingsPane) {
1193-
this.adornerSettingsPane = new ElementsComponents.AdornerSettingsPane.AdornerSettingsPane();
1194-
this.adornerSettingsPane.addEventListener('adornersettingupdated', (event: Event) => {
1195-
const {adornerName, isEnabledNow, newSettings} =
1196-
(event as ElementsComponents.AdornerSettingsPane.AdornerSettingUpdatedEvent).data;
1197-
const adornersToUpdate = this.adornersByName.get(adornerName);
1191+
populateAdornerSettingsContextMenu(contextMenu: UI.ContextMenu.ContextMenu): void {
1192+
const adornerSubMenu = contextMenu.viewSection().appendSubMenuItem(
1193+
i18nString(UIStrings.adornerSettings), false, 'show-adorner-settings');
1194+
const adornerSettings = this.adornerManager.getSettings();
1195+
for (const [adorner, isEnabled] of adornerSettings) {
1196+
adornerSubMenu.defaultSection().appendCheckboxItem(adorner, () => {
1197+
const updatedIsEnabled = !isEnabled;
1198+
const adornersToUpdate = this.adornersByName.get(adorner);
11981199
if (adornersToUpdate) {
1199-
for (const adorner of adornersToUpdate) {
1200-
isEnabledNow ? adorner.show() : adorner.hide();
1200+
for (const adornerToUpdate of adornersToUpdate) {
1201+
updatedIsEnabled ? adornerToUpdate.show() : adornerToUpdate.hide();
12011202
}
12021203
}
1203-
this.adornerManager.updateSettings(newSettings);
1204-
});
1205-
this.searchableViewInternal.element.prepend(this.adornerSettingsPane);
1204+
this.adornerManager.getSettings().set(adorner, updatedIsEnabled);
1205+
this.adornerManager.updateSettings(adornerSettings);
1206+
}, {checked: isEnabled, jslogContext: adorner});
12061207
}
1207-
1208-
const adornerSettings = this.adornerManager.getSettings();
1209-
this.adornerSettingsPane.data = {
1210-
settings: adornerSettings,
1211-
};
1212-
this.adornerSettingsPane.show();
12131208
}
12141209

12151210
isAdornerEnabled(adornerText: string): boolean {

front_end/panels/elements/ElementsTreeOutline.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,6 @@ const UIStrings = {
7171
*@description Link text content in Elements Tree Outline of the Elements panel
7272
*/
7373
reveal: 'reveal',
74-
/**
75-
* @description A context menu item to open the badge settings pane
76-
*/
77-
adornerSettings: 'Badge settings\u2026',
7874
};
7975
const str_ = i18n.i18n.registerUIStrings('panels/elements/ElementsTreeOutline.ts', UIStrings);
8076
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
@@ -940,9 +936,7 @@ export class ElementsTreeOutline extends
940936
treeElement.populatePseudoElementContextMenu(contextMenu);
941937
}
942938

943-
contextMenu.viewSection().appendItem(i18nString(UIStrings.adornerSettings), () => {
944-
ElementsPanel.instance().showAdornerSettingsPane();
945-
}, {jslogContext: 'show-adorner-settings'});
939+
ElementsPanel.instance().populateAdornerSettingsContextMenu(contextMenu);
946940

947941
contextMenu.appendApplicableItems(treeElement.node());
948942
void contextMenu.show();

front_end/panels/elements/components/AdornerSettingsPane.ts

Lines changed: 0 additions & 132 deletions
This file was deleted.

front_end/panels/elements/components/BUILD.gn

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import("../../../../scripts/build/typescript/typescript.gni")
1010
generate_css("css_files") {
1111
sources = [
1212
"accessibilityTreeNode.css",
13-
"adornerSettingsPane.css",
1413
"anchorFunctionLinkSwatch.css",
1514
"computedStyleProperty.css",
1615
"computedStyleTrace.css",
@@ -30,7 +29,6 @@ devtools_module("components") {
3029
sources = [
3130
"AccessibilityTreeNode.ts",
3231
"AdornerManager.ts",
33-
"AdornerSettingsPane.ts",
3432
"AnchorFunctionLinkSwatch.ts",
3533
"CSSHintDetailsView.ts",
3634
"CSSPropertyDocsView.ts",

front_end/panels/elements/components/adornerSettingsPane.css

Lines changed: 0 additions & 40 deletions
This file was deleted.

front_end/panels/elements/components/components.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import * as AccessibilityTreeNode from './AccessibilityTreeNode.js';
66
import * as AdornerManager from './AdornerManager.js';
7-
import * as AdornerSettingsPane from './AdornerSettingsPane.js';
87
import * as AnchorFunctionLinkSwatch from './AnchorFunctionLinkSwatch.js';
98
import * as ComputedStyleProperty from './ComputedStyleProperty.js';
109
import * as ComputedStyleTrace from './ComputedStyleTrace.js';
@@ -25,7 +24,6 @@ import * as StylePropertyEditor from './StylePropertyEditor.js';
2524
export {
2625
AccessibilityTreeNode,
2726
AdornerManager,
28-
AdornerSettingsPane,
2927
AnchorFunctionLinkSwatch,
3028
ComputedStyleProperty,
3129
ComputedStyleTrace,

test/e2e/helpers/context-menu-helpers.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,3 +68,14 @@ export async function openSoftContextMenuAndClickOnItem(selector: string, label:
6868
const root = await waitForSoftContextMenu();
6969
await click(`[aria-label="${label}"]`, {root});
7070
}
71+
72+
export async function openSubMenu(selector: string, text: string) {
73+
// Find the selected node, right click.
74+
await click(selector, {clickOptions: {button: 'right'}});
75+
76+
// Wait for the context menu option, and click it.
77+
await waitForSoftContextMenu();
78+
79+
const subMenuEntryItem = await findSubMenuEntryItem(text);
80+
await subMenuEntryItem.hover();
81+
}

0 commit comments

Comments
 (0)