1
0
mirror of https://github.com/roytam1/UXP.git synced 2026-05-29 08:54:28 +00:00

palemoon#903: Customizable toolbars - persist the attribute "collapsed"

https://github.com/MoonchildProductions/Pale-Moon/pull/903
This commit is contained in:
janekptacijarabaci
2018-04-15 22:23:57 +02:00
committed by Roy Tam
parent 71ad12a654
commit f1f2d4d77e
3 changed files with 35 additions and 6 deletions
+20 -2
View File
@@ -2,6 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
const gToolbarInfoSeparators = ["|", "-"];
var gToolboxDocument = null;
var gToolbox = null;
var gCurrentDragOverItem = null;
@@ -173,9 +175,20 @@ function persistCurrentSets()
// Remove custom toolbars whose contents have been removed.
gToolbox.removeChild(toolbar);
} else if (gToolbox.toolbarset) {
var hidingAttribute = toolbar.getAttribute("type") == "menubar" ?
"autohide" : "collapsed";
// 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),
toolbar.toolbarName + ":" + currentSet);
toolbar.toolbarName
+ gToolbarInfoSeparators[0]
+ hidingAttribute
+ gToolbarInfoSeparators[1]
+ toolbar.getAttribute(hidingAttribute)
+ gToolbarInfoSeparators[0]
+ currentSet);
gToolboxDocument.persist(gToolbox.toolbarset.id, "toolbar"+customCount);
}
}
@@ -485,6 +498,11 @@ function addNewToolbar()
continue;
}
if (name.value.includes(gToolbarInfoSeparators[0])) {
message = stringBundle.getFormattedString("enterToolbarIllegalChars", [name.value]);
continue;
}
var dupeFound = false;
// Check for an existing toolbar with the same display name
@@ -506,7 +524,7 @@ function addNewToolbar()
message = stringBundle.getFormattedString("enterToolbarDup", [name.value]);
}
gToolbox.appendCustomToolbar(name.value, "");
gToolbox.appendCustomToolbar(name.value, "", [null, null]);
toolboxChanged();
+14 -4
View File
@@ -49,6 +49,7 @@
<constructor>
<![CDATA[
this.toolbarInfoSeparators = ["|", "-"];
// Look to see if there is a toolbarset.
this.toolbarset = this.firstChild;
while (this.toolbarset && this.toolbarset.localName != "toolbarset")
@@ -57,10 +58,14 @@
if (this.toolbarset) {
// Create each toolbar described by the toolbarset.
var index = 0;
while (toolbarset.hasAttribute("toolbar"+(++index))) {
var toolbarInfo = toolbarset.getAttribute("toolbar"+index);
var infoSplit = toolbarInfo.split(":");
this.appendCustomToolbar(infoSplit[0], infoSplit[1]);
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);
}
}
]]>
@@ -69,6 +74,7 @@
<method name="appendCustomToolbar">
<parameter name="aName"/>
<parameter name="aCurrentSet"/>
<parameter name="aHidingAttribute"/>
<body>
<![CDATA[
if (!this.toolbarset)
@@ -84,6 +90,10 @@
toolbar.setAttribute("iconsize", this.getAttribute("iconsize"));
toolbar.setAttribute("context", this.toolbarset.getAttribute("context"));
toolbar.setAttribute("class", "chromeclass-toolbar");
// Restore persist the hiding attribute.
if (aHidingAttribute[0]) {
toolbar.setAttribute(aHidingAttribute[0], aHidingAttribute[1]);
}
this.insertBefore(toolbar, this.toolbarset);
return toolbar;
@@ -5,6 +5,7 @@
enterToolbarTitle=New Toolbar
enterToolbarName=Enter a name for this toolbar:
enterToolbarDup=There is already a toolbar with the name “%S”. Please enter a different name.
enterToolbarIllegalChars=The name contains illegal character "|". Please enter a different name.
enterToolbarBlank=You must enter a name to create a new toolbar.
separatorTitle=Separator
springTitle=Flexible Space