Unverified Commit 48f5a791 authored by David Disu's avatar David Disu Committed by GitHub

Merge pull request #536 from ethereum/title-tab

Display least path difference in title of tabs
parents 2823b1f0 690a86a1
...@@ -14,6 +14,7 @@ export class TabProxy { ...@@ -14,6 +14,7 @@ export class TabProxy {
this.data = {} this.data = {}
this._view = {} this._view = {}
this._handlers = {} this._handlers = {}
this.loadedTabs = []
globalRegistry.get('themeModule').api.events.on('themeChanged', (theme) => { globalRegistry.get('themeModule').api.events.on('themeChanged', (theme) => {
// update invert for all icons // update invert for all icons
...@@ -136,9 +137,52 @@ export class TabProxy { ...@@ -136,9 +137,52 @@ export class TabProxy {
if (this._handlers[name]) return if (this._handlers[name]) return
var slash = name.split('/') var slash = name.split('/')
if (!title) { const tabPath = slash.reverse()
title = name.indexOf('/') !== -1 ? slash[slash.length - 1] : name const tempTitle = []
for(let i = 0; i < tabPath.length; i++) {
tempTitle.push(tabPath[i])
const formatPath = [...tempTitle].reverse()
if(!title) {
const index = this.loadedTabs.findIndex(({ title }) => title === formatPath.join('/'))
if (index === -1) {
title = formatPath.join('/')
const titleLength = formatPath.length
this.loadedTabs.push({
name,
title
})
formatPath.shift()
if (formatPath.length > 0) {
const duplicateTabName = this.loadedTabs.find(({ title }) => title === formatPath.join('/')).name
const duplicateTabPath = duplicateTabName.split('/')
const duplicateTabFormatPath = [...duplicateTabPath].reverse()
const duplicateTabTitle = duplicateTabFormatPath.slice(0, titleLength).reverse().join('/')
this.loadedTabs.push({
name: duplicateTabName,
title: duplicateTabTitle
})
this._view.filetabs.removeTab(duplicateTabName)
this._view.filetabs.addTab({
id: duplicateTabName,
title: duplicateTabTitle,
icon,
tooltip: duplicateTabName
})
}
break;
}
} else {
this.loadedTabs.push({
name,
title
})
}
} }
this._view.filetabs.addTab({ this._view.filetabs.addTab({
id: name, id: name,
title, title,
...@@ -153,6 +197,7 @@ export class TabProxy { ...@@ -153,6 +197,7 @@ export class TabProxy {
this._view.filetabs.removeTab(name) this._view.filetabs.removeTab(name)
delete this._handlers[name] delete this._handlers[name]
this.switchToActiveTab() this.switchToActiveTab()
this.loadedTabs = this.loadedTabs.filter(tab => tab.name !== name)
} }
addHandler (type, fn) { addHandler (type, fn) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment