Index: Source/devtools/front_end/SplitView.js |
diff --git a/Source/devtools/front_end/SplitView.js b/Source/devtools/front_end/SplitView.js |
index dd61510f43e0e7ead60ab156b2d5818252a4bcc6..1e6ca155c7eb35ee274eab008e8b4c480ef37285 100644 |
--- a/Source/devtools/front_end/SplitView.js |
+++ b/Source/devtools/front_end/SplitView.js |
@@ -68,11 +68,11 @@ WebInspector.SplitView = function(isVertical, secondIsSidebar, settingName, defa |
this._resizable = true; |
this._useDip = !!useDip; |
- this._savedSidebarWidth = defaultSidebarWidth || 200; |
- this._savedSidebarHeight = defaultSidebarHeight || this._savedSidebarWidth; |
+ this._defaultSidebarWidth = defaultSidebarWidth || 200; |
+ this._defaultSidebarHeight = defaultSidebarHeight || this._defaultSidebarWidth; |
- if (0 < this._savedSidebarWidth && this._savedSidebarWidth < 1 && |
- 0 < this._savedSidebarHeight && this._savedSidebarHeight < 1) |
+ if (0 < this._defaultSidebarWidth && this._defaultSidebarWidth < 1 && |
+ 0 < this._defaultSidebarHeight && this._defaultSidebarHeight < 1) |
this._useFraction = true; |
this._settingName = settingName; |
@@ -136,6 +136,9 @@ WebInspector.SplitView.prototype = { |
this.element.classList.add(this._isVertical ? "hbox" : "vbox"); |
delete this._resizerElementSize; |
this._sidebarSize = -1; |
+ this._restoreSidebarSizeFromSettings(); |
+ if (this._shouldSaveShowMode) |
+ this._restoreAndApplyShowModeFromSettings(); |
}, |
/** |
@@ -144,7 +147,7 @@ WebInspector.SplitView.prototype = { |
_updateLayout: function(animate) |
{ |
delete this._totalSize; // Lazy update. |
- this._innerSetSidebarSize(this._lastSidebarSize(), false, animate); |
+ this._innerSetSidebarSize(this._preferredSidebarSize(), false, animate); |
}, |
/** |
@@ -174,18 +177,7 @@ WebInspector.SplitView.prototype = { |
enableShowModeSaving: function() |
{ |
this._shouldSaveShowMode = true; |
- var savedShowMode = this._savedShowMode(); |
- switch (savedShowMode) { |
- case WebInspector.SplitView.ShowMode.Both: |
- this.showBoth(); |
- break; |
- case WebInspector.SplitView.ShowMode.OnlyMain: |
- this.hideSidebar(); |
- break; |
- case WebInspector.SplitView.ShowMode.OnlySidebar: |
- this.hideMain(); |
- break; |
- } |
+ this._restoreAndApplyShowModeFromSettings(); |
}, |
/** |
@@ -233,9 +225,9 @@ WebInspector.SplitView.prototype = { |
/** |
* @return {number} |
*/ |
- desiredSidebarSize: function() |
+ preferredSidebarSize: function() |
{ |
- return this._lastSidebarSize(); |
+ return this._preferredSidebarSize(); |
}, |
/** |
@@ -351,7 +343,7 @@ WebInspector.SplitView.prototype = { |
setSidebarSize: function(size) |
{ |
this._innerSetSidebarSize(size); |
- this._saveSetting(); |
+ this._saveSidebarSizeToSettings(); |
}, |
/** |
@@ -378,7 +370,7 @@ WebInspector.SplitView.prototype = { |
_updateShowMode: function(showMode) |
{ |
this._showMode = showMode; |
- this._saveSetting(); |
+ this._saveShowModeToSettings(); |
this._updateShowHideSidebarButton(); |
this.dispatchEventToListeners(WebInspector.SplitView.Events.ShowModeChanged, showMode); |
}, |
@@ -605,6 +597,7 @@ WebInspector.SplitView.prototype = { |
{ |
if (this._useDip) |
WebInspector.zoomManager.addEventListener(WebInspector.ZoomManager.Events.ZoomChanged, this._onZoomChanged, this); |
+ this._restoreSidebarSizeFromSettings(); |
dgozman
2014/03/07 11:32:53
Remove this.
|
this._updateLayout(); |
}, |
@@ -628,7 +621,6 @@ WebInspector.SplitView.prototype = { |
if (!this._resizable) |
return false; |
- this._saveSetting(); |
this._dragOffset = (this._secondIsSidebar ? this.totalSize() - this._sidebarSize : this._sidebarSize) - (this._isVertical ? event.pageX : event.pageY); |
return true; |
}, |
@@ -650,7 +642,7 @@ WebInspector.SplitView.prototype = { |
_endResizerDragging: function(event) |
{ |
delete this._dragOffset; |
- this._saveSetting(); |
+ this._saveSidebarSizeToSettings(); |
}, |
hideDefaultResizer: function() |
@@ -728,57 +720,72 @@ WebInspector.SplitView.prototype = { |
/** |
* @return {number} |
*/ |
- _lastSidebarSize: function() |
+ _preferredSidebarSize: function() |
{ |
- var settingForOrientation = this._settingForOrientation(); |
- var size = settingForOrientation ? settingForOrientation.size : 0; |
- if (!size) |
- size = this._isVertical ? this._savedSidebarWidth : this._savedSidebarHeight; |
+ var size = this._savedSidebarSize; |
if (this._useFraction) |
size *= this.totalSize(); |
return size; |
}, |
- /** |
- * @return {string} |
- */ |
- _savedShowMode: function() |
+ _restoreSidebarSizeFromSettings: function() |
+ { |
+ var settingForOrientation = this._settingForOrientation(); |
+ var size = settingForOrientation ? settingForOrientation.size : 0; |
+ if (!size) |
+ size = this._isVertical ? this._defaultSidebarWidth : this._defaultSidebarHeight; |
+ this._savedSidebarSize = size; |
+ }, |
+ |
+ _restoreAndApplyShowModeFromSettings: function() |
{ |
var orientationState = this._settingForOrientation(); |
- return orientationState ? orientationState.showMode : ""; |
+ this._savedShowMode = orientationState ? orientationState.showMode : WebInspector.SplitView.ShowMode.Both; |
+ this._showMode = this._savedShowMode; |
+ |
+ switch (this._savedShowMode) { |
+ case WebInspector.SplitView.ShowMode.Both: |
+ this.showBoth(); |
+ break; |
+ case WebInspector.SplitView.ShowMode.OnlyMain: |
+ this.hideSidebar(); |
+ break; |
+ case WebInspector.SplitView.ShowMode.OnlySidebar: |
+ this.hideMain(); |
+ break; |
+ } |
}, |
- _sizeToSave: function() |
+ _saveSidebarSizeToSettings: function() |
{ |
- var size = this._sidebarSize; |
- if (size < 0) |
- return -1; |
+ if (this._sidebarSize < 0) |
+ return; |
+ var size = this._sidebarSize; |
if (this._useFraction) |
size /= this.totalSize(); |
- return size; |
+ this._savedSidebarSize = size; |
+ this._saveSetting(); |
}, |
- _saveSetting: function() |
+ _saveShowModeToSettings: function() |
{ |
- var size = this._sizeToSave(); |
- |
- if (size !== -1) { |
- if (this._isVertical) |
- this._savedSidebarWidth = size; |
- else |
- this._savedSidebarHeight = size; |
- } |
+ this._savedShowMode = this._showMode; |
+ this._saveSetting(); |
+ }, |
+ _saveSetting: function() |
+ { |
var setting = this._setting(); |
if (!setting) |
return; |
var state = setting.get(); |
var orientationState = (this._isVertical ? state.vertical : state.horizontal) || {}; |
- if (size !== -1) |
- orientationState.size = size; |
+ |
+ orientationState.size = this._savedSidebarSize; |
if (this._shouldSaveShowMode) |
- orientationState.showMode = this._showMode; |
+ orientationState.showMode = this._savedShowMode; |
+ |
if (this._isVertical) |
state.vertical = orientationState; |
else |
@@ -793,7 +800,7 @@ WebInspector.SplitView.prototype = { |
{ |
var data = /** @type {{from: number, to: number}} */ (event.data); |
this._innerSetSidebarSize(this.sidebarSize() * data.from / data.to, true); |
- this._saveSetting(); |
+ this._saveSidebarSizeToSettings(); |
}, |
/** |