Changeset 90365 in webkit


Ignore:
Timestamp:
Jul 4, 2011 7:48:47 AM (13 years ago)
Author:
pfeldman@chromium.org
Message:

2011-07-04 Pavel Feldman <pfeldman@google.com>

Web Inspector: implement settings panel.
https://bugs.webkit.org/show_bug.cgi?id=63907

Reviewed by Yury Semikhatsky.

  • English.lproj/localizedStrings.js:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • inspector/front-end/BreakpointsSidebarPane.js: (WebInspector.XHRBreakpointsSidebarPane.prototype._saveBreakpoints): (WebInspector.EventListenerBreakpointsSidebarPane.prototype._saveBreakpoints):
  • inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView): (WebInspector.ConsoleView.prototype._handleContextMenuEvent.monitoringXHRItemAction): (WebInspector.ConsoleView.prototype._handleContextMenuEvent.get preserveLogItemAction): (WebInspector.ConsoleView.prototype._monitoringXHREnabledSettingChanged): (WebInspector.ConsoleView.prototype._registerShortcuts):
  • inspector/front-end/DOMBreakpointsSidebarPane.js: (WebInspector.DOMBreakpointsSidebarPane.prototype._saveBreakpoints):
  • inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel.prototype._saveBreakpoints):
  • inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel.prototype._contextMenuEventFired): (WebInspector.ElementsPanel.prototype._domWordWrapSettingChanged): (WebInspector.ElementsPanel.prototype._registerShortcuts):
  • inspector/front-end/EventListenersSidebarPane.js: (WebInspector.EventListenersSidebarPane.prototype): ():
  • inspector/front-end/HelpScreen.js: (WebInspector.HelpScreen): (WebInspector.HelpScreen.prototype.show): (WebInspector.HelpScreen.prototype.hide): (WebInspector.HelpScreen.prototype._onKeyDown):
  • inspector/front-end/NetworkItemView.js:
  • inspector/front-end/NetworkPanel.js:
  • inspector/front-end/Panel.js: (WebInspector.Panel.prototype.saveSidebarWidth):
  • inspector/front-end/ProfilesPanel.js:
  • inspector/front-end/ResourcesPanel.js: (WebInspector.BaseStorageTreeElement.prototype.onselect): (WebInspector.StorageCategoryTreeElement.prototype.onexpand): (WebInspector.StorageCategoryTreeElement.prototype.set oncollapse):
  • inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype._sourceFileAdded.get if): (WebInspector.ScriptsPanel.prototype._setPauseOnExceptions.callback): (WebInspector.ScriptsPanel.prototype._createSidebarButtonAndRegisterShortcuts):
  • inspector/front-end/Settings.js: (WebInspector.Settings): (WebInspector.Settings.prototype.installApplicationSetting): (WebInspector.Setting): (WebInspector.Setting.prototype.addChangeListener): (WebInspector.Setting.prototype.removeChangeListener): (WebInspector.Setting.prototype.get var): (WebInspector.Setting.prototype): (WebInspector.Setting.prototype.set if):
  • inspector/front-end/SettingsScreen.js: Added. (WebInspector.SettingsScreen): (WebInspector.SettingsScreen.prototype._appendSection): (WebInspector.SettingsScreen.prototype._columnElement): (WebInspector.SettingsScreen.prototype._createCheckboxSetting.get listener): (WebInspector.SettingsScreen.prototype._createRadioSetting):
  • inspector/front-end/ShortcutsScreen.js: Renamed from Source/WebCore/inspector/front-end/ShortcutsHelp.js. (WebInspector.ShortcutsScreen):
  • inspector/front-end/StylesSidebarPane.js: (WebInspector.StylesSidebarPane.prototype.registerShortcuts):
  • inspector/front-end/WatchExpressionsSidebarPane.js:
  • inspector/front-end/WebKit.qrc:
  • inspector/front-end/helpScreen.css: (.help-window-main): (body.attached .help-window-main): (.help-window-caption): (body.attached .help-window-caption): (.help-content): (.help-close-button): (body.attached .help-close-button): (body.attached .help-content): (.help-table): (body.platform-mac .help-key): (.help-combine-keys): (.help-content p): (.help-content fieldset): (.help-content fieldset p): (.help-content p.help-section): (.help-section-title): (.help-content input[type=checkbox]):
  • inspector/front-end/inspector.css: (button.settings-status-bar-item): (.settings-status-bar-item .glyph):
  • inspector/front-end/inspector.html:
  • inspector/front-end/inspector.js: (WebInspector._createGlobalStatusBarItems): (WebInspector._toggleAttach): (WebInspector._toggleSettings): (WebInspector._registerShortcuts): (WebInspector.documentKeyDown):
