mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-08 00:38:39 +09:00
palemoon#975: Customizable toolbars - backward compatible (but unidirectional)
This commit is contained in:
parent
f1f2d4d77e
commit
7da20021ff
2 changed files with 41 additions and 11 deletions
|
|
@ -180,8 +180,8 @@ function persistCurrentSets()
|
|||
// Persist custom toolbar info on the <toolbarset/>
|
||||
// Attributes:
|
||||
// Names: "toolbarX" (X - the number of the toolbar)
|
||||
// Values: "Name:HidingAttributeName-HidingAttributeValue:CurrentSet"
|
||||
gToolbox.toolbarset.setAttribute("toolbar"+(++customCount),
|
||||
// Values: "Name|HidingAttributeName-HidingAttributeValue|CurrentSet"
|
||||
gToolbox.toolbarset.setAttribute("toolbar" + (++customCount),
|
||||
toolbar.toolbarName
|
||||
+ gToolbarInfoSeparators[0]
|
||||
+ hidingAttribute
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
</field>
|
||||
|
||||
<field name="externalToolbars">
|
||||
[]
|
||||
[]
|
||||
</field>
|
||||
|
||||
<!-- Set by customizeToolbar.js -->
|
||||
|
|
@ -50,22 +50,52 @@
|
|||
<constructor>
|
||||
<![CDATA[
|
||||
this.toolbarInfoSeparators = ["|", "-"];
|
||||
this.toolbarInfoLegacySeparator = ":";
|
||||
// Look to see if there is a toolbarset.
|
||||
this.toolbarset = this.firstChild;
|
||||
while (this.toolbarset && this.toolbarset.localName != "toolbarset")
|
||||
while (this.toolbarset && this.toolbarset.localName != "toolbarset") {
|
||||
this.toolbarset = toolbarset.nextSibling;
|
||||
}
|
||||
|
||||
if (this.toolbarset) {
|
||||
// Create each toolbar described by the toolbarset.
|
||||
var index = 0;
|
||||
while (this.toolbarset.hasAttribute("toolbar" + (++index))) {
|
||||
var toolbarInfo = this.toolbarset.getAttribute("toolbar"+index);
|
||||
var infoSplit = toolbarInfo.split(this.toolbarInfoSeparators[0]);
|
||||
var infoName = infoSplit[0];
|
||||
var infoHidingAttribute = infoSplit[1].split(this.toolbarInfoSeparators[1]);
|
||||
var infoCurrentSet = infoSplit[2];
|
||||
|
||||
this.appendCustomToolbar(infoName, infoCurrentSet, infoHidingAttribute);
|
||||
let hiddingAttribute =
|
||||
this.toolbarset.getAttribute("type") == "menubar"
|
||||
? "autohide" : "collapsed";
|
||||
let toolbarInfo = this.toolbarset.getAttribute("toolbar" + index);
|
||||
let infoSplit = toolbarInfo.split(this.toolbarInfoSeparators[0]);
|
||||
if (infoSplit.length == 1) {
|
||||
infoSplit = toolbarInfo.split(this.toolbarInfoLegacySeparator);
|
||||
}
|
||||
let infoName = infoSplit[0];
|
||||
let infoHidingAttribute = [null, null];
|
||||
let infoCurrentSet = "";
|
||||
let infoSplitLen = infoSplit.length;
|
||||
switch (infoSplitLen) {
|
||||
case 3:
|
||||
// Pale Moon 27.2+
|
||||
infoHidingAttribute = infoSplit[1]
|
||||
.split(this.toolbarInfoSeparators[1]);
|
||||
infoCurrentSet = infoSplit[2];
|
||||
break;
|
||||
case 2:
|
||||
// Legacy:
|
||||
// - toolbars from Pale Moon 27.0 - 27.1.x
|
||||
// - Basilisk
|
||||
// The previous value (hiddingAttribute) isn't stored.
|
||||
infoHidingAttribute = [hiddingAttribute, "false"];
|
||||
infoCurrentSet = infoSplit[1];
|
||||
break;
|
||||
default:
|
||||
Components.utils.reportError(
|
||||
"Customizable toolbars - an invalid value:" + "\n"
|
||||
+ '"toolbar' + index + '" = "' + toolbarInfo + '"');
|
||||
break;
|
||||
}
|
||||
this.appendCustomToolbar(
|
||||
infoName, infoCurrentSet, infoHidingAttribute);
|
||||
}
|
||||
}
|
||||
]]>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue