インデントの有効無効、折りたたみの有効無効について、水平・垂直それぞれのタブバーに別個に設定を保存できるようにした
git-svn-id: http://www.cozmixng.org/repos/piro/treestyletab/trunk@4666 599a83e7-65a4-db11-8015-0010dcdd6dc2
This commit is contained in:
parent
ee0a7e27cc
commit
fc33824e01
@ -25,7 +25,7 @@
|
|||||||
http://www.cozmixng.org/repos/piro/fx3-compatibility-lib/trunk/prefs.js
|
http://www.cozmixng.org/repos/piro/fx3-compatibility-lib/trunk/prefs.js
|
||||||
*/
|
*/
|
||||||
(function() {
|
(function() {
|
||||||
const currentRevision = 1;
|
const currentRevision = 2;
|
||||||
|
|
||||||
if (!('piro.sakura.ne.jp' in window)) window['piro.sakura.ne.jp'] = {};
|
if (!('piro.sakura.ne.jp' in window)) window['piro.sakura.ne.jp'] = {};
|
||||||
|
|
||||||
@ -48,19 +48,29 @@
|
|||||||
},
|
},
|
||||||
_Prefs : null,
|
_Prefs : null,
|
||||||
|
|
||||||
getPref : function(aPrefstring)
|
get DefaultPrefs()
|
||||||
{
|
{
|
||||||
|
if (!this._DefaultPrefs) {
|
||||||
|
this._DefaultPrefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefService).getDefaultBranch(null);
|
||||||
|
}
|
||||||
|
return this._DefaultPrefs;
|
||||||
|
},
|
||||||
|
_DefaultPrefs : null,
|
||||||
|
|
||||||
|
getPref : function(aPrefstring, aBranch)
|
||||||
|
{
|
||||||
|
if (!aBranch) aBranch = this.Prefs;
|
||||||
try {
|
try {
|
||||||
switch (this.Prefs.getPrefType(aPrefstring))
|
switch (aBranch.getPrefType(aPrefstring))
|
||||||
{
|
{
|
||||||
case this.Prefs.PREF_STRING:
|
case this.Prefs.PREF_STRING:
|
||||||
return decodeURIComponent(escape(this.Prefs.getCharPref(aPrefstring)));
|
return decodeURIComponent(escape(aBranch.getCharPref(aPrefstring)));
|
||||||
break;
|
break;
|
||||||
case this.Prefs.PREF_INT:
|
case this.Prefs.PREF_INT:
|
||||||
return this.Prefs.getIntPref(aPrefstring);
|
return aBranch.getIntPref(aPrefstring);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return this.Prefs.getBoolPref(aPrefstring);
|
return aBranch.getBoolPref(aPrefstring);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -70,9 +80,15 @@
|
|||||||
return null;
|
return null;
|
||||||
},
|
},
|
||||||
|
|
||||||
setPref : function(aPrefstring, aNewValue)
|
getDefaultPref : function(aPrefstring)
|
||||||
{
|
{
|
||||||
var pref = this.Prefs ;
|
return this.getPref(aPrefstring, this.DefaultPrefs);
|
||||||
|
},
|
||||||
|
|
||||||
|
setPref : function(aPrefstring, aNewValue, aBranch)
|
||||||
|
{
|
||||||
|
if (!aBranch) aBranch = this.Prefs;
|
||||||
|
|
||||||
var type;
|
var type;
|
||||||
try {
|
try {
|
||||||
type = typeof aNewValue;
|
type = typeof aNewValue;
|
||||||
@ -84,18 +100,23 @@
|
|||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case 'string':
|
case 'string':
|
||||||
pref.setCharPref(aPrefstring, unescape(encodeURIComponent(aNewValue)));
|
aBranch.setCharPref(aPrefstring, unescape(encodeURIComponent(aNewValue)));
|
||||||
break;
|
break;
|
||||||
case 'number':
|
case 'number':
|
||||||
pref.setIntPref(aPrefstring, parseInt(aNewValue));
|
aBranch.setIntPref(aPrefstring, parseInt(aNewValue));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
pref.setBoolPref(aPrefstring, aNewValue);
|
aBranch.setBoolPref(aPrefstring, aNewValue);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setDefaultPref : function(aPrefstring)
|
||||||
|
{
|
||||||
|
return this.setPref(aPrefstring, aNewValue, this.DefaultPrefs);
|
||||||
|
},
|
||||||
|
|
||||||
clearPref : function(aPrefstring)
|
clearPref : function(aPrefstring)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
@ -466,11 +466,6 @@ var TreeStyleTabService = {
|
|||||||
|
|
||||||
var pref = isVertical ? 'tabbar.fixed.vertical' : 'tabbar.fixed.horizontal' ;
|
var pref = isVertical ? 'tabbar.fixed.vertical' : 'tabbar.fixed.horizontal' ;
|
||||||
this.setTreePref(pref, !this.getTreePref(pref));
|
this.setTreePref(pref, !this.getTreePref(pref));
|
||||||
|
|
||||||
if (!this.getTreePref('syncRelatedPrefs')) return;
|
|
||||||
|
|
||||||
if (!isVertical)
|
|
||||||
this.setTreePref('enableSubtreeIndent', !this.getTreePref(pref));
|
|
||||||
},
|
},
|
||||||
|
|
||||||
changeTabbarPosition : function(aNewPosition) /* PUBLIC API */
|
changeTabbarPosition : function(aNewPosition) /* PUBLIC API */
|
||||||
@ -480,12 +475,6 @@ var TreeStyleTabService = {
|
|||||||
|
|
||||||
aNewPosition = aNewPosition.toLowerCase();
|
aNewPosition = aNewPosition.toLowerCase();
|
||||||
this.setTreePref('tabbar.position', aNewPosition);
|
this.setTreePref('tabbar.position', aNewPosition);
|
||||||
|
|
||||||
if (!this.getTreePref('syncRelatedPrefs')) return;
|
|
||||||
|
|
||||||
var vertical = (aNewPosition == 'left' || aNewPosition == 'right');
|
|
||||||
this.setTreePref('enableSubtreeIndent', vertical || !this.getTreePref('tabbar.fixed.horizontal'));
|
|
||||||
this.setTreePref('allowSubtreeCollapseExpand', vertical);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/* backward compatibility */
|
/* backward compatibility */
|
||||||
@ -1170,6 +1159,25 @@ var TreeStyleTabService = {
|
|||||||
this.overrideExtensionsPreInit(); // hacks.js
|
this.overrideExtensionsPreInit(); // hacks.js
|
||||||
|
|
||||||
this.registerTabFocusAllowance(this.defaultTabFocusAllowance);
|
this.registerTabFocusAllowance(this.defaultTabFocusAllowance);
|
||||||
|
|
||||||
|
// migrate old prefs
|
||||||
|
switch (this.getTreePref('orientalPrefsMigrated'))
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
[
|
||||||
|
'extensions.treestyletab.tabbar.fixed',
|
||||||
|
'extensions.treestyletab.enableSubtreeIndent',
|
||||||
|
'extensions.treestyletab.allowSubtreeCollapseExpand'
|
||||||
|
].forEach(function(aPref) {
|
||||||
|
let value = this.getPref(aPref);
|
||||||
|
if (value === null) return;
|
||||||
|
this.setPref(aPref+'.horizontal', value);
|
||||||
|
this.setPref(aPref+'.vertical', value);
|
||||||
|
}, this);
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
this.setTreePref('orientalPrefsMigrated', 1);
|
||||||
},
|
},
|
||||||
preInitialized : false,
|
preInitialized : false,
|
||||||
|
|
||||||
|
@ -502,7 +502,6 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
this.onPrefChange('extensions.treestyletab.tabbar.style');
|
this.onPrefChange('extensions.treestyletab.tabbar.style');
|
||||||
this.onPrefChange('extensions.treestyletab.twisty.style');
|
this.onPrefChange('extensions.treestyletab.twisty.style');
|
||||||
this.onPrefChange('extensions.treestyletab.showBorderForFirstTab');
|
this.onPrefChange('extensions.treestyletab.showBorderForFirstTab');
|
||||||
this.onPrefChange('extensions.treestyletab.enableSubtreeIndent');
|
|
||||||
this.onPrefChange('extensions.treestyletab.tabbar.invertTabContents');
|
this.onPrefChange('extensions.treestyletab.tabbar.invertTabContents');
|
||||||
this.onPrefChange('extensions.treestyletab.tabbar.invertScrollbar');
|
this.onPrefChange('extensions.treestyletab.tabbar.invertScrollbar');
|
||||||
this.onPrefChange('extensions.treestyletab.tabbar.invertClosebox');
|
this.onPrefChange('extensions.treestyletab.tabbar.invertClosebox');
|
||||||
@ -844,7 +843,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
b.mStrip.removeAttribute('height');
|
b.mStrip.removeAttribute('height');
|
||||||
b.mPanelContainer.removeAttribute('height');
|
b.mPanelContainer.removeAttribute('height');
|
||||||
|
|
||||||
this.updateTabbarFixedState();
|
this.updateTabbarState();
|
||||||
|
|
||||||
if (pos == this.kTABBAR_RIGHT) {
|
if (pos == this.kTABBAR_RIGHT) {
|
||||||
b.setAttribute(this.kTABBAR_POSITION, 'right');
|
b.setAttribute(this.kTABBAR_POSITION, 'right');
|
||||||
@ -919,7 +918,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
b.setAttribute(this.kMODE, this.getTreePref('tabbar.multirow') ? 'multirow' : 'horizontal' );
|
b.setAttribute(this.kMODE, this.getTreePref('tabbar.multirow') ? 'multirow' : 'horizontal' );
|
||||||
b.removeAttribute(this.kTAB_INVERTED);
|
b.removeAttribute(this.kTAB_INVERTED);
|
||||||
|
|
||||||
this.updateTabbarFixedState();
|
this.updateTabbarState();
|
||||||
|
|
||||||
if (pos == this.kTABBAR_BOTTOM) {
|
if (pos == this.kTABBAR_BOTTOM) {
|
||||||
b.setAttribute(this.kTABBAR_POSITION, 'bottom');
|
b.setAttribute(this.kTABBAR_POSITION, 'bottom');
|
||||||
@ -961,16 +960,19 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
scrollInnerBox = null;
|
scrollInnerBox = null;
|
||||||
allTabsButton = null;
|
allTabsButton = null;
|
||||||
},
|
},
|
||||||
updateTabbarFixedState : function()
|
updateTabbarState : function()
|
||||||
{
|
{
|
||||||
var b = this.mTabBrowser;
|
var b = this.mTabBrowser;
|
||||||
|
var orient;
|
||||||
if (this.isVertical) {
|
if (this.isVertical) {
|
||||||
|
orient = 'vertical';
|
||||||
if (this.getTreePref('tabbar.fixed.vertical'))
|
if (this.getTreePref('tabbar.fixed.vertical'))
|
||||||
b.setAttribute(this.kFIXED, true);
|
b.setAttribute(this.kFIXED, true);
|
||||||
else
|
else
|
||||||
b.removeAttribute(this.kFIXED);
|
b.removeAttribute(this.kFIXED);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
orient = 'horizontal';
|
||||||
if (this.getTreePref('tabbar.fixed.horizontal')) {
|
if (this.getTreePref('tabbar.fixed.horizontal')) {
|
||||||
b.setAttribute(this.kFIXED, true);
|
b.setAttribute(this.kFIXED, true);
|
||||||
if (!this.isMultiRow()) {
|
if (!this.isMultiRow()) {
|
||||||
@ -983,6 +985,18 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
b.mStrip.setAttribute('height', this.getTreePref('tabbar.height'));
|
b.mStrip.setAttribute('height', this.getTreePref('tabbar.height'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.getTreePref('enableSubtreeIndent.'+orient))
|
||||||
|
b.setAttribute(this.kINDENTED, 'true');
|
||||||
|
else
|
||||||
|
b.removeAttribute(this.kINDENTED);
|
||||||
|
|
||||||
|
if (this.getTreePref('allowSubtreeCollapseExpand.'+orient))
|
||||||
|
b.setAttribute(this.kALLOW_COLLAPSE, 'true');
|
||||||
|
else
|
||||||
|
b.removeAttribute(this.kALLOW_COLLAPSE);
|
||||||
|
|
||||||
|
this.updateAllTabsIndent();
|
||||||
},
|
},
|
||||||
|
|
||||||
destroy : function()
|
destroy : function()
|
||||||
@ -1127,14 +1141,6 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
}, this);
|
}, this);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'extensions.treestyletab.enableSubtreeIndent':
|
|
||||||
if (value)
|
|
||||||
b.setAttribute(this.kINDENTED, 'true');
|
|
||||||
else
|
|
||||||
b.removeAttribute(this.kINDENTED);
|
|
||||||
this.updateAllTabsIndent();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'extensions.treestyletab.tabbar.style':
|
case 'extensions.treestyletab.tabbar.style':
|
||||||
if (value) {
|
if (value) {
|
||||||
if (/^(default|vertigo|mixed)$/.test(value))
|
if (/^(default|vertigo|mixed)$/.test(value))
|
||||||
@ -1189,13 +1195,6 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
b.removeAttribute(this.kHIDE_ALLTABS);
|
b.removeAttribute(this.kHIDE_ALLTABS);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'extensions.treestyletab.allowSubtreeCollapseExpand':
|
|
||||||
if (value)
|
|
||||||
b.setAttribute(this.kALLOW_COLLAPSE, true);
|
|
||||||
else
|
|
||||||
b.removeAttribute(this.kALLOW_COLLAPSE);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'extensions.treestyletab.tabbar.autoHide.mode':
|
case 'extensions.treestyletab.tabbar.autoHide.mode':
|
||||||
this.updateAutoHideMode();
|
this.updateAutoHideMode();
|
||||||
break;
|
break;
|
||||||
@ -1209,9 +1208,13 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
this.endListenMouseMove();
|
this.endListenMouseMove();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'extensions.treestyletab.enableSubtreeIndent.horizontal':
|
||||||
|
case 'extensions.treestyletab.enableSubtreeIndent.vertical':
|
||||||
|
case 'extensions.treestyletab.allowSubtreeCollapseExpand.horizontal':
|
||||||
|
case 'extensions.treestyletab.allowSubtreeCollapseExpand.vertical':
|
||||||
case 'extensions.treestyletab.tabbar.fixed.vertical':
|
case 'extensions.treestyletab.tabbar.fixed.vertical':
|
||||||
case 'extensions.treestyletab.tabbar.fixed.horizontal':
|
case 'extensions.treestyletab.tabbar.fixed.horizontal':
|
||||||
this.updateTabbarFixedState();
|
this.updateTabbarState();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'extensions.treestyletab.tabbar.transparent.style':
|
case 'extensions.treestyletab.tabbar.transparent.style':
|
||||||
@ -2939,7 +2942,8 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
|
|
||||||
var b = this.mTabBrowser;
|
var b = this.mTabBrowser;
|
||||||
if (!aProp) {
|
if (!aProp) {
|
||||||
aProp = this.getTreePref('enableSubtreeIndent') ? this.indentProp : null ;
|
let orient = this.isVertical ? 'vertical' : 'horizontal' ;
|
||||||
|
aProp = this.getTreePref('enableSubtreeIndent.'+orient) ? this.indentProp : null ;
|
||||||
}
|
}
|
||||||
var margin = this.indent < 0 ? this.baseIndent : this.indent ;
|
var margin = this.indent < 0 ? this.baseIndent : this.indent ;
|
||||||
var indent = margin * aLevel;
|
var indent = margin * aLevel;
|
||||||
|
@ -39,9 +39,11 @@ pref("extensions.treestyletab.tabbar.togglerSize", 5);
|
|||||||
pref("extensions.treestyletab.tabbar.fixed.horizontal", true);
|
pref("extensions.treestyletab.tabbar.fixed.horizontal", true);
|
||||||
pref("extensions.treestyletab.tabbar.fixed.vertical", false);
|
pref("extensions.treestyletab.tabbar.fixed.vertical", false);
|
||||||
pref("extensions.treestyletab.syncRelatedPrefs", true);
|
pref("extensions.treestyletab.syncRelatedPrefs", true);
|
||||||
pref("extensions.treestyletab.enableSubtreeIndent", true);
|
pref("extensions.treestyletab.enableSubtreeIndent.horizontal", false);
|
||||||
|
pref("extensions.treestyletab.enableSubtreeIndent.vertical", true);
|
||||||
pref("extensions.treestyletab.enableSubtreeIndent.allTabsPopup", true);
|
pref("extensions.treestyletab.enableSubtreeIndent.allTabsPopup", true);
|
||||||
pref("extensions.treestyletab.allowSubtreeCollapseExpand", true);
|
pref("extensions.treestyletab.allowSubtreeCollapseExpand.horizontal", false);
|
||||||
|
pref("extensions.treestyletab.allowSubtreeCollapseExpand.vertical", true);
|
||||||
pref("extensions.treestyletab.showBorderForFirstTab", false);
|
pref("extensions.treestyletab.showBorderForFirstTab", false);
|
||||||
pref("extensions.treestyletab.autoExpand.enabled", true);
|
pref("extensions.treestyletab.autoExpand.enabled", true);
|
||||||
pref("extensions.treestyletab.autoExpand.delay", 500);
|
pref("extensions.treestyletab.autoExpand.delay", 500);
|
||||||
@ -114,5 +116,8 @@ pref("extensions.multipletab.show.multipletab-selection-item-removeTabSubTree",
|
|||||||
pref("extensions.treestyletab.TMP.doNotUpdate.isTabVisible", false);
|
pref("extensions.treestyletab.TMP.doNotUpdate.isTabVisible", false);
|
||||||
|
|
||||||
|
|
||||||
|
pref("extensions.treestyletab.orientalPrefsMigrated", 0);
|
||||||
|
|
||||||
|
|
||||||
pref("extensions.treestyletab@piro.sakura.ne.jp.name", "chrome://treestyletab/locale/treestyletab.properties");
|
pref("extensions.treestyletab@piro.sakura.ne.jp.name", "chrome://treestyletab/locale/treestyletab.properties");
|
||||||
pref("extensions.treestyletab@piro.sakura.ne.jp.description", "chrome://treestyletab/locale/treestyletab.properties");
|
pref("extensions.treestyletab@piro.sakura.ne.jp.description", "chrome://treestyletab/locale/treestyletab.properties");
|
||||||
|
Loading…
Reference in New Issue
Block a user