diff --git a/mailnews/extensions/mailviews/resources/content/msgViewPickerOverlay.js b/mailnews/extensions/mailviews/resources/content/msgViewPickerOverlay.js
index 3699b045dbc9..fdfea974678d 100644
--- a/mailnews/extensions/mailviews/resources/content/msgViewPickerOverlay.js
+++ b/mailnews/extensions/mailviews/resources/content/msgViewPickerOverlay.js
@@ -38,8 +38,9 @@
* ***** END LICENSE BLOCK ***** */
const kLabelOffset = 1; // 1=2-1, from msgViewPickerOveraly.xul,
-const kLastDefaultViewIndex = 9; // 9, because 8 + 1,
-const kCustomItemValue = "8"; // from msgViewPickerOveraly.xul,
+const kLastDefaultViewIndex = 9; // 9, because 8 + 1,
+const kSaveItemValue = "7"; // from msgViewPickerOveraly.xul,
+const kCustomItemValue = "8"; // from msgViewPickerOveraly.xul,
var gMailViewList = null;
var gCurrentViewValue = "0"; // initialize to the first view ("All")
@@ -54,10 +55,14 @@ var nsMsgSearchOp = Components.interfaces.nsMsgSearchOp;
function viewChange(aMenuList, val)
{
- if (val == kCustomItemValue) {
+ if (val == kCustomItemValue || val == kSaveItemValue)
+ {
// restore to the previous view value, in case they cancel
aMenuList.value = gCurrentViewValue;
- LaunchCustomizeDialog();
+ if (val == kCustomItemValue)
+ LaunchCustomizeDialog();
+ else
+ openNewVirtualFolderDialogWithArgs(gCurrentViewLabel, gSaveDefaultSVTerms);
return;
}
@@ -65,7 +70,6 @@ function viewChange(aMenuList, val)
if (val == gCurrentViewValue)
return;
viewDebug("viewChange to " + val + "\n");
- var oldViewValue = gCurrentViewValue;
gCurrentViewValue = val;
switch (val)
{
@@ -84,11 +88,6 @@ function viewChange(aMenuList, val)
case "6": // label 5
ViewLabel(parseInt(val) - kLabelOffset);
break;
- case "7": // save view as virtual folder
- val = oldViewValue;
- aMenuList.value = val;
- openNewVirtualFolderDialogWithArgs(gCurrentViewLabel, gSaveDefaultSVTerms);
- break;
default:
LoadCustomMailView(parseInt(val) - kLastDefaultViewIndex);
break;
@@ -184,19 +183,12 @@ function refreshCustomMailViews(aDefaultSelectedIndex)
// remove any existing entries...
var menupopupNode = document.getElementById('viewPickerPopup');
- var numItemsInNode = menupopupNode.childNodes.length;
- numItemsInNode -= 2; // subtract off the last 2 items since we want to leave those
- var removeNodes = true;
-
- while (removeNodes && numItemsInNode)
+ for (var i = menupopupNode.childNodes.length - 1; i >= 0; --i)
{
- if (menupopupNode.childNodes[numItemsInNode-1].getAttribute('id') == 'lastDefaultView')
- removeNodes = false;
- else
- menupopupNode.removeChild(menupopupNode.childNodes[numItemsInNode-1]);
- numItemsInNode -= 1;
+ if (menupopupNode.childNodes[i].id.substr(0, 15) == "userdefinedview")
+ menupopupNode.removeChild(menupopupNode.childNodes[i]);
}
-
+
// now rebuild the list
var numItems = gMailViewList.mailViewCount;
diff --git a/mailnews/extensions/mailviews/resources/content/msgViewPickerOverlay.xul b/mailnews/extensions/mailviews/resources/content/msgViewPickerOverlay.xul
index 170b94692568..235bf6ec0207 100644
--- a/mailnews/extensions/mailviews/resources/content/msgViewPickerOverlay.xul
+++ b/mailnews/extensions/mailviews/resources/content/msgViewPickerOverlay.xul
@@ -60,7 +60,8 @@
-
+
+
diff --git a/mailnews/extensions/mailviews/resources/locale/en-US/msgViewPickerOverlay.dtd b/mailnews/extensions/mailviews/resources/locale/en-US/msgViewPickerOverlay.dtd
index 55d34f51a936..5259d398789d 100644
--- a/mailnews/extensions/mailviews/resources/locale/en-US/msgViewPickerOverlay.dtd
+++ b/mailnews/extensions/mailviews/resources/locale/en-US/msgViewPickerOverlay.dtd
@@ -2,6 +2,7 @@
+