Location:
trunk
Files:
1 added
26 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/inspector/console/console-preserve-log.html

    r88815 r90365  
    66function test()
    77{
    8     WebInspector.console.addMessage(
    9         WebInspector.ConsoleMessage.createTextMessage("PASS"));
    10     WebInspector.settings.preserveConsoleLog = true;
     8    WebInspector.console.addMessage(WebInspector.ConsoleMessage.createTextMessage("PASS"));
     9    WebInspector.settings.preserveConsoleLog.set(true);
    1110    InspectorTest.reloadPage(function() {
    1211        InspectorTest.dumpConsoleMessages();
    13         WebInspector.settings.preserveConsoleLog = false;
     12        WebInspector.settings.preserveConsoleLog.set(false);
    1413        InspectorTest.completeTest();
    1514    });
  • trunk/Source/WebCore/ChangeLog

    r90364 r90365  
     12011-07-04  Pavel Feldman  <pfeldman@google.com>
     2
     3        Web Inspector: implement settings panel.
     4        https://bugs.webkit.org/show_bug.cgi?id=63907
     5
     6        Reviewed by Yury Semikhatsky.
     7
     8        * English.lproj/localizedStrings.js:
     9        * WebCore.gypi:
     10        * WebCore.vcproj/WebCore.vcproj:
     11        * inspector/front-end/BreakpointsSidebarPane.js:
     12        (WebInspector.XHRBreakpointsSidebarPane.prototype._saveBreakpoints):
     13        (WebInspector.EventListenerBreakpointsSidebarPane.prototype._saveBreakpoints):
     14        * inspector/front-end/ConsoleView.js:
     15        (WebInspector.ConsoleView):
     16        (WebInspector.ConsoleView.prototype._handleContextMenuEvent.monitoringXHRItemAction):
     17        (WebInspector.ConsoleView.prototype._handleContextMenuEvent.get preserveLogItemAction):
     18        (WebInspector.ConsoleView.prototype._monitoringXHREnabledSettingChanged):
     19        (WebInspector.ConsoleView.prototype._registerShortcuts):
     20        * inspector/front-end/DOMBreakpointsSidebarPane.js:
     21        (WebInspector.DOMBreakpointsSidebarPane.prototype._saveBreakpoints):
     22        * inspector/front-end/DebuggerPresentationModel.js:
     23        (WebInspector.DebuggerPresentationModel.prototype._saveBreakpoints):
     24        * inspector/front-end/ElementsPanel.js:
     25        (WebInspector.ElementsPanel.prototype._contextMenuEventFired):
     26        (WebInspector.ElementsPanel.prototype._domWordWrapSettingChanged):
     27        (WebInspector.ElementsPanel.prototype._registerShortcuts):
     28        * inspector/front-end/EventListenersSidebarPane.js:
     29        (WebInspector.EventListenersSidebarPane.prototype):
     30        ():
     31        * inspector/front-end/HelpScreen.js:
     32        (WebInspector.HelpScreen):
     33        (WebInspector.HelpScreen.prototype.show):
     34        (WebInspector.HelpScreen.prototype.hide):
     35        (WebInspector.HelpScreen.prototype._onKeyDown):
     36        * inspector/front-end/NetworkItemView.js:
     37        * inspector/front-end/NetworkPanel.js:
     38        * inspector/front-end/Panel.js:
     39        (WebInspector.Panel.prototype.saveSidebarWidth):
     40        * inspector/front-end/ProfilesPanel.js:
     41        * inspector/front-end/ResourcesPanel.js:
     42        (WebInspector.BaseStorageTreeElement.prototype.onselect):
     43        (WebInspector.StorageCategoryTreeElement.prototype.onexpand):
     44        (WebInspector.StorageCategoryTreeElement.prototype.set oncollapse):
     45        * inspector/front-end/ScriptsPanel.js:
     46        (WebInspector.ScriptsPanel.prototype._sourceFileAdded.get if):
     47        (WebInspector.ScriptsPanel.prototype._setPauseOnExceptions.callback):
     48        (WebInspector.ScriptsPanel.prototype._createSidebarButtonAndRegisterShortcuts):
     49        * inspector/front-end/Settings.js:
     50        (WebInspector.Settings):
     51        (WebInspector.Settings.prototype.installApplicationSetting):
     52        (WebInspector.Setting):
     53        (WebInspector.Setting.prototype.addChangeListener):
     54        (WebInspector.Setting.prototype.removeChangeListener):
     55        (WebInspector.Setting.prototype.get var):
     56        (WebInspector.Setting.prototype):
     57        (WebInspector.Setting.prototype.set if):
     58        * inspector/front-end/SettingsScreen.js: Added.
     59        (WebInspector.SettingsScreen):
     60        (WebInspector.SettingsScreen.prototype._appendSection):
     61        (WebInspector.SettingsScreen.prototype._columnElement):
     62        (WebInspector.SettingsScreen.prototype._createCheckboxSetting.get listener):
     63        (WebInspector.SettingsScreen.prototype._createRadioSetting):
     64        * inspector/front-end/ShortcutsScreen.js: Renamed from Source/WebCore/inspector/front-end/ShortcutsHelp.js.
     65        (WebInspector.ShortcutsScreen):
     66        * inspector/front-end/StylesSidebarPane.js:
     67        (WebInspector.StylesSidebarPane.prototype.registerShortcuts):
     68        * inspector/front-end/WatchExpressionsSidebarPane.js:
     69        * inspector/front-end/WebKit.qrc:
     70        * inspector/front-end/helpScreen.css:
     71        (.help-window-main):
     72        (body.attached .help-window-main):
     73        (.help-window-caption):
     74        (body.attached .help-window-caption):
     75        (.help-content):
     76        (.help-close-button):
     77        (body.attached .help-close-button):
     78        (body.attached .help-content):
     79        (.help-table):
     80        (body.platform-mac .help-key):
     81        (.help-combine-keys):
     82        (.help-content p):
     83        (.help-content fieldset):
     84        (.help-content fieldset p):
     85        (.help-content p.help-section):
     86        (.help-section-title):
     87        (.help-content input[type=checkbox]):
     88        * inspector/front-end/inspector.css:
     89        (button.settings-status-bar-item):
     90        (.settings-status-bar-item .glyph):
     91        * inspector/front-end/inspector.html:
     92        * inspector/front-end/inspector.js:
     93        (WebInspector._createGlobalStatusBarItems):
     94        (WebInspector._toggleAttach):
     95        (WebInspector._toggleSettings):
     96        (WebInspector._registerShortcuts):
     97        (WebInspector.documentKeyDown):
     98
    1992011-07-04  Vsevolod Vlasov  <vsevik@chromium.org>
    2100
  • trunk/Source/WebCore/WebCore.gypi

    r90269 r90365  
    63336333            'inspector/front-end/ScriptsPanel.js',
    63346334            'inspector/front-end/SearchController.js',
    6335             'inspector/front-end/ShortcutsHelp.js',
     6335            'inspector/front-end/ShortcutsScreen.js',
     6336            'inspector/front-end/SettingsScreen.js',
    63366337            'inspector/front-end/ShowMoreDataGridNode.js',
    63376338            'inspector/front-end/Section.js',
     
    64246425            'inspector/front-end/Images/paneBottomGrow.png',
    64256426            'inspector/front-end/Images/paneBottomGrowActive.png',
     6427            'inspector/front-end/Images/paneFilterButtons.png',
    64266428            'inspector/front-end/Images/paneGrowHandleLine.png',
    64276429            'inspector/front-end/Images/paneRefreshButtons.png',
  • trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r90269 r90365  
    6829868298                                </File>
    6829968299                                <File
    68300                                         RelativePath="..\inspector\front-end\ShortcutsHelp.js"
     68300                                        RelativePath="..\inspector\front-end\SettingsScreen.js"
     68301                                        >
     68302                                </File>
     68303                                <File
     68304                                        RelativePath="..\inspector\front-end\ShortcutsScreen.js"
    6830168305                                        >
    6830268306                                </File>
  • trunk/Source/WebCore/inspector/front-end/BreakpointsSidebarPane.js

    r87140 r90365  
    407407        for (var url in this._breakpointElements)
    408408            breakpoints.push({ url: url, enabled: this._breakpointElements[url]._checkboxElement.checked });
    409         WebInspector.settings.xhrBreakpoints = breakpoints;
     409        WebInspector.settings.xhrBreakpoints.set(breakpoints);
    410410    },
    411411
    412412    _restoreBreakpoints: function()
    413413    {
    414         var breakpoints = WebInspector.settings.xhrBreakpoints;
     414        var breakpoints = WebInspector.settings.xhrBreakpoints.get();
    415415        for (var i = 0; i < breakpoints.length; ++i) {
    416416            var breakpoint = breakpoints[i];
     
    590590                breakpoints.push({ eventName: eventName });
    591591        }
    592         WebInspector.settings.eventListenerBreakpoints = breakpoints;
     592        WebInspector.settings.eventListenerBreakpoints.set(breakpoints);
    593593    },
    594594
    595595    _restoreBreakpoints: function()
    596596    {
    597         var breakpoints = WebInspector.settings.eventListenerBreakpoints;
     597        var breakpoints = WebInspector.settings.eventListenerBreakpoints.get();
    598598        for (var i = 0; i < breakpoints.length; ++i) {
    599599            var breakpoint = breakpoints[i];
  • trunk/Source/WebCore/inspector/front-end/ConsoleView.js

    r90014 r90365  
    4949    this.promptElement.addEventListener("keydown", this._promptKeyDown.bind(this), true);
    5050    this.prompt = new WebInspector.TextPrompt(this.promptElement, this.completions.bind(this), ExpressionStopCharacters + ".");
    51     this.prompt.history = WebInspector.settings.consoleHistory;
     51    this.prompt.history = WebInspector.settings.consoleHistory.get();
    5252
    5353    this.topGroup = new WebInspector.ConsoleGroup(null);
     
    9999
    100100    this._registerConsoleDomainDispatcher();
     101
     102    WebInspector.settings.monitoringXHREnabled.addChangeListener(this._monitoringXHREnabledSettingChanged.bind(this));
    101103}
    102104
     
    148150            messagesCleared: function()
    149151            {
    150                 if (!WebInspector.settings.preserveConsoleLog)
     152                if (!WebInspector.settings.preserveConsoleLog.get())
    151153                    console.clearMessages();
    152154            },
     
    453455        var contextMenu = new WebInspector.ContextMenu();
    454456
    455         var monitoringXHRItemAction = function () {
    456             WebInspector.settings.monitoringXHREnabled = !WebInspector.settings.monitoringXHREnabled;
    457             ConsoleAgent.setMonitoringXHREnabled(WebInspector.settings.monitoringXHREnabled);
    458         }.bind(this);
    459         contextMenu.appendCheckboxItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles() ? "XMLHttpRequest logging" : "XMLHttpRequest Logging"), monitoringXHRItemAction, WebInspector.settings.monitoringXHREnabled);
    460 
    461         var preserveLogItemAction = function () {
    462             WebInspector.settings.preserveConsoleLog = !WebInspector.settings.preserveConsoleLog;
    463         }.bind(this);
    464         contextMenu.appendCheckboxItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles() ? "Preserve log" : "Preserve Log"), preserveLogItemAction, WebInspector.settings.preserveConsoleLog);
     457        function monitoringXHRItemAction()
     458        {
     459            WebInspector.settings.monitoringXHREnabled.set(!WebInspector.settings.monitoringXHREnabled.get());
     460        }
     461        contextMenu.appendCheckboxItem(WebInspector.UIString("Log XMLHttpRequests"), monitoringXHRItemAction.bind(this), WebInspector.settings.monitoringXHREnabled.get());
     462
     463        function preserveLogItemAction()
     464        {
     465            WebInspector.settings.preserveConsoleLog.set(!WebInspector.settings.preserveConsoleLog.get());
     466        }
     467        contextMenu.appendCheckboxItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles() ? "Preserve log upon navigation" : "Preserve Log upon Navigation"), preserveLogItemAction.bind(this), WebInspector.settings.preserveConsoleLog.get());
    465468
    466469        contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles() ? "Clear console" : "Clear Console"), this.requestClearMessages.bind(this));
    467470        contextMenu.show(event);
     471    },
     472
     473    _monitoringXHREnabledSettingChanged: function(event)
     474    {
     475        ConsoleAgent.setMonitoringXHREnabled(event.data);
    468476    },
    469477
     
    511519        this._shortcuts[shortcutL.key] = clearConsoleHandler;
    512520
    513         var section = WebInspector.shortcutsHelp.section(WebInspector.UIString("Console"));
     521        var section = WebInspector.shortcutsScreen.section(WebInspector.UIString("Console"));
    514522        var keys = WebInspector.isMac() ? [ shortcutK.name, shortcutL.name ] : [ shortcutL.name ];
    515523        section.addAlternateKeys(keys, WebInspector.UIString("Clear Console"));
     
    597605            self.prompt.text = "";
    598606
    599             WebInspector.settings.consoleHistory = self.prompt.history.slice(-30);
     607            WebInspector.settings.consoleHistory.set(self.prompt.history.slice(-30));
    600608
    601609            self.addMessage(new WebInspector.ConsoleCommandResult(result, wasThrown, commandMessage));
  • trunk/Source/WebCore/inspector/front-end/DOMBreakpointsSidebarPane.js

    r85597 r90365  
    265265    {
    266266        var breakpoints = [];
    267         var storedBreakpoints = WebInspector.settings.domBreakpoints;
     267        var storedBreakpoints = WebInspector.settings.domBreakpoints.get();
    268268        for (var i = 0; i < storedBreakpoints.length; ++i) {
    269269            var breakpoint = storedBreakpoints[i];
     
    275275            breakpoints.push({ url: this._inspectedURL, path: element._node.path(), type: element._type, enabled: element._checkboxElement.checked });
    276276        }
    277         WebInspector.settings.domBreakpoints = breakpoints;
     277        WebInspector.settings.domBreakpoints.set(breakpoints);
    278278    },
    279279
     
    293293        }
    294294
    295         var breakpoints = WebInspector.settings.domBreakpoints;
     295        var breakpoints = WebInspector.settings.domBreakpoints.get();
    296296        for (var i = 0; i < breakpoints.length; ++i) {
    297297            var breakpoint = breakpoints[i];
  • trunk/Source/WebCore/inspector/front-end/DebuggerPresentationModel.js

    r89428 r90365  
    506506    _restoreBreakpointsFromSettings: function()
    507507    {
    508         var breakpoints = WebInspector.settings.breakpoints;
     508        var breakpoints = WebInspector.settings.breakpoints.get();
    509509        for (var i = 0; i < breakpoints.length; ++i) {
    510510            var breakpointData = breakpoints[i];
     
    560560        }
    561561
    562         WebInspector.settings.breakpoints = serializedBreakpoints;
     562        WebInspector.settings.breakpoints.set(serializedBreakpoints);
    563563    },
    564564
  • trunk/Source/WebCore/inspector/front-end/ElementsPanel.js

    r90014 r90365  
    3636    this.contentElement.id = "elements-content";
    3737    this.contentElement.className = "outline-disclosure source-code";
    38     if (!WebInspector.settings.domWordWrap)
     38    if (!WebInspector.settings.domWordWrap.get())
    3939        this.contentElement.classList.add("nowrap");
     40    WebInspector.settings.domWordWrap.addChangeListener(this._domWordWrapSettingChanged.bind(this));
    4041
    4142    this.contentElement.addEventListener("contextmenu", this._contextMenuEventFired.bind(this), true);
     
    271272    _contextMenuEventFired: function(event)
    272273    {
    273         function isTextWrapped()
    274         {
    275             return !this.contentElement.hasStyleClass("nowrap");
    276         }
    277 
    278274        function toggleWordWrap()
    279275        {
    280             this.contentElement.classList.toggle("nowrap");
    281             WebInspector.settings.domWordWrap = !this.contentElement.classList.contains("nowrap");
    282 
    283             var treeElement = this.treeOutline.findTreeElement(this.focusedDOMNode);
    284             if (treeElement)
    285                 treeElement.updateSelection(); // Recalculate selection highlight dimensions.
     276            WebInspector.settings.domWordWrap.set(!WebInspector.settings.domWordWrap.get());
    286277        }
    287278
    288279        var contextMenu = new WebInspector.ContextMenu();
    289 
    290280        var populated = this.treeOutline.populateContextMenu(contextMenu, event);
    291281        if (populated)
    292282            contextMenu.appendSeparator();
    293         contextMenu.appendCheckboxItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles() ? "Word wrap" : "Word Wrap"), toggleWordWrap.bind(this), isTextWrapped.call(this));
     283        contextMenu.appendCheckboxItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles() ? "Word wrap" : "Word Wrap"), toggleWordWrap.bind(this), WebInspector.settings.domWordWrap.get());
    294284
    295285        contextMenu.show(event);
     286    },
     287
     288    _domWordWrapSettingChanged: function(event)
     289    {
     290        if (event.data)
     291            this.contentElement.removeStyleClass("nowrap");
     292        else
     293            this.contentElement.addStyleClass("nowrap");
     294
     295        var treeElement = this.treeOutline.findTreeElement(this.focusedDOMNode);
     296        if (treeElement)
     297            treeElement.updateSelection(); // Recalculate selection highlight dimensions.
    296298    },
    297299
     
    10611063    {
    10621064        var shortcut = WebInspector.KeyboardShortcut;
    1063         var section = WebInspector.shortcutsHelp.section(WebInspector.UIString("Elements Panel"));
     1065        var section = WebInspector.shortcutsScreen.section(WebInspector.UIString("Elements Panel"));
    10641066        var keys = [
    10651067            shortcut.shortcutToString(shortcut.Keys.Up),
  • trunk/Source/WebCore/inspector/front-end/EventListenersSidebarPane.js

    r90136 r90365  
    4848    this.settingsSelectElement.appendChild(option);
    4949
    50     var filter = WebInspector.settings.eventListenersFilter;
     50    var filter = WebInspector.settings.eventListenersFilter.get();
    5151    if (filter === "all")
    5252        this.settingsSelectElement[0].selected = true;
     
    116116    {
    117117        var selectedOption = this.settingsSelectElement[this.settingsSelectElement.selectedIndex];
    118         WebInspector.settings.eventListenersFilter = selectedOption.value;
     118        WebInspector.settings.eventListenersFilter.set(selectedOption.value);
    119119
    120120        for (var i = 0; i < this.sections.length; ++i)
     
    146146        // A Filtered Array simplifies when to create connectors
    147147        var filteredEventListeners = this.eventListeners;
    148         if (WebInspector.settings.eventListenersFilter === "selected") {
     148        if (WebInspector.settings.eventListenersFilter.get() == "selected") {
    149149            filteredEventListeners = [];
    150150            for (var i = 0; i < this.eventListeners.length; ++i) {
  • trunk/Source/WebCore/inspector/front-end/HelpScreen.js

    r81023 r90365  
    4444
    4545    closeButton.textContent = "\u2716"; // Code stands for HEAVY MULTIPLICATION X.
    46     closeButton.addEventListener("click", this._hide.bind(this), false);
     46    closeButton.addEventListener("click", this.hide.bind(this), false);
    4747    this._closeKeys = [
    4848        WebInspector.KeyboardShortcut.Keys.Enter.code,
     
    5050        WebInspector.KeyboardShortcut.Keys.Space.code,
    5151    ];
    52     document.body.appendChild(this._element);
    5352}
    5453
    5554WebInspector.HelpScreen.prototype = {
    56     show: function()
     55    show: function(onHide)
    5756    {
    5857        if (this._isShown)
    5958            return;
    6059
    61         this._element.style.visibility = "visible";
     60        document.body.appendChild(this._element);
    6261        this._isShown = true;
     62        this._onHide = onHide;
    6363        this._previousFocusElement = WebInspector.currentFocusElement;
    6464        WebInspector.currentFocusElement = this.contentElement;
    6565    },
    6666
    67     _hide: function()
     67    hide: function()
    6868    {
    6969        this._isShown = false;
    70         this._element.style.visibility = "hidden";
     70        document.body.removeChild(this._element);
    7171        WebInspector.currentFocusElement = this._previousFocusElement;
     72        if (this._onHide) {
     73            this._onHide();
     74            delete this._onHide;
     75        }
    7276    },
    7377
     
    7579    {
    7680        if (this._isShown && this._closeKeys.indexOf(event.keyCode) >= 0) {
    77             this._hide();
     81            this.hide();
    7882            event.stopPropagation();
    7983        }
  • trunk/Source/WebCore/inspector/front-end/NetworkItemView.js

    r89577 r90365  
    6868    {
    6969        if (!tabId)
    70             tabId = WebInspector.settings.resourceViewTab;
     70            tabId = WebInspector.settings.resourceViewTab.get();
    7171
    7272        if (!this._tabbedPane.selectTab(tabId)) {
     
    8080    {
    8181        if (event.data.isUserGesture)
    82             WebInspector.settings.resourceViewTab = event.data.tabId;
     82            WebInspector.settings.resourceViewTab.set(event.data.tabId);
    8383        this._installHighlightSupport(event.data.view);
    8484    },
  • trunk/Source/WebCore/inspector/front-end/NetworkPanel.js

    r90126 r90365  
    7575    this._createSummaryBar();
    7676
    77     if (!WebInspector.settings.resourcesLargeRows)
    78         this._setLargerResources(WebInspector.settings.resourcesLargeRows);
     77    if (!WebInspector.settings.resourcesLargeRows.get())
     78        this._setLargerResources(WebInspector.settings.resourcesLargeRows.get());
    7979
    8080    this._popoverHelper = new WebInspector.PopoverHelper(this.element, this._getPopoverAnchor.bind(this), this._showPopover.bind(this), true);
     
    610610
    611611        this._largerResourcesButton = new WebInspector.StatusBarButton(WebInspector.UIString("Use small resource rows."), "network-larger-resources-status-bar-item");
    612         this._largerResourcesButton.toggled = WebInspector.settings.resourcesLargeRows;
     612        this._largerResourcesButton.toggled = WebInspector.settings.resourcesLargeRows.get();
    613613        this._largerResourcesButton.addEventListener("click", this._toggleLargerResources.bind(this), false);
    614614    },
     
    852852    _toggleLargerResources: function()
    853853    {
    854         WebInspector.settings.resourcesLargeRows = !WebInspector.settings.resourcesLargeRows;
    855         this._setLargerResources(WebInspector.settings.resourcesLargeRows);
     854        WebInspector.settings.resourcesLargeRows.set(!WebInspector.settings.resourcesLargeRows.get());
     855        this._setLargerResources(WebInspector.settings.resourcesLargeRows.get());
    856856    },
    857857
  • trunk/Source/WebCore/inspector/front-end/Panel.js

    r89415 r90365  
    366366    restoreSidebarWidth: function()
    367367    {
    368         var sidebarWidth = WebInspector.settings[this._sidebarWidthSettingName()];
     368        var sidebarWidth = WebInspector.settings[this._sidebarWidthSettingName()].get();
    369369        this.updateSidebarWidth(sidebarWidth);
    370370    },
     
    374374        if (!this.sidebarElement)
    375375            return;
    376         WebInspector.settings[this._sidebarWidthSettingName()] = this.sidebarElement.offsetWidth;
     376        WebInspector.settings[this._sidebarWidthSettingName()].set(this.sidebarElement.offsetWidth);
    377377    },
    378378
  • trunk/Source/WebCore/inspector/front-end/ProfilesPanel.js

    r89386 r90365  
    132132    InspectorBackend.registerDomainDispatcher("Profiler", new WebInspector.ProfilerDispatcher(this));
    133133
    134     if (Preferences.profilerAlwaysEnabled || WebInspector.settings.profilerEnabled)
     134    if (Preferences.profilerAlwaysEnabled || WebInspector.settings.profilerEnabled.get())
    135135        ProfilerAgent.enable();
    136136    else {
     
    601601    {
    602602        if (this._profilerEnabled) {
    603             WebInspector.settings.profilerEnabled = false;
     603            WebInspector.settings.profilerEnabled.set(false);
    604604            ProfilerAgent.disable();
    605605        } else {
    606             WebInspector.settings.profilerEnabled = !!optionalAlways;
     606            WebInspector.settings.profilerEnabled.set(!!optionalAlways);
    607607            ProfilerAgent.enable();
    608608        }
  • trunk/Source/WebCore/inspector/front-end/ResourcesPanel.js

    r89577 r90365  
    116116    _initDefaultSelection: function()
    117117    {
    118         var itemURL = WebInspector.settings.resourcesLastSelectedItem;
     118        var itemURL = WebInspector.settings.resourcesLastSelectedItem.get();
    119119        if (itemURL) {
    120120            for (var treeElement = this.sidebarTree.children[0]; treeElement; treeElement = treeElement.traverseNextTreeElement(false, this.sidebarTree, true)) {
     
    956956        var itemURL = this.itemURL;
    957957        if (itemURL)
    958             WebInspector.settings.resourcesLastSelectedItem = itemURL;
     958            WebInspector.settings.resourcesLastSelectedItem.set(itemURL);
    959959    },
    960960
     
    10131013    {
    10141014        WebInspector.BaseStorageTreeElement.prototype.onattach.call(this);
    1015         if (WebInspector.settings[this._expandedSettingKey])
     1015        if (WebInspector.settings[this._expandedSettingKey].get())
    10161016            this.expand();
    10171017    },
     
    10191019    onexpand: function()
    10201020    {
    1021         WebInspector.settings[this._expandedSettingKey] = true;
     1021        WebInspector.settings[this._expandedSettingKey].set(true);
    10221022    },
    10231023
    10241024    oncollapse: function()
    10251025    {
    1026         WebInspector.settings[this._expandedSettingKey] = false;
     1026        WebInspector.settings[this._expandedSettingKey].set(false);
    10271027    }
    10281028}
  • trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js

    r89787 r90365  
    109109    if (Preferences.canInspectWorkers && WebInspector.workerManager)
    110110        this.sidebarElement.addEventListener("contextmenu", this._contextMenu.bind(this), false);
    111     if (Preferences.canInspectWorkers && WebInspector.workerManager && WebInspector.settings.workerInspectionEnabled) {
     111    if (Preferences.canInspectWorkers && WebInspector.workerManager && WebInspector.settings.workerInspectionEnabled.get()) {
    112112        WorkerAgent.setWorkerInspectionEnabled(true);
    113113        this.sidebarPanes.workerList = new WebInspector.WorkerListSidebarPane(WebInspector.workerManager);
     
    123123    this.sidebarPanes.jsBreakpoints.expanded = true;
    124124
    125     var helpSection = WebInspector.shortcutsHelp.section(WebInspector.UIString("Scripts Panel"));
     125    var helpSection = WebInspector.shortcutsScreen.section(WebInspector.UIString("Scripts Panel"));
    126126    this.sidebarPanes.callstack.registerShortcuts(helpSection, this.registerShortcut.bind(this));
    127127
     
    167167    this._presentationModel.addEventListener(WebInspector.DebuggerPresentationModel.Events.CallFrameSelected, this._callFrameSelected, this);
    168168
    169     var enableDebugger = Preferences.debuggerAlwaysEnabled || WebInspector.settings.debuggerEnabled;
     169    var enableDebugger = Preferences.debuggerAlwaysEnabled || WebInspector.settings.debuggerEnabled.get();
    170170    if (enableDebugger || InspectorFrontendHost.loadSessionSetting("debugger-enabled") === "true")
    171171        WebInspector.debuggerModel.enableDebugger();
     
    240240        this._addOptionToFilesSelect(sourceFile);
    241241
    242         var lastViewedURL = WebInspector.settings.lastViewedScriptFile;
     242        var lastViewedURL = WebInspector.settings.lastViewedScriptFile.get();
    243243        if (this._filesSelectElement.length === 1) {
    244244            // Option we just added is the only option in files select.
     
    247247            // Restore original value of lastViewedScriptFile because
    248248            // source frame was shown as a result of initial load.
    249             WebInspector.settings.lastViewedScriptFile = lastViewedURL;
     249            WebInspector.settings.lastViewedScriptFile.set(lastViewedURL);
    250250        } else if (sourceFile.url === lastViewedURL)
    251251            this._showSourceFrameAndAddToHistory(sourceFile.id);
     
    455455    _debuggerWasEnabled: function()
    456456    {
    457         this._setPauseOnExceptions(WebInspector.settings.pauseOnExceptionStateString);
     457        this._setPauseOnExceptions(WebInspector.settings.pauseOnExceptionStateString.get());
    458458
    459459        if (this._debuggerEnabled)
     
    594594        var sourceFile = this._presentationModel.sourceFile(sourceFileId);
    595595        if (sourceFile.url)
    596             WebInspector.settings.lastViewedScriptFile = sourceFile.url;
     596            WebInspector.settings.lastViewedScriptFile.set(sourceFile.url);
    597597
    598598        return sourceFrame;
     
    749749
    750750            this._pauseOnExceptionButton.state = pauseOnExceptionsState;
    751             WebInspector.settings.pauseOnExceptionStateString = pauseOnExceptionsState;
     751            WebInspector.settings.pauseOnExceptionStateString.set(pauseOnExceptionsState);
    752752        }
    753753        DebuggerAgent.setPauseOnExceptions(pauseOnExceptionsState, callback.bind(this));
     
    851851
    852852        if (this._debuggerEnabled) {
    853             WebInspector.settings.debuggerEnabled = false;
     853            WebInspector.settings.debuggerEnabled.set(false);
    854854            WebInspector.debuggerModel.disableDebugger();
    855855        } else {
    856             WebInspector.settings.debuggerEnabled = !!optionalAlways;
     856            WebInspector.settings.debuggerEnabled.set(!!optionalAlways);
    857857            WebInspector.debuggerModel.enableDebugger();
    858858        }
     
    991991            shortcutNames.push(shortcuts[i].name);
    992992        }
    993         var section = WebInspector.shortcutsHelp.section(WebInspector.UIString("Scripts Panel"));
     993        var section = WebInspector.shortcutsScreen.section(WebInspector.UIString("Scripts Panel"));
    994994        section.addAlternateKeys(shortcutNames, shortcutDescription);
    995995
     
    10781078        function enableWorkerInspection()
    10791079        {
    1080             var newValue = !WebInspector.settings.workerInspectionEnabled;
    1081             WebInspector.settings.workerInspectionEnabled = newValue;
     1080            var newValue = !WebInspector.settings.workerInspectionEnabled.get();
     1081            WebInspector.settings.workerInspectionEnabled.set(newValue);
    10821082            WorkerAgent.setWorkerInspectionEnabled(newValue);
    10831083            if (newValue) {
     
    10931093            }
    10941094        }
    1095         contextMenu.appendCheckboxItem(WebInspector.UIString("Enable worker inspection"), enableWorkerInspection.bind(this), WebInspector.settings.workerInspectionEnabled);
     1095        contextMenu.appendCheckboxItem(WebInspector.UIString("Enable worker inspection"), enableWorkerInspection.bind(this), WebInspector.settings.workerInspectionEnabled.get());
    10961096
    10971097        contextMenu.show(event);
  • trunk/Source/WebCore/inspector/front-end/Settings.js

    r89652 r90365  
    5858WebInspector.Settings = function()
    5959{
     60    this._eventSupport = new WebInspector.Object();
     61
    6062    this.installApplicationSetting("colorFormat", "hex");
    6163    this.installApplicationSetting("consoleHistory", []);
     
    9294        if (key in this)
    9395            return;
    94 
    95         this.__defineGetter__(key, this._get.bind(this, key, defaultValue));
    96         this.__defineSetter__(key, this._set.bind(this, key));
    97     },
    98 
    99     _get: function(key, defaultValue)
    100     {
    101         if (window.localStorage != null && key in window.localStorage) {
    102             try {
    103                 return JSON.parse(window.localStorage[key]);
    104             } catch(e) {
    105                 window.localStorage.removeItem(key);
    106             }
    107         }
    108         return defaultValue;
    109     },
    110 
    111     _set: function(key, value)
    112     {
    113         if (window.localStorage != null)
    114             window.localStorage[key] = JSON.stringify(value);
     96        this[key] = new WebInspector.Setting(key, defaultValue, this._eventSupport);
    11597    }
    11698}
    11799
    118 WebInspector.Settings.prototype.__proto__ = WebInspector.Object.prototype;
     100WebInspector.Setting = function(name, defaultValue, eventSupport)
     101{
     102    this._name = name;
     103    this._defaultValue = defaultValue;
     104    this._eventSupport = eventSupport;
     105}
     106
     107WebInspector.Setting.prototype = {
     108    addChangeListener: function(listener, thisObject)
     109    {
     110        this._eventSupport.addEventListener(this._name, listener, thisObject);
     111    },
     112
     113    removeChangeListener: function(listener, thisObject)
     114    {
     115        this._eventSupport.removeEventListener(this._name, listener, thisObject);
     116    },
     117
     118    get: function()
     119    {
     120        var value = this._defaultValue;
     121        if (window.localStorage != null && this._name in window.localStorage) {
     122            try {
     123                value = JSON.parse(window.localStorage[this._name]);
     124            } catch(e) {
     125                window.localStorage.removeItem(this._name);
     126            }
     127        }
     128        return value;
     129    },
     130
     131    set: function(value)
     132    {
     133        if (window.localStorage != null) {
     134            try {
     135                window.localStorage[this._name] = JSON.stringify(value);
     136            } catch(e) {
     137                console.error("Error saving setting with name:" + this._name);
     138            }
     139        }
     140        this._eventSupport.dispatchEventToListeners(this._name, value);
     141    }
     142}
  • trunk/Source/WebCore/inspector/front-end/ShortcutsScreen.js

    r90364 r90365  
    2929 */
    3030
    31 WebInspector.ShortcutsHelp = function()
     31WebInspector.ShortcutsScreen = function()
    3232{
    3333    this._sections = {};
    3434}
    3535
    36 WebInspector.ShortcutsHelp.prototype = {
     36WebInspector.ShortcutsScreen.prototype = {
    3737    section: function(name)
    3838    {
     
    8787};
    8888
    89 WebInspector.shortcutsHelp = new WebInspector.ShortcutsHelp();
     89WebInspector.shortcutsScreen = new WebInspector.ShortcutsScreen();
    9090
    9191WebInspector.ShortcutsSection = function(name)
  • trunk/Source/WebCore/inspector/front-end/StylesSidebarPane.js

    r90360 r90365  
    6161    this.settingsSelectElement.addEventListener("click", function(event) { event.stopPropagation() }, false);
    6262    this.settingsSelectElement.addEventListener("change", this._changeSetting.bind(this), false);
    63     var format = WebInspector.settings.colorFormat;
     63    var format = WebInspector.settings.colorFormat.get();
    6464    if (format === "original")
    6565        this.settingsSelectElement[0].selected = true;
     
    556556        var selectedIndex = 0;
    557557        for (var i = 0; i < options.length; ++i) {
    558             if (options[i].value === WebInspector.settings.colorFormat) {
     558            if (options[i].value === WebInspector.settings.colorFormat.get()) {
    559559                selectedIndex = i;
    560560                break;
     
    568568    {
    569569        var selectedOption = this.settingsSelectElement[this.settingsSelectElement.selectedIndex];
    570         WebInspector.settings.colorFormat = selectedOption.value;
     570        WebInspector.settings.colorFormat.set(selectedOption.value);
    571571
    572572        for (var pseudoId in this.sections) {
     
    615615    registerShortcuts: function()
    616616    {
    617         var section = WebInspector.shortcutsHelp.section(WebInspector.UIString("Styles Pane"));
     617        var section = WebInspector.shortcutsScreen.section(WebInspector.UIString("Styles Pane"));
    618618        var shortcut = WebInspector.KeyboardShortcut;
    619619        var keys = [
     
    658658    this.titleElement.appendChild(showInheritedCheckbox.element);
    659659
    660     if (WebInspector.settings.showInheritedComputedStyleProperties) {
     660    if (WebInspector.settings.showInheritedComputedStyleProperties.get()) {
    661661        this.bodyElement.addStyleClass("show-inherited");
    662662        showInheritedCheckbox.checked = true;
     
    665665    function showInheritedToggleFunction(event)
    666666    {
    667         WebInspector.settings.showInheritedComputedStyleProperties = showInheritedCheckbox.checked;
    668         if (WebInspector.settings.showInheritedComputedStyleProperties)
     667        WebInspector.settings.showInheritedComputedStyleProperties.set(showInheritedCheckbox.checked);
     668        if (WebInspector.settings.showInheritedComputedStyleProperties.get())
    669669            this.bodyElement.addStyleClass("show-inherited");
    670670        else
     
    13851385
    13861386                var format;
    1387                 if (WebInspector.settings.colorFormat === "original")
     1387                if (WebInspector.settings.colorFormat.get() === "original")
    13881388                    format = "original";
    13891389                else if (Preferences.showColorNicknames && color.nickname)
    13901390                    format = "nickname";
    1391                 else if (WebInspector.settings.colorFormat === "rgb")
     1391                else if (WebInspector.settings.colorFormat.get() === "rgb")
    13921392                    format = (color.simple ? "rgb" : "rgba");
    1393                 else if (WebInspector.settings.colorFormat === "hsl")
     1393                else if (WebInspector.settings.colorFormat.get() === "hsl")
    13941394                    format = (color.simple ? "hsl" : "hsla");
    13951395                else if (color.simple)
  • trunk/Source/WebCore/inspector/front-end/WatchExpressionsSidebarPane.js

    r88918 r90365  
    4040        this.bodyElement.removeChildren();
    4141
    42         this.expanded = WebInspector.settings.watchExpressions.length > 0;
     42        this.expanded = WebInspector.settings.watchExpressions.get().length > 0;
    4343        this.section = new WebInspector.WatchExpressionsSection();
    4444        this.bodyElement.appendChild(this.section.element);
     
    8787    this.emptyElement.textContent = WebInspector.UIString("No Watch Expressions");
    8888
    89     this.watchExpressions = WebInspector.settings.watchExpressions;
     89    this.watchExpressions = WebInspector.settings.watchExpressions.get();
    9090
    9191    this.headerElement.className = "hidden";
     
    206206                toSave.push(this.watchExpressions[i]);
    207207
    208         WebInspector.settings.watchExpressions = toSave;
     208        WebInspector.settings.watchExpressions.set(toSave);
    209209        return toSave.length;
    210210    },
  • trunk/Source/WebCore/inspector/front-end/WebKit.qrc

    r89577 r90365  
    100100    <file>Section.js</file>
    101101    <file>Settings.js</file>
    102     <file>ShortcutsHelp.js</file>
     102    <file>SettingsScreen.js</file>
     103    <file>ShortcutsScreen.js</file>
    103104    <file>ShowMoreDataGridNode.js</file>
    104105    <file>SidebarPane.js</file>
  • trunk/Source/WebCore/inspector/front-end/helpScreen.css

    r87068 r90365  
    1717.help-window-main {
    1818    max-height: 100%;
    19     opacity: 0.85;
    2019    color: white;
    21     background-color: black;
     20    background-color: rgba(0, 0, 0, 0.85);
    2221    display: -webkit-box;
    2322    -webkit-box-orient: vertical;
    24     border: 20px black solid;
    2523    border-top-width: 0;
    26     border-radius: 8px;
     24    border-radius: 15px;
    2725    -webkit-box-shadow: 10px 10px 8px rgba(40, 40, 40, 0.40);
    2826}
    2927
    3028body.attached .help-window-main {
    31     border-width: 10px;
     29    height: 100%;
     30    padding: 10px;
     31}
     32
     33body.attached .help-window-main {
    3234    border-radius: 0;
    3335    -webkit-box-shadow: 0 0 0;
     
    3537
    3638.help-window-caption {
    37     margin: 8px;
     39    margin: 8px 8px 0 8px;
    3840}
    3941
    4042body.attached .help-window-caption {
    41     display: none;
     43    margin: 0;
    4244}
    4345
     
    5355    scrollbar-width: 11px;
    5456    -webkit-box-flex: 1;
     57    margin: 10px;
     58    font-size: 13px;
    5559}
    5660
     
    8387    border: 0;
    8488    padding: 0;
    85     margin: 0px -20px 15px -20px;
    8689    font-size: 14px;
    8790    color: rgb(222, 222, 222);
     
    9093    height: 16px;
    9194    width: 16px;
     95}
     96
     97body.attached .help-close-button {
     98    margin: 0;
     99}
     100
     101body.attached .help-content {
     102    margin: 8px 0 0 8px;
    92103}
    93104
     
    108119.help-table {
    109120    width: 100%;
    110     font-size: 13px;
    111121    -webkit-user-select: auto;
    112122}
     
    132142
    133143body:not(.platform-mac) .help-key {
    134     font-weight: bold;
    135144    text-shadow: black 1px 1px 7px;
    136145}
     
    138147body.platform-mac .help-key {
    139148    font-family: Lucida Grande, sans-serif;
    140     font-size: 13px;
    141149}
    142150
    143151.help-combine-keys {
    144152    color: white;
    145     font-weight: bold;
    146153    margin: 0 0.3em;
    147154    font-size: 12px;
     
    152159    margin: 0 0.5em;
    153160}
     161
     162.help-content p {
     163    margin: 5px 0 5px 0;
     164}
     165
     166.help-content fieldset {
     167    border: none;
     168    margin-left: 9px;
     169}
     170
     171.help-content fieldset p {
     172    border-left: 1px solid rgb(128,128,128);
     173    margin: 0 0 0 6px;
     174    padding-left: 3px;
     175}
     176
     177.help-content p.help-section {
     178    margin-bottom: 15px;
     179}
     180
     181.help-section-title {
     182    color: yellow;
     183}
     184
     185.help-content input[type=checkbox] {
     186    height: 13px;
     187    width: 13px;
     188    margin-right: 0;
     189    margin-right: 4px;
     190}
  • trunk/Source/WebCore/inspector/front-end/inspector.css

    r90362 r90365  
    559559}
    560560
     561button.settings-status-bar-item {
     562    position: absolute;
     563    right: 0;
     564}
     565
     566.settings-status-bar-item .glyph {
     567    -webkit-mask-position: -160px -24px;
     568}
     569
     570
    561571body.port-qt #dock-status-bar-item {
    562572    display: none
  • trunk/Source/WebCore/inspector/front-end/inspector.html

    r90014 r90365  
    162162    <script type="text/javascript" src="HelpScreen.js"></script>
    163163    <script type="text/javascript" src="GoToLineDialog.js"></script>
    164     <script type="text/javascript" src="ShortcutsHelp.js"></script>
     164    <script type="text/javascript" src="SettingsScreen.js"></script>
     165    <script type="text/javascript" src="ShortcutsScreen.js"></script>
    165166    <script type="text/javascript" src="HAREntry.js"></script>
    166167    <script type="text/javascript" src="CookieParser.js"></script>
  • trunk/Source/WebCore/inspector/front-end/inspector.js

    r90307 r90365  
    146146        for (var panelName in WebInspector.panels) {
    147147            if (WebInspector.panels[panelName] === x) {
    148                 WebInspector.settings.lastActivePanel = panelName;
     148                WebInspector.settings.lastActivePanel.set(panelName);
    149149                this._panelHistory.setPanel(panelName);
    150150            }
     
    181181    {
    182182        this._dockToggleButton = new WebInspector.StatusBarButton(this._dockButtonTitle(), "dock-status-bar-item");
    183         this._dockToggleButton.addEventListener("click", this.toggleAttach.bind(this), false);
     183        this._dockToggleButton.addEventListener("click", this._toggleAttach.bind(this), false);
    184184        this._dockToggleButton.toggled = !this.attached;
     185
     186        this._settingsButton = new WebInspector.StatusBarButton(WebInspector.UIString("Settings"), "settings-status-bar-item");
     187        this._settingsButton.addEventListener("click", this._toggleSettings.bind(this), false);
    185188
    186189        var anchoredStatusBar = document.getElementById("anchored-status-bar-items");
     
    189192        if (this.panels.elements)
    190193            anchoredStatusBar.appendChild(this.panels.elements.nodeSearchButton.element);
     194
     195        // FIXME: uncomment once ready.
     196        // anchoredStatusBar.appendChild(this._settingsButton.element);
    191197    },
    192198
     
    194200    {
    195201        return this.attached ? WebInspector.UIString("Undock into separate window.") : WebInspector.UIString("Dock to main window.");
     202    },
     203
     204    _toggleAttach: function()
     205    {
     206        if (!this._attached)
     207            InspectorFrontendHost.requestAttachWindow();
     208        else
     209            InspectorFrontendHost.requestDetachWindow();
     210    },
     211
     212    _toggleSettings: function()
     213    {
     214        function onhide()
     215        {
     216            this._settingsButton.toggled = false;
     217        }
     218
     219        this._settingsButton.toggled = !this._settingsButton.toggled;
     220        if (this._settingsButton.toggled) {
     221            this._settingsScreen = new WebInspector.SettingsScreen();
     222            this._settingsScreen.show(onhide.bind(this));
     223        } else if (this._settingsScreen) {
     224            this._settingsScreen.hide();
     225            delete this._settingsScreen;
     226        }
    196227    },
    197228
     
    437468
    438469    // set order of some sections explicitly
    439     WebInspector.shortcutsHelp.section(WebInspector.UIString("Console"));
    440     WebInspector.shortcutsHelp.section(WebInspector.UIString("Elements Panel"));
     470    WebInspector.shortcutsScreen.section(WebInspector.UIString("Console"));
     471    WebInspector.shortcutsScreen.section(WebInspector.UIString("Elements Panel"));
    441472
    442473    this.drawer = new WebInspector.Drawer();
     
    502533    this.extensionServer.initExtensions();
    503534
    504     if (WebInspector.settings.monitoringXHREnabled)
     535    if (WebInspector.settings.monitoringXHREnabled.get())
    505536        ConsoleAgent.setMonitoringXHREnabled(true);
    506537    ConsoleAgent.enable(this.console.setConsoleMessageExpiredCount.bind(this.console));
     
    509540    DOMStorageAgent.enable();
    510541
    511     WebInspector.showPanel(WebInspector.settings.lastActivePanel);
     542    WebInspector.showPanel(WebInspector.settings.lastActivePanel.get());
    512543
    513544    function propertyNamesCallback(error, names)
     
    678709{
    679710    var shortcut = WebInspector.KeyboardShortcut;
    680     var section = WebInspector.shortcutsHelp.section(WebInspector.UIString("All Panels"));
     711    var section = WebInspector.shortcutsScreen.section(WebInspector.UIString("All Panels"));
    681712    var keys = [
    682713        shortcut.shortcutToString("]", shortcut.Modifiers.CtrlOrMeta),
     
    706737    if (event.keyIdentifier === "F1" ||
    707738        (event.keyIdentifier === helpKey && event.shiftKey && (!isInEditMode && !isInputElement || event.metaKey))) {
    708         WebInspector.shortcutsHelp.show();
     739        WebInspector.shortcutsScreen.show();
    709740        event.stopPropagation();
    710741        event.preventDefault();
     
    929960}
    930961
    931 WebInspector.toggleAttach = function()
    932 {
    933     if (!this.attached)
    934         InspectorFrontendHost.requestAttachWindow();
    935     else
    936         InspectorFrontendHost.requestDetachWindow();
    937 }
    938 
    939962WebInspector.elementDragStart = function(element, dividerDrag, elementDragEnd, event, cursor)
    940963{
     
    10041027    this.highlightDOMNode(0);
    10051028
    1006     if (!WebInspector.settings.preserveConsoleLog)
     1029    if (!WebInspector.settings.preserveConsoleLog.get())
    10071030        this.console.clearMessages();
    10081031    this.extensionServer.notifyInspectorReset();
Note: See TracChangeset for help on using the changeset viewer.