豆豆友情提示:这是一个非官方 GitHub 代理镜像,主要用于网络测试或访问加速。请勿在此进行登录、注册或处理任何敏感信息。进行这些操作请务必访问官方网站 github.com。 Raw 内容也通过此代理提供。
Skip to content

Commit 594769f

Browse files
danilsomsikovDevtools-frontend LUCI CQ
authored andcommitted
Restructure the DeviceModeToolbar to facilitate UI eng migration
Bug: 407751293 Change-Id: Ida5767d350a2fccf81a58763ac648662c572d8b4 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7474970 Reviewed-by: Philip Pfaffe <pfaffe@chromium.org> Auto-Submit: Danil Somsikov <dsv@chromium.org> Commit-Queue: Philip Pfaffe <pfaffe@chromium.org>
1 parent 73adf2f commit 594769f

File tree

1 file changed

+49
-60
lines changed

1 file changed

+49
-60
lines changed

front_end/panels/emulation/DeviceModeToolbar.ts

Lines changed: 49 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -239,39 +239,17 @@ export class DeviceModeToolbar {
239239
Common.Settings.Settings.instance().createSetting('emulation.auto-adjust-scale', true);
240240

241241
this.lastMode = new Map();
242-
243-
this.#element = document.createElement('div');
244-
this.#element.classList.add('device-mode-toolbar');
245-
this.#element.setAttribute('jslog', `${VisualLogging.toolbar('device-mode').track({resize: true})}`);
246-
247-
const mainToolbar = this.#element.createChild('devtools-toolbar', 'main-toolbar');
248-
this.appendDeviceSelectMenu(mainToolbar);
249-
250242
this.widthInput = new EmulationComponents.DeviceSizeInputElement.SizeInputElement(
251243
i18nString(UIStrings.width), {jslogContext: 'width'});
252-
this.widthInput.addEventListener('sizechanged', ({size: width}) => {
253-
if (this.autoAdjustScaleSetting.get()) {
254-
this.model.setWidthAndScaleToFit(width);
255-
} else {
256-
this.model.setWidth(width);
257-
}
258-
});
259244
this.heightInput = new EmulationComponents.DeviceSizeInputElement.SizeInputElement(
260245
i18nString(UIStrings.heightLeaveEmptyForFull), {jslogContext: 'height'});
261-
this.heightInput.addEventListener('sizechanged', ({size: height}) => {
262-
if (this.autoAdjustScaleSetting.get()) {
263-
this.model.setHeightAndScaleToFit(height);
264-
} else {
265-
this.model.setHeight(height);
266-
}
267-
});
268-
this.appendDimensionInputs(mainToolbar);
269246

270-
this.appendDisplaySettings(mainToolbar);
271-
this.appendDevicePositionItems(mainToolbar);
272-
const optionsToolbar = this.#element.createChild('devtools-toolbar', 'device-mode-toolbar-options');
273-
optionsToolbar.wrappable = true;
274-
this.fillOptionsToolbar(optionsToolbar);
247+
this.#element = document.createElement('div');
248+
this.#element.classList.add('device-mode-toolbar');
249+
this.#element.setAttribute('jslog', `${VisualLogging.toolbar('device-mode').track({resize: true})}`);
250+
251+
const mainToolbar = this.createMainToolbar();
252+
const optionsToolbar = this.createOptionsToolbar();
275253

276254
this.emulatedDevicesList = EmulationModel.EmulatedDevices.EmulatedDevicesList.instance();
277255
this.emulatedDevicesList.addEventListener(
@@ -298,91 +276,102 @@ export class DeviceModeToolbar {
298276
return element;
299277
}
300278

301-
private appendDeviceSelectMenu(toolbar: UI.Toolbar.Toolbar): void {
302-
toolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.createEmptyToolbarElement()));
279+
private createMainToolbar(): UI.Toolbar.Toolbar {
280+
const mainToolbar = this.#element.createChild('devtools-toolbar', 'main-toolbar');
281+
282+
mainToolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.createEmptyToolbarElement()));
303283
this.deviceSelectItem =
304284
new UI.Toolbar.ToolbarMenuButton(this.appendDeviceMenuItems.bind(this), undefined, undefined, 'device');
305285
this.deviceSelectItem.turnShrinkable();
306286
this.deviceSelectItem.setDarkText();
307-
toolbar.appendToolbarItem(this.deviceSelectItem);
308-
}
309-
310-
private appendDimensionInputs(toolbar: UI.Toolbar.Toolbar): void {
311-
toolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.widthInput));
287+
mainToolbar.appendToolbarItem(this.deviceSelectItem);
312288

289+
this.widthInput.addEventListener('sizechanged', ({size: width}) => {
290+
if (this.autoAdjustScaleSetting.get()) {
291+
this.model.setWidthAndScaleToFit(width);
292+
} else {
293+
this.model.setWidth(width);
294+
}
295+
});
296+
this.heightInput.addEventListener('sizechanged', ({size: height}) => {
297+
if (this.autoAdjustScaleSetting.get()) {
298+
this.model.setHeightAndScaleToFit(height);
299+
} else {
300+
this.model.setHeight(height);
301+
}
302+
});
303+
mainToolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.widthInput));
313304
const xElement = document.createElement('div');
314305
xElement.classList.add('device-mode-x');
315306
xElement.textContent = '×';
316307
this.xItem = new UI.Toolbar.ToolbarItem(xElement);
317-
toolbar.appendToolbarItem(this.xItem);
318-
319-
toolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.heightInput));
320-
}
308+
mainToolbar.appendToolbarItem(this.xItem);
309+
mainToolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.heightInput));
321310

