| Index: Source/devtools/front_end/ResponsiveDesignView.js
|
| diff --git a/Source/devtools/front_end/ResponsiveDesignView.js b/Source/devtools/front_end/ResponsiveDesignView.js
|
| index a9b71a9ec27df4c96820c0caeb1243e2a28848b5..a9f8b17c92c6ce6d3053e8e2b8535fb41c4342be 100644
|
| --- a/Source/devtools/front_end/ResponsiveDesignView.js
|
| +++ b/Source/devtools/front_end/ResponsiveDesignView.js
|
| @@ -42,6 +42,7 @@ WebInspector.ResponsiveDesignView = function(inspectedPagePlaceholder)
|
|
|
| WebInspector.zoomManager.addEventListener(WebInspector.ZoomManager.Events.ZoomChanged, this._onZoomChanged, this);
|
| WebInspector.dockController.addEventListener(WebInspector.DockController.Events.DockSideChanged, this._updateOverridesSupportOnDockSideChange, this);
|
| + WebInspector.settings.responsiveDesignMode.addChangeListener(this._responsiveDesignModeChanged, this);
|
| this._updateOverridesSupportOnDockSideChange();
|
| };
|
|
|
| @@ -51,51 +52,66 @@ WebInspector.ResponsiveDesignView.RulerWidth = 20;
|
| WebInspector.ResponsiveDesignView.ToolbarHeight = 24;
|
|
|
| WebInspector.ResponsiveDesignView.prototype = {
|
| - _updateOverridesSupportOnDockSideChange: function()
|
| + _responsiveDesignModeChanged: function()
|
| {
|
| - WebInspector.overridesSupport.setPageResizer(WebInspector.dockController.dockSide() !== WebInspector.DockController.State.Undocked ? this : null);
|
| - },
|
| + if (WebInspector.dockController.dockSide() === WebInspector.DockController.State.Undocked) {
|
| + WebInspector.overridesSupport.setPageResizer(null);
|
| + return;
|
| + }
|
|
|
| - /**
|
| - * WebInspector.OverridesSupport.PageResizer override.
|
| - * @param {number} dipWidth
|
| - * @param {number} dipHeight
|
| - * @param {number} scale
|
| - */
|
| - enable: function(dipWidth, dipHeight, scale)
|
| - {
|
| - if (!this._enabled) {
|
| + delete this._cachedScale;
|
| + delete this._cachedCssCanvasWidth;
|
| + delete this._cachedCssCanvasHeight;
|
| + delete this._cachedCssHeight;
|
| + delete this._cachedCssWidth;
|
| + delete this._cachedZoomFactor;
|
| + delete this._availableSize;
|
| +
|
| + var enabled = WebInspector.settings.responsiveDesignMode.get();
|
| + if (enabled && !this._enabled) {
|
| this._ignoreResize = true;
|
| this._enabled = true;
|
| this._inspectedPagePlaceholder.clearMinimumSizeAndMargins();
|
| this._inspectedPagePlaceholder.show(this._pageContainer);
|
| this._responsiveDesignContainer.show(this.element);
|
| + WebInspector.overridesSupport.setPageResizer(this);
|
| delete this._ignoreResize;
|
| }
|
|
|
| - this._scale = scale;
|
| - this._dipWidth = dipWidth;
|
| - this._dipHeight = dipHeight;
|
| - this._resolutionWidthLabel.textContent = dipWidth + "px";
|
| - this._resolutionHeightLabel.textContent = dipHeight + "px";
|
| - this._updateUI();
|
| + if (!enabled && this._enabled) {
|
| + this._ignoreResize = true;
|
| + this._enabled = false;
|
| + this._scale = 0;
|
| + this._inspectedPagePlaceholder.restoreMinimumSizeAndMargins();
|
| + this._responsiveDesignContainer.detach();
|
| + this._inspectedPagePlaceholder.show(this.element);
|
| + WebInspector.overridesSupport.setPageResizer(null);
|
| + delete this._ignoreResize;
|
| + }
|
| + },
|
| +
|
| + _updateOverridesSupportOnDockSideChange: function()
|
| + {
|
| + this._responsiveDesignModeChanged();
|
| },
|
|
|
| /**
|
| * WebInspector.OverridesSupport.PageResizer override.
|
| + * @param {number} dipWidth
|
| + * @param {number} dipHeight
|
| + * @param {number} scale
|
| */
|
| - disable: function()
|
| + update: function(dipWidth, dipHeight, scale)
|
| {
|
| if (!this._enabled)
|
| return;
|
|
|
| - this._ignoreResize = true;
|
| - this._enabled = false;
|
| - this._scale = 0;
|
| - this._inspectedPagePlaceholder.restoreMinimumSizeAndMargins();
|
| - this._responsiveDesignContainer.detach();
|
| - this._inspectedPagePlaceholder.show(this.element);
|
| - delete this._ignoreResize;
|
| + this._scale = scale;
|
| + this._dipWidth = dipWidth;
|
| + this._dipHeight = dipHeight;
|
| + this._resolutionWidthLabel.textContent = dipWidth + "px";
|
| + this._resolutionHeightLabel.textContent = dipHeight + "px";
|
| + this._updateUI();
|
| },
|
|
|
| /**
|
| @@ -357,64 +373,23 @@ WebInspector.ResponsiveDesignView.prototype = {
|
| {
|
| this._toolbarElement = this._responsiveDesignContainer.element.createChild("div", "responsive-design-toolbar");
|
|
|
| - const metricsSetting = WebInspector.overridesSupport.settings.deviceMetrics.get();
|
| - var metrics = WebInspector.OverridesSupport.DeviceMetrics.parseSetting(metricsSetting);
|
| + this._toolbarElement.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIString("Resolution"), WebInspector.overridesSupport.settings.overrideDeviceResolution, true));
|
|
|
| - /**
|
| - * @this {WebInspector.ResponsiveDesignView}
|
| - */
|
| - function swapDimensionsClicked()
|
| - {
|
| - var widthValue = this._widthOverrideElement.value;
|
| - this._widthOverrideElement.value = this._heightOverrideElement.value;
|
| - this._heightOverrideElement.value = widthValue;
|
| - this._applyDeviceMetricsUserInput();
|
| - }
|
| + var fieldsetElement = WebInspector.SettingsUI.createSettingFieldset(WebInspector.overridesSupport.settings.overrideDeviceResolution);
|
| + this._toolbarElement.appendChild(fieldsetElement);
|
| +
|
| + fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingInputField("", WebInspector.overridesSupport.settings.deviceWidth, true, 4, "3em", WebInspector.OverridesSupport.inputValidator, true));
|
| + fieldsetElement.appendChild(document.createTextNode(" \u00D7 "));
|
| + fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingInputField("", WebInspector.overridesSupport.settings.deviceHeight, true, 4, "3em", WebInspector.OverridesSupport.inputValidator, true));
|
|
|
| - this._toolbarElement.appendChild(document.createTextNode("Screen")).title = WebInspector.UIString("Screen resolution");
|
| - this._widthOverrideElement = WebInspector.SettingsUI.createInput(this._toolbarElement, "responsive-design-override-width", String(metrics.width), this._applyDeviceMetricsUserInput.bind(this), true, "3em");
|
| - this._toolbarElement.appendChild(document.createTextNode(" \u00D7 "));
|
| - this._heightOverrideElement = WebInspector.SettingsUI.createInput(this._toolbarElement, "responsive-design-override-height", String(metrics.height), this._applyDeviceMetricsUserInput.bind(this), true, "3em");
|
| - this._swapDimensionsElement = this._toolbarElement.createChild("button", "responsive-design-override-swap");
|
| + this._swapDimensionsElement = fieldsetElement.createChild("button", "responsive-design-override-swap");
|
| this._swapDimensionsElement.appendChild(document.createTextNode(" \u21C4 ")); // RIGHTWARDS ARROW OVER LEFTWARDS ARROW.
|
| this._swapDimensionsElement.title = WebInspector.UIString("Swap dimensions");
|
| - this._swapDimensionsElement.addEventListener("click", swapDimensionsClicked.bind(this), false);
|
| + this._swapDimensionsElement.addEventListener("click", WebInspector.overridesSupport.swapDimensions.bind(WebInspector.overridesSupport), false);
|
| this._swapDimensionsElement.tabIndex = -1;
|
|
|
| - var span = this._toolbarElement.createChild("span");
|
| - span.textContent = WebInspector.UIString("Dpr");
|
| - span.title = WebInspector.UIString("Device pixel ratio");
|
| - this._deviceScaleFactorOverrideElement = WebInspector.SettingsUI.createInput(this._toolbarElement, "responsive-design-device-scale", String(metrics.deviceScaleFactor), this._applyDeviceMetricsUserInput.bind(this), true, "2em");
|
| -
|
| - var textAutosizingOverrideElement = WebInspector.SettingsUI.createNonPersistedCheckbox(WebInspector.UIString("Enable text autosizing "), this._applyDeviceMetricsUserInput.bind(this));
|
| - textAutosizingOverrideElement.title = WebInspector.UIString("Text autosizing is the feature that boosts font sizes on mobile devices.");
|
| - this._textAutosizingOverrideCheckbox = textAutosizingOverrideElement.firstChild;
|
| - this._textAutosizingOverrideCheckbox.checked = metrics.textAutosizing;
|
| -
|
| - var checkbox = WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIString("Viewport"), WebInspector.overridesSupport.settings.emulateViewport, true);
|
| - this._toolbarElement.appendChild(checkbox);
|
| -
|
| - WebInspector.overridesSupport.settings.deviceMetrics.addChangeListener(this._updateDeviceMetricsElement, this);
|
| - },
|
| -
|
| - _updateDeviceMetricsElement: function()
|
| - {
|
| - const metricsSetting = WebInspector.overridesSupport.settings.deviceMetrics.get();
|
| - var metrics = WebInspector.OverridesSupport.DeviceMetrics.parseSetting(metricsSetting);
|
| -
|
| - if (this._widthOverrideElement.value != metrics.width)
|
| - this._widthOverrideElement.value = metrics.width;
|
| - if (this._heightOverrideElement.value != metrics.height)
|
| - this._heightOverrideElement.value = metrics.height;
|
| - if (this._deviceScaleFactorOverrideElement.value != metrics.deviceScaleFactor)
|
| - this._deviceScaleFactorOverrideElement.value = metrics.deviceScaleFactor;
|
| - if (this._textAutosizingOverrideCheckbox.checked !== metrics.textAutosizing)
|
| - this._textAutosizingOverrideCheckbox.checked = metrics.textAutosizing;
|
| - },
|
| -
|
| - _applyDeviceMetricsUserInput: function()
|
| - {
|
| - WebInspector.OverridesSupport.DeviceMetrics.applyOverrides(this._widthOverrideElement, this._heightOverrideElement, this._deviceScaleFactorOverrideElement, this._textAutosizingOverrideCheckbox);
|
| + fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingInputField(WebInspector.UIString("Dpr"), WebInspector.overridesSupport.settings.deviceScaleFactor, true, 2, "2em", WebInspector.OverridesSupport.inputValidator, true));
|
| + this._toolbarElement.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIString("Viewport"), WebInspector.overridesSupport.settings.emulateViewport, true));
|
| },
|
|
|
| __proto__: WebInspector.VBox.prototype
|
|
|