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 удалений

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

@ -58,6 +58,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)
{
@ -189,7 +220,10 @@ function wrapToolbarItems()
{
for (var i = 0; i < gToolbox.childNodes.length; ++i) {
var toolbar = getToolbarAt(i);
if (isCustomizableToolbar(toolbar)) {
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)) {
@ -213,7 +247,8 @@ function wrapToolbarItems()
{
for (var i = 0; i < gToolbox.childNodes.length; ++i) {
var toolbar = getToolbarAt(i);
if (isCustomizableToolbar(toolbar)) {
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;

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

@ -34,12 +34,19 @@
<?xml-stylesheet href="chrome://messenger/skin/messengercompose/messengercompose.css" type="text/css"?>
<?xml-stylesheet href="chrome://messenger/skin/smime/msgCompSMIMEOverlay.css" type="text/css"?>
<?xml-stylesheet href="chrome://messenger/skin/primaryToolbar.css" type="text/css"?>
#ifndef XP_MACOSX
<dialog id="CustomizeToolbarWindow"
#else
<window id="CustomizeToolbarWindow" onclose="onAccept(); return false;"
#endif
<window id="CustomizeToolbarWindow"
title="&dialog.title;"
onload="onLoad();"
onunload="onUnload();"
onclose="onAccept(); return false;"
onunload="onUnload();"
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"/>
@ -73,11 +80,16 @@
<button label="&restoreDefaultSet.label;" oncommand="restoreDefaultSet();"/>
</box>
<separator class="groove"/>
<hbox align="center" pack="end">
<button label="&saveChanges.label;" oncommand="onAccept();" default="true"/>
</hbox>
<separator class="groove"/>
#ifdef XP_MACOSX
<hbox align="center" pack="end">
<button label="&saveChanges.label;" oncommand="onAccept();" default="true"/>
</hbox>
#endif
</vbox>
</window>
#ifndef XP_MACOSX
</dialog>
#else
</window>
#endif