diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-04-10 09:28:39 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-04-10 09:28:39 +0000 |
commit | 32761a6cee1d0dee366b885b7b9c777e67885688 (patch) | |
tree | d6bec92bebfb216f4126356e55518842c2f476a1 /Source/WebInspectorUI/UserInterface/Views/NewTabContentView.js | |
parent | a4e969f4965059196ca948db781e52f7cfebf19e (diff) | |
download | WebKitGtk-tarball-32761a6cee1d0dee366b885b7b9c777e67885688.tar.gz |
webkitgtk-2.4.11webkitgtk-2.4.11
Diffstat (limited to 'Source/WebInspectorUI/UserInterface/Views/NewTabContentView.js')
-rw-r--r-- | Source/WebInspectorUI/UserInterface/Views/NewTabContentView.js | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/Source/WebInspectorUI/UserInterface/Views/NewTabContentView.js b/Source/WebInspectorUI/UserInterface/Views/NewTabContentView.js deleted file mode 100644 index a7229200e..000000000 --- a/Source/WebInspectorUI/UserInterface/Views/NewTabContentView.js +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright (C) 2015 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - * THE POSSIBILITY OF SUCH DAMAGE. - */ - -WebInspector.NewTabContentView = class NewTabContentView extends WebInspector.TabContentView -{ - constructor(identifier) - { - let {image, title} = WebInspector.NewTabContentView.tabInfo(); - let tabBarItem = new WebInspector.TabBarItem(image, title); - tabBarItem.isDefaultTab = true; - - super(identifier || "new-tab", "new-tab", tabBarItem); - - WebInspector.notifications.addEventListener(WebInspector.Notification.TabTypesChanged, this._updateShownTabs.bind(this)); - - this._tabElementsByTabClass = new Map; - this._updateShownTabs(); - } - - static tabInfo() - { - return { - image: "Images/NewTab.svg", - title: WebInspector.UIString("New Tab"), - }; - } - - static isEphemeral() - { - return true; - } - - static shouldSaveTab() - { - return false; - } - - // Public - - get type() - { - return WebInspector.NewTabContentView.Type; - } - - shown() - { - WebInspector.tabBrowser.tabBar.addEventListener(WebInspector.TabBar.Event.TabBarItemAdded, this._updateTabItems, this); - WebInspector.tabBrowser.tabBar.addEventListener(WebInspector.TabBar.Event.TabBarItemRemoved, this._updateTabItems, this); - - this._updateTabItems(); - } - - hidden() - { - WebInspector.tabBrowser.tabBar.removeEventListener(null, null, this); - } - - get supportsSplitContentBrowser() - { - // Showing the split console is problematic because some new tabs will cause it to - // disappear and not reappear, but others won't. Just prevent it from ever showing. - return false; - } - - layout() - { - this._tabElementsByTabClass.clear(); - this.element.removeChildren(); - - for (let tabClass of this._shownTabClasses) { - let tabItemElement = document.createElement("div"); - tabItemElement.classList.add("tab-item"); - tabItemElement.addEventListener("click", this._createNewTabWithType.bind(this, tabClass.Type)); - tabItemElement[WebInspector.NewTabContentView.TypeSymbol] = tabClass.Type; - - let boxElement = tabItemElement.appendChild(document.createElement("div")); - boxElement.classList.add("box"); - - let info = tabClass.tabInfo(); - let imageElement = boxElement.appendChild(document.createElement("img")); - imageElement.src = info.image; - - let labelElement = tabItemElement.appendChild(document.createElement("label")); - labelElement.textContent = info.title; - - this.element.appendChild(tabItemElement); - this._tabElementsByTabClass.set(tabClass, tabItemElement); - } - - this._updateTabItems(); - } - - // Private - - _createNewTabWithType(tabType, event) - { - if (!WebInspector.isNewTabWithTypeAllowed(tabType)) - return; - - const canCreateAdditionalTabs = this._allowableTabTypes().length > 1; - const options = { - referencedView: this, - shouldReplaceTab: !canCreateAdditionalTabs || !WebInspector.modifierKeys.metaKey, - shouldShowNewTab: !WebInspector.modifierKeys.metaKey - } - WebInspector.createNewTabWithType(tabType, options); - } - - _updateShownTabs() - { - let allTabClasses = [...WebInspector.knownTabClasses()]; - let allowedTabClasses = allTabClasses.filter((tabClass) => tabClass.isTabAllowed() && !tabClass.isEphemeral()); - allowedTabClasses.sort((a, b) => a.tabInfo().title.localeCompare(b.tabInfo().title)); - - if (Object.shallowEqual(this._shownTabClasses, allowedTabClasses)) - return; - - this._shownTabClasses = allowedTabClasses; - this.needsLayout(); - } - - _allowableTabTypes() - { - let tabTypes = this._shownTabClasses.map((tabClass) => tabClass.Type); - return tabTypes.filter((type) => WebInspector.isNewTabWithTypeAllowed(type)); - } - - _updateTabItems() - { - for (let [tabClass, tabItemElement] of this._tabElementsByTabClass.entries()) { - let allowed = WebInspector.isNewTabWithTypeAllowed(tabClass.Type); - tabItemElement.classList.toggle(WebInspector.NewTabContentView.DisabledStyleClassName, !allowed); - } - } -}; - -WebInspector.NewTabContentView.Type = "new-tab"; -WebInspector.NewTabContentView.TypeSymbol = Symbol("type"); - -WebInspector.NewTabContentView.TabItemStyleClassName = "tab-item"; -WebInspector.NewTabContentView.DisabledStyleClassName = "disabled"; |