Bug #227215 --> Need ability to cancel from Customize Toolbars menu

This commit is contained in:
scott%scott-macgregor.org 2003-12-13 23:09:19 +00:00
Родитель c8302041c3
Коммит 73d69b6a89
2 изменённых файлов: 58 добавлений и 11 удалений

Просмотреть файл

@ -59,6 +59,37 @@ function onUnload(aEvent)
notifyParentComplete();
}
function onCancel()
{
// restore the saved toolbarset for each customizeable toolbar
// Restore the defaultset for fixed toolbars.
var toolbar = gToolbox.firstChild;
while (toolbar) {
if (isCustomizableToolbar(toolbar)) {
if (!toolbar.hasAttribute("customindex")) {
var previousset = toolbar.getAttribute("previousset");
if (previousset)
{
toolbar.currentSet = previousset;
}
}
}
toolbar = toolbar.nextSibling;
}
// Now rebuild the palette.
buildPalette();
// Now re-wrap the items on the toolbar.
wrapToolbarItems();
repositionDialog();
gToolboxChanged = true;
return onAccept(); // we restored the default toolbar, act like a normal accept event now
}
function onAccept(aEvent)
{
document.getElementById("main-box").collapsed = true;
@ -190,6 +221,9 @@ function wrapToolbarItems()
for (var i = 0; i < gToolbox.childNodes.length; ++i) {
var toolbar = getToolbarAt(i);
if (isCustomizableToolbar(toolbar)) {
// save off the current set for each toolbar in case the user hits cancel
toolbar.setAttribute('previousset', toolbar.currentSet);
for (var k = 0; k < toolbar.childNodes.length; ++k) {
var item = toolbar.childNodes[k];
if (isToolbarItem(item)) {
@ -214,6 +248,7 @@ function wrapToolbarItems()
for (var i = 0; i < gToolbox.childNodes.length; ++i) {
var toolbar = getToolbarAt(i);
if (isCustomizableToolbar(toolbar)) {
toolbar.removeAttribute('previousset'); // remove previous set attribute
for (var k = 0; k < toolbar.childNodes.length; ++k) {
var paletteItem = toolbar.childNodes[k];
var toolbarItem = paletteItem.firstChild;

Просмотреть файл

@ -35,11 +35,18 @@
<?xml-stylesheet href="chrome://messenger/skin/smime/msgCompSMIMEOverlay.css" type="text/css"?>
<?xml-stylesheet href="chrome://messenger/skin/primaryToolbar.css" type="text/css"?>
<window id="CustomizeToolbarWindow"
#ifndef XP_MACOSX
<dialog id="CustomizeToolbarWindow"
#else
<window id="CustomizeToolbarWindow" onclose="onAccept(); return false;"
#endif
title="&dialog.title;"
onload="onLoad();"
onunload="onUnload();"
onclose="onAccept(); return false;"
buttons="accept,cancel"
ondialogaccept="return onAccept();"
ondialogcancel="return onCancel();"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript" src="chrome://global/content/customizeToolbar.js"/>
@ -74,10 +81,15 @@
</box>
<separator class="groove"/>
#ifdef XP_MACOSX
<hbox align="center" pack="end">
<button label="&saveChanges.label;" oncommand="onAccept();" default="true"/>
</hbox>
#endif
</vbox>
#ifndef XP_MACOSX
</dialog>
#else
</window>
#endif