Fix for bug 47855. Implement Save as File and fix command Save to remember which default action to performe (save as file, save as draft or save as template). R=ducarroz

This commit is contained in:
ducarroz%netscape.com 2000-08-12 00:29:43 +00:00
Родитель 023233561d
Коммит 139e85399a
2 изменённых файлов: 28 добавлений и 2 удалений

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

@ -43,6 +43,7 @@ var documentLoaded = false;
var windowLocked = false;
var contentChanged = false;
var currentIdentity = null;
var defaultSaveOperation = "draft";
var Bundle = srGetStrBundle("chrome://messenger/locale/messengercompose/composeMsgs.properties");
@ -97,6 +98,7 @@ var defaultController =
case "cmd_attachPage":
case "cmd_close":
case "cmd_saveDefault":
case "cmd_saveAsFile":
case "cmd_saveAsDraft":
case "cmd_saveAsTemplate":
case "cmd_sendNow":
@ -200,6 +202,7 @@ var defaultController =
case "cmd_attachPage":
case "cmd_close":
case "cmd_saveDefault":
case "cmd_saveAsFile":
case "cmd_saveAsDraft":
case "cmd_saveAsTemplate":
case "cmd_sendNow":
@ -312,7 +315,8 @@ var defaultController =
case "cmd_attachFile" : if (defaultController.isCommandEnabled(command)) AttachFile(); break;
case "cmd_attachPage" : AttachPage(); break;
case "cmd_close" : DoCommandClose(); break;
case "cmd_saveDefault" : SaveAsDraft(); break; /* TEMPORARY: We should save either as file, as draft or template, depending of last save type */
case "cmd_saveDefault" : Save(); break;
case "cmd_saveAsFile" : SaveAsFile(true); break;
case "cmd_saveAsDraft" : SaveAsDraft(); break;
case "cmd_saveAsTemplate" : SaveAsTemplate(); break;
case "cmd_sendNow" : if (defaultController.isCommandEnabled(command)) SendMessage(); break;
@ -356,6 +360,7 @@ function CommandUpdate_MsgCompose()
goUpdateCommand("cmd_attachPage");
goUpdateCommand("cmd_close");
goUpdateCommand("cmd_saveDefault");
goUpdateCommand("cmd_saveAsFile");
goUpdateCommand("cmd_saveAsDraft");
goUpdateCommand("cmd_saveAsTemplate");
goUpdateCommand("cmd_sendNow");
@ -993,6 +998,24 @@ function SendMessageLater()
GenericSendMessage(msgCompDeliverMode.Later);
}
function Save()
{
dump("Save from XUL\n");
switch (defaultSaveOperation)
{
case "file" : SaveAsFile(false); break;
case "template" : SaveAsTemplate(false); break;
default : SaveAsDraft(false); break;
}
}
function SaveAsFile(saveAs)
{
dump("SaveAsFile from XUL\n");
editorShell.saveDocument(saveAs, false);
defaultSaveOperation = "file";
}
function SaveAsDraft()
{
dump("SaveAsDraft from XUL\n");
@ -1001,6 +1024,7 @@ function SaveAsDraft()
// RICHIE: We should really have a way of using constants and not
// hardcoded numbers for the first argument
GenericSendMessage(msgCompDeliverMode.SaveAsDraft);
defaultSaveOperation = "draft";
}
function SaveAsTemplate()
@ -1011,6 +1035,7 @@ function SaveAsTemplate()
// RICHIE: We should really have a way of using constants and not
// hardcoded numbers for the first argument
GenericSendMessage(msgCompDeliverMode.SaveAsTemplate);
defaultSaveOperation = "template";
}

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

@ -98,6 +98,7 @@ Rights Reserved.
<broadcaster id="cmd_attachPage" oncommand="goDoCommand('cmd_attachPage')"/>
<broadcaster id="cmd_close" oncommand="goDoCommand('cmd_close')"/>
<broadcaster id="cmd_saveDefault" oncommand="goDoCommand('cmd_saveDefault')"/>
<broadcaster id="cmd_saveAsFile" oncommand="goDoCommand('cmd_saveAsFile')"/>
<broadcaster id="cmd_saveAsDraft" oncommand="goDoCommand('cmd_saveAsDraft')"/>
<broadcaster id="cmd_saveAsTemplate" oncommand="goDoCommand('cmd_saveAsTemplate')"/>
<broadcaster id="cmd_sendNow" oncommand="goDoCommand('cmd_sendNow')"/>
@ -261,7 +262,7 @@ Rights Reserved.
<menuitem value="&saveCmd.label;" key="key_save" observes="cmd_saveDefault"/>
<menu value="&saveAsCmd.label;" accessKey="&saveAsCmd.accesskey;">
<menupopup>
<menuitem value="&saveAsFileCmd.label;" disabled="true" accessKey="&saveAsFileCmd.accesskey;"/>
<menuitem value="&saveAsFileCmd.label;" accessKey="&saveAsFileCmd.accesskey;" observes="cmd_saveAsFile"/>
<menuseparator/>
<menuitem value="&saveAsDraftCmd.label;" accessKey="&saveAsDraftCmd.accesskey;" observes="cmd_saveAsDraft"/>
<menuitem value="&saveAsTemplateCmd.label;" accessKey="&saveAsTemplateCmd.accesskey;" observes="cmd_saveAsTemplate"/>