Move some utilities from TSTBase to TSTUtils
This commit is contained in:
parent
7f1196e0ef
commit
573f1d179d
@ -234,69 +234,6 @@ var TreeStyleTabBase = inherit(TreeStyleTabConstants, {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
updateNarrowScrollbarStyle : function TSTBase_updateNarrowScrollbarStyle()
|
|
||||||
{
|
|
||||||
const SSS = Cc['@mozilla.org/content/style-sheet-service;1']
|
|
||||||
.getService(Ci.nsIStyleSheetService);
|
|
||||||
|
|
||||||
if (this.lastAgentSheet &&
|
|
||||||
SSS.sheetRegistered(this.lastAgentSheet, SSS.AGENT_SHEET))
|
|
||||||
SSS.unregisterSheet(this.lastAgentSheet, SSS.AGENT_SHEET);
|
|
||||||
|
|
||||||
const style = 'data:text/css,'+encodeURIComponent(
|
|
||||||
('@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");' +
|
|
||||||
|
|
||||||
'tabs.tabbrowser-tabs[%MODE%="vertical"][%NARROW%="true"]' +
|
|
||||||
' .tabbrowser-arrowscrollbox' +
|
|
||||||
' > scrollbox' +
|
|
||||||
' > scrollbar[orient="vertical"],' +
|
|
||||||
'tabs.tabbrowser-tabs[%MODE%="vertical"][%NARROW%="true"]' +
|
|
||||||
' .tabbrowser-arrowscrollbox' +
|
|
||||||
' > scrollbox' +
|
|
||||||
' > scrollbar[orient="vertical"] * {' +
|
|
||||||
' max-width: %SIZE%;' +
|
|
||||||
' min-width: %SIZE%;' +
|
|
||||||
'}' +
|
|
||||||
|
|
||||||
'tabs.tabbrowser-tabs[%MODE%="vertical"][%NARROW%="true"]' +
|
|
||||||
' .tabbrowser-arrowscrollbox' +
|
|
||||||
' > scrollbox' +
|
|
||||||
' > scrollbar[orient="vertical"] {' +
|
|
||||||
' font-size: %SIZE%;' +
|
|
||||||
'}' +
|
|
||||||
|
|
||||||
'tabs.tabbrowser-tabs[%MODE%="vertical"][%NARROW%="true"]' +
|
|
||||||
' .tabbrowser-arrowscrollbox' +
|
|
||||||
' > scrollbox' +
|
|
||||||
' > scrollbar[orient="vertical"] * {' +
|
|
||||||
' padding-left: 0;' +
|
|
||||||
' padding-right: 0;' +
|
|
||||||
' margin-left: 0;' +
|
|
||||||
' margin-right: 0;' +
|
|
||||||
'}' +
|
|
||||||
|
|
||||||
'%FORCE_NARROW_SCROLLBAR%')
|
|
||||||
.replace(/%FORCE_NARROW_SCROLLBAR%/g,
|
|
||||||
utils.getTreePref('tabbar.narrowScrollbar.overrideSystemAppearance') ?
|
|
||||||
this.kOVERRIDE_SYSTEM_SCROLLBAR_APPEARANCE : '' )
|
|
||||||
.replace(/%MODE%/g, this.kMODE)
|
|
||||||
.replace(/%NARROW%/g, this.kNARROW_SCROLLBAR)
|
|
||||||
.replace(/%SIZE%/g, utils.getTreePref('tabbar.narrowScrollbar.size'))
|
|
||||||
);
|
|
||||||
this.lastAgentSheet = this.makeURIFromSpec(style);
|
|
||||||
SSS.loadAndRegisterSheet(this.lastAgentSheet, SSS.AGENT_SHEET);
|
|
||||||
},
|
|
||||||
kOVERRIDE_SYSTEM_SCROLLBAR_APPEARANCE :
|
|
||||||
'tabs.tabbrowser-tabs[%MODE%="vertical"][%NARROW%="true"]' +
|
|
||||||
' .tabbrowser-arrowscrollbox' +
|
|
||||||
' > scrollbox' +
|
|
||||||
' > scrollbar[orient="vertical"] {' +
|
|
||||||
' appearance: none;' +
|
|
||||||
' -moz-appearance: none;' +
|
|
||||||
' background: ThreeDFace;' +
|
|
||||||
' border: 1px solid ThreeDShadow;' +
|
|
||||||
'}',
|
|
||||||
lastAgentSheet : null,
|
|
||||||
|
|
||||||
/* references to the owner */
|
/* references to the owner */
|
||||||
|
|
||||||
@ -707,32 +644,6 @@ var TreeStyleTabBase = inherit(TreeStyleTabConstants, {
|
|||||||
return 'tabs-closed-set-<'+Date.now()+'-'+parseInt(Math.random() * 65000)+'>';
|
return 'tabs-closed-set-<'+Date.now()+'-'+parseInt(Math.random() * 65000)+'>';
|
||||||
},
|
},
|
||||||
|
|
||||||
makeURIFromSpec : function TSTBase_makeURIFromSpec(aURI)
|
|
||||||
{
|
|
||||||
var newURI;
|
|
||||||
aURI = aURI || '';
|
|
||||||
if (aURI && String(aURI).indexOf('file:') == 0) {
|
|
||||||
var fileHandler = Services.io.getProtocolHandler('file').QueryInterface(Ci.nsIFileProtocolHandler);
|
|
||||||
var tempLocalFile = fileHandler.getFileFromURLSpec(aURI);
|
|
||||||
newURI = Services.io.newFileURI(tempLocalFile);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (!/^\w+\:/.test(aURI))
|
|
||||||
aURI = 'http://'+aURI;
|
|
||||||
newURI = Services.io.newURI(aURI, null, null);
|
|
||||||
}
|
|
||||||
return newURI;
|
|
||||||
},
|
|
||||||
|
|
||||||
getGroupTabURI : function TSTBase_getGroupTabURI(aOptions)
|
|
||||||
{
|
|
||||||
aOptions = aOptions || {};
|
|
||||||
var parameters = [];
|
|
||||||
parameters.push('title=' + encodeURIComponent(aOptions.title || ''));
|
|
||||||
parameters.push('temporary=' + !!aOptions.temporary);
|
|
||||||
return 'about:treestyletab-group?' + parameters.join('&');
|
|
||||||
},
|
|
||||||
|
|
||||||
/* Session Store API */
|
/* Session Store API */
|
||||||
|
|
||||||
getTabValue : function TSTBase_getTabValue(aTab, aKey)
|
getTabValue : function TSTBase_getTabValue(aTab, aKey)
|
||||||
@ -2366,7 +2277,7 @@ var TreeStyleTabBase = inherit(TreeStyleTabConstants, {
|
|||||||
return this.scrollToNewTabMode = value;
|
return this.scrollToNewTabMode = value;
|
||||||
|
|
||||||
case 'extensions.treestyletab.tabbar.narrowScrollbar.size':
|
case 'extensions.treestyletab.tabbar.narrowScrollbar.size':
|
||||||
return this.updateNarrowScrollbarStyle();
|
return utils.updateNarrowScrollbarStyle();
|
||||||
|
|
||||||
case 'browser.tabs.animate':
|
case 'browser.tabs.animate':
|
||||||
return this.animationEnabled = value;
|
return this.animationEnabled = value;
|
||||||
|
@ -330,7 +330,7 @@ var TreeStyleTabBookmarksService = inherit(TreeStyleTabConstants, {
|
|||||||
) {
|
) {
|
||||||
aIDs.unshift(-1);
|
aIDs.unshift(-1);
|
||||||
treeStructure = this.getTreeStructureFromItems(aIDs, 0);
|
treeStructure = this.getTreeStructureFromItems(aIDs, 0);
|
||||||
let uri = TST.getGroupTabURI({
|
let uri = utils.getGroupTabURI({
|
||||||
title: aFolderTitle,
|
title: aFolderTitle,
|
||||||
temporary: utils.getTreePref('openGroupBookmark.temporaryGroup')
|
temporary: utils.getTreePref('openGroupBookmark.temporaryGroup')
|
||||||
});
|
});
|
||||||
|
@ -5770,7 +5770,7 @@ TreeStyleTabBrowser.prototype = inherit(TreeStyleTabWindow.prototype, {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (aInfo.behavior == this.kCLOSE_PARENT_BEHAVIOR_REPLACE_WITH_GROUP_TAB) {
|
if (aInfo.behavior == this.kCLOSE_PARENT_BEHAVIOR_REPLACE_WITH_GROUP_TAB) {
|
||||||
let uri = this.getGroupTabURI({
|
let uri = utils.getGroupTabURI({
|
||||||
title: aTab.label,
|
title: aTab.label,
|
||||||
temporary: true
|
temporary: true
|
||||||
});
|
});
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
* The Original Code is the Tree Style Tab.
|
* The Original Code is the Tree Style Tab.
|
||||||
*
|
*
|
||||||
* The Initial Developer of the Original Code is YUKI "Piro" Hiroshi.
|
* The Initial Developer of the Original Code is YUKI "Piro" Hiroshi.
|
||||||
* Portions created by the Initial Developer are Copyright (C) 2010-2015
|
* Portions created by the Initial Developer are Copyright (C) 2010-2016
|
||||||
* the Initial Developer. All Rights Reserved.
|
* the Initial Developer. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Contributor(s): YUKI "Piro" Hiroshi <piro.outsider.reflex@gmail.com>
|
* Contributor(s): YUKI "Piro" Hiroshi <piro.outsider.reflex@gmail.com>
|
||||||
@ -79,14 +79,14 @@ TabbarDNDObserver.prototype = {
|
|||||||
|
|
||||||
readyToStartTabbarDrag : function TabbarDND_readyToStartTabbarDrag()
|
readyToStartTabbarDrag : function TabbarDND_readyToStartTabbarDrag()
|
||||||
{
|
{
|
||||||
var sheet = this.treeStyleTab.makeURIFromSpec('chrome://treestyletab/content/hide-embed.css');
|
var sheet = utils.makeURIFromSpec('chrome://treestyletab/content/hide-embed.css');
|
||||||
if (!SSS.sheetRegistered(sheet, SSS.AGENT_SHEET))
|
if (!SSS.sheetRegistered(sheet, SSS.AGENT_SHEET))
|
||||||
SSS.loadAndRegisterSheet(sheet, SSS.AGENT_SHEET);
|
SSS.loadAndRegisterSheet(sheet, SSS.AGENT_SHEET);
|
||||||
},
|
},
|
||||||
|
|
||||||
readyToEndTabbarDrag : function TabbarDND_readyToEndTabbarDrag()
|
readyToEndTabbarDrag : function TabbarDND_readyToEndTabbarDrag()
|
||||||
{
|
{
|
||||||
var sheet = this.treeStyleTab.makeURIFromSpec('chrome://treestyletab/content/hide-embed.css');
|
var sheet = utils.makeURIFromSpec('chrome://treestyletab/content/hide-embed.css');
|
||||||
if (SSS.sheetRegistered(sheet, SSS.AGENT_SHEET))
|
if (SSS.sheetRegistered(sheet, SSS.AGENT_SHEET))
|
||||||
SSS.unregisterSheet(sheet, SSS.AGENT_SHEET);
|
SSS.unregisterSheet(sheet, SSS.AGENT_SHEET);
|
||||||
},
|
},
|
||||||
@ -1219,7 +1219,7 @@ catch(e) {
|
|||||||
}
|
}
|
||||||
let normalizedURI;
|
let normalizedURI;
|
||||||
try {
|
try {
|
||||||
normalizedURI = this.treeStyleTab.makeURIFromSpec(aURI);
|
normalizedURI = utils.makeURIFromSpec(aURI);
|
||||||
}
|
}
|
||||||
catch(e) {
|
catch(e) {
|
||||||
}
|
}
|
||||||
@ -1291,7 +1291,7 @@ catch(e) {
|
|||||||
}
|
}
|
||||||
// When a blank folder is dropped, just open a dummy tab with the folder name.
|
// When a blank folder is dropped, just open a dummy tab with the folder name.
|
||||||
if (children && children.length == 0) {
|
if (children && children.length == 0) {
|
||||||
let uri = this.treeStyleTab.getGroupTabURI({ title: item.title });
|
let uri = utils.getGroupTabURI({ title: item.title });
|
||||||
return [uri];
|
return [uri];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
* The Original Code is the Tree Style Tab.
|
* The Original Code is the Tree Style Tab.
|
||||||
*
|
*
|
||||||
* The Initial Developer of the Original Code is YUKI "Piro" Hiroshi.
|
* The Initial Developer of the Original Code is YUKI "Piro" Hiroshi.
|
||||||
* Portions created by the Initial Developer are Copyright (C) 2010-2015
|
* Portions created by the Initial Developer are Copyright (C) 2010-2016
|
||||||
* the Initial Developer. All Rights Reserved.
|
* the Initial Developer. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Contributor(s): YUKI "Piro" Hiroshi <piro.outsider.reflex@gmail.com>
|
* Contributor(s): YUKI "Piro" Hiroshi <piro.outsider.reflex@gmail.com>
|
||||||
@ -498,6 +498,101 @@ var TreeStyleTabUtils = {
|
|||||||
return aTreeStructure;
|
return aTreeStructure;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
updateNarrowScrollbarStyle : function utils_updateNarrowScrollbarStyle()
|
||||||
|
{
|
||||||
|
const SSS = Cc['@mozilla.org/content/style-sheet-service;1']
|
||||||
|
.getService(Ci.nsIStyleSheetService);
|
||||||
|
|
||||||
|
if (this.lastAgentSheetForNarrowScrollbar &&
|
||||||
|
SSS.sheetRegistered(this.lastAgentSheetForNarrowScrollbar, SSS.AGENT_SHEET))
|
||||||
|
SSS.unregisterSheet(this.lastAgentSheetForNarrowScrollbar, SSS.AGENT_SHEET);
|
||||||
|
|
||||||
|
const style = 'data:text/css,'+encodeURIComponent(
|
||||||
|
('@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");' +
|
||||||
|
|
||||||
|
'tabs.tabbrowser-tabs[%MODE%="vertical"][%NARROW%="true"]' +
|
||||||
|
' .tabbrowser-arrowscrollbox' +
|
||||||
|
' > scrollbox' +
|
||||||
|
' > scrollbar[orient="vertical"],' +
|
||||||
|
'tabs.tabbrowser-tabs[%MODE%="vertical"][%NARROW%="true"]' +
|
||||||
|
' .tabbrowser-arrowscrollbox' +
|
||||||
|
' > scrollbox' +
|
||||||
|
' > scrollbar[orient="vertical"] * {' +
|
||||||
|
' max-width: %SIZE%;' +
|
||||||
|
' min-width: %SIZE%;' +
|
||||||
|
'}' +
|
||||||
|
|
||||||
|
'tabs.tabbrowser-tabs[%MODE%="vertical"][%NARROW%="true"]' +
|
||||||
|
' .tabbrowser-arrowscrollbox' +
|
||||||
|
' > scrollbox' +
|
||||||
|
' > scrollbar[orient="vertical"] {' +
|
||||||
|
' font-size: %SIZE%;' +
|
||||||
|
'}' +
|
||||||
|
|
||||||
|
'tabs.tabbrowser-tabs[%MODE%="vertical"][%NARROW%="true"]' +
|
||||||
|
' .tabbrowser-arrowscrollbox' +
|
||||||
|
' > scrollbox' +
|
||||||
|
' > scrollbar[orient="vertical"] * {' +
|
||||||
|
' padding-left: 0;' +
|
||||||
|
' padding-right: 0;' +
|
||||||
|
' margin-left: 0;' +
|
||||||
|
' margin-right: 0;' +
|
||||||
|
'}' +
|
||||||
|
|
||||||
|
'%FORCE_NARROW_SCROLLBAR%')
|
||||||
|
.replace(/%FORCE_NARROW_SCROLLBAR%/g,
|
||||||
|
utils.getTreePref('tabbar.narrowScrollbar.overrideSystemAppearance') ?
|
||||||
|
this.kOVERRIDE_SYSTEM_SCROLLBAR_APPEARANCE : '' )
|
||||||
|
.replace(/%MODE%/g, this.kMODE)
|
||||||
|
.replace(/%NARROW%/g, this.kNARROW_SCROLLBAR)
|
||||||
|
.replace(/%SIZE%/g, utils.getTreePref('tabbar.narrowScrollbar.size'))
|
||||||
|
);
|
||||||
|
this.lastAgentSheetForNarrowScrollbar = this.makeURIFromSpec(style);
|
||||||
|
SSS.loadAndRegisterSheet(this.lastAgentSheetForNarrowScrollbar, SSS.AGENT_SHEET);
|
||||||
|
},
|
||||||
|
kOVERRIDE_SYSTEM_SCROLLBAR_APPEARANCE :
|
||||||
|
'tabs.tabbrowser-tabs[%MODE%="vertical"][%NARROW%="true"]' +
|
||||||
|
' .tabbrowser-arrowscrollbox' +
|
||||||
|
' > scrollbox' +
|
||||||
|
' > scrollbar[orient="vertical"] {' +
|
||||||
|
' appearance: none;' +
|
||||||
|
' -moz-appearance: none;' +
|
||||||
|
' background: ThreeDFace;' +
|
||||||
|
' border: 1px solid ThreeDShadow;' +
|
||||||
|
'}',
|
||||||
|
lastAgentSheetForNarrowScrollbar : null,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
makeURIFromSpec : function utils_makeURIFromSpec(aURI)
|
||||||
|
{
|
||||||
|
var newURI;
|
||||||
|
aURI = aURI || '';
|
||||||
|
if (aURI && String(aURI).indexOf('file:') == 0) {
|
||||||
|
var fileHandler = Services.io.getProtocolHandler('file').QueryInterface(Ci.nsIFileProtocolHandler);
|
||||||
|
var tempLocalFile = fileHandler.getFileFromURLSpec(aURI);
|
||||||
|
newURI = Services.io.newFileURI(tempLocalFile);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!/^\w+\:/.test(aURI))
|
||||||
|
aURI = 'http://'+aURI;
|
||||||
|
newURI = Services.io.newURI(aURI, null, null);
|
||||||
|
}
|
||||||
|
return newURI;
|
||||||
|
},
|
||||||
|
|
||||||
|
getGroupTabURI : function utils_getGroupTabURI(aOptions)
|
||||||
|
{
|
||||||
|
aOptions = aOptions || {};
|
||||||
|
var parameters = [];
|
||||||
|
parameters.push('title=' + encodeURIComponent(aOptions.title || ''));
|
||||||
|
parameters.push('temporary=' + !!aOptions.temporary);
|
||||||
|
return 'about:treestyletab-group?' + parameters.join('&');
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
/* Pref Listener */
|
/* Pref Listener */
|
||||||
domains : [
|
domains : [
|
||||||
'extensions.treestyletab.'
|
'extensions.treestyletab.'
|
||||||
|
@ -1689,7 +1689,7 @@ TreeStyleTabWindow.prototype = inherit(TreeStyleTabBase, {
|
|||||||
|
|
||||||
var shouldCreateGroup = aTabs.length > 1 && utils.getTreePref('createSubtree.underParent');
|
var shouldCreateGroup = aTabs.length > 1 && utils.getTreePref('createSubtree.underParent');
|
||||||
var root = shouldCreateGroup ?
|
var root = shouldCreateGroup ?
|
||||||
b.addTab(this.getGroupTabURI({
|
b.addTab(utils.getGroupTabURI({
|
||||||
temporary: utils.getTreePref('createSubtree.underParent.temporaryGroup')
|
temporary: utils.getTreePref('createSubtree.underParent.temporaryGroup')
|
||||||
})) :
|
})) :
|
||||||
aTabs.shift() ;
|
aTabs.shift() ;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user