322-
private appendDisplaySettings(toolbar: UI.Toolbar.Toolbar): void {
323-
toolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.createEmptyToolbarElement()));
311+
mainToolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.createEmptyToolbarElement()));
324312
this.scaleItem =
325313
new UI.Toolbar.ToolbarMenuButton(this.appendScaleMenuItems.bind(this), undefined, undefined, 'scale');
326314
setTitleForButton(this.scaleItem, i18nString(UIStrings.zoom));
327315
this.scaleItem.turnShrinkable();
328316
this.scaleItem.setDarkText();
329-
toolbar.appendToolbarItem(this.scaleItem);
330-
331-
toolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.createEmptyToolbarElement()));
317+
mainToolbar.appendToolbarItem(this.scaleItem);
318+
mainToolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.createEmptyToolbarElement()));
332319

333320
this.deviceScaleItem = new UI.Toolbar.ToolbarMenuButton(
334321
this.appendDeviceScaleMenuItems.bind(this), undefined, undefined, 'device-pixel-ratio');
335322
this.deviceScaleItem.turnShrinkable();
336323
this.deviceScaleItem.setVisible(this.showDeviceScaleFactorSetting.get());
337324
setTitleForButton(this.deviceScaleItem, i18nString(UIStrings.devicePixelRatio));
338325
this.deviceScaleItem.setDarkText();
339-
toolbar.appendToolbarItem(this.deviceScaleItem);
340-
341-
toolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.createEmptyToolbarElement()));
326+
mainToolbar.appendToolbarItem(this.deviceScaleItem);
327+
mainToolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.createEmptyToolbarElement()));
342328
this.uaItem =
343329
new UI.Toolbar.ToolbarMenuButton(this.appendUserAgentMenuItems.bind(this), undefined, undefined, 'device-type');
344330
this.uaItem.turnShrinkable();
345331
this.uaItem.setVisible(this.showUserAgentTypeSetting.get());
346332
setTitleForButton(this.uaItem, i18nString(UIStrings.deviceType));
347333
this.uaItem.setDarkText();
348-
toolbar.appendToolbarItem(this.uaItem);
334+
mainToolbar.appendToolbarItem(this.uaItem);
349335

350336
this.throttlingConditionsItem =
351337
MobileThrottling.ThrottlingManager.throttlingManager().createMobileThrottlingButton();
352338
this.throttlingConditionsItem.turnShrinkable();
353-
toolbar.appendToolbarItem(this.throttlingConditionsItem);
339+
mainToolbar.appendToolbarItem(this.throttlingConditionsItem);
354340
const saveDataItem = MobileThrottling.ThrottlingManager.throttlingManager().createSaveDataOverrideSelector();
355341
saveDataItem.turnShrinkable();
356-
toolbar.appendToolbarItem(saveDataItem);
357-
}
342+
mainToolbar.appendToolbarItem(saveDataItem);
358343

359-
private appendDevicePositionItems(toolbar: UI.Toolbar.Toolbar): void {
360-
toolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.createEmptyToolbarElement()));
344+
mainToolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.createEmptyToolbarElement()));
361345
this.modeButton = new UI.Toolbar.ToolbarButton('', 'screen-rotation', undefined, 'screen-rotation');
362346
this.modeButton.addEventListener(UI.Toolbar.ToolbarButton.Events.CLICK, this.modeMenuClicked, this);
363-
toolbar.appendToolbarItem(this.modeButton);
347+
mainToolbar.appendToolbarItem(this.modeButton);
364348

365349
// Show dual screen toolbar.
366350
this.spanButton = new UI.Toolbar.ToolbarButton('', 'device-fold', undefined, 'device-fold');
367351
this.spanButton.addEventListener(UI.Toolbar.ToolbarButton.Events.CLICK, this.spanClicked, this);
368-
toolbar.appendToolbarItem(this.spanButton);
352+
mainToolbar.appendToolbarItem(this.spanButton);
369353

370354
// Show posture toolbar menu for foldable devices.
371-
toolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.createEmptyToolbarElement()));
355+
mainToolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.createEmptyToolbarElement()));
372356
this.postureItem = new UI.Toolbar.ToolbarMenuButton(
373357
this.appendDevicePostureItems.bind(this), undefined, undefined, 'device-posture');
374358
this.postureItem.turnShrinkable();
375359
this.postureItem.setDarkText();
376360
setTitleForButton(this.postureItem, i18nString(UIStrings.devicePosture));
377-
toolbar.appendToolbarItem(this.postureItem);
361+
mainToolbar.appendToolbarItem(this.postureItem);
362+
363+
return mainToolbar;
378364
}
379365

380-
private fillOptionsToolbar(toolbar: UI.Toolbar.Toolbar): void {
381-
toolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.createEmptyToolbarElement()));
366+
private createOptionsToolbar(): UI.Toolbar.Toolbar {
367+
const optionsToolbar = this.#element.createChild('devtools-toolbar', 'device-mode-toolbar-options');
368+
optionsToolbar.wrappable = true;
369+
optionsToolbar.appendToolbarItem(new UI.Toolbar.ToolbarItem(this.createEmptyToolbarElement()));
382370
const moreOptionsButton = new UI.Toolbar.ToolbarMenuButton(
383371
this.appendOptionsMenuItems.bind(this), true, undefined, 'more-options', 'dots-vertical');
384372
moreOptionsButton.setTitle(i18nString(UIStrings.moreOptions));
385-
toolbar.appendToolbarItem(moreOptionsButton);
373+
optionsToolbar.appendToolbarItem(moreOptionsButton);
374+
return optionsToolbar;
386375
}
387376

388377
private appendDevicePostureItems(contextMenu: UI.ContextMenu.ContextMenu): void {

0 commit comments

Comments
 (0)