fix269725 sr=mscott status messages don't show up in main window if you've opened up a stand-alone msg window
git-svn-id: svn://10.0.0.236/trunk@165405 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
853f4fc94e
commit
6ef6def82d
@ -21,16 +21,22 @@ function DoRDFCommand(dataSource, command, srcArray, argumentArray)
|
||||
{
|
||||
var commandResource = RDF.GetResource(command);
|
||||
if(commandResource) {
|
||||
try {
|
||||
dataSource.DoCommand(srcArray, commandResource, argumentArray);
|
||||
}
|
||||
catch(e) {
|
||||
if (command == "http://home.netscape.com/NC-rdf#NewFolder") {
|
||||
throw(e); // so that the dialog does not automatically close.
|
||||
}
|
||||
dump("Exception : In mail commands" + e + "\n");
|
||||
}
|
||||
try {
|
||||
if (!argumentArray)
|
||||
argumentArray = Components.classes["@mozilla.org/supports-array;1"]
|
||||
.createInstance(Components.interfaces.nsISupportsArray);
|
||||
|
||||
if (argumentArray)
|
||||
argumentArray.AppendElement(msgWindow);
|
||||
dataSource.DoCommand(srcArray, commandResource, argumentArray);
|
||||
}
|
||||
catch(e) {
|
||||
if (command == "http://home.netscape.com/NC-rdf#NewFolder") {
|
||||
throw(e); // so that the dialog does not automatically close.
|
||||
}
|
||||
dump("Exception : In mail commands" + e + "\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function GetNewMessages(selectedFolders, server, compositeDataSource)
|
||||
@ -627,7 +633,11 @@ function analyzeFolderForJunk()
|
||||
|
||||
var messages = new Array(count)
|
||||
for (var i = 0; i < count; i++) {
|
||||
messages[i] = view.getURIForViewIndex(i);
|
||||
try
|
||||
{
|
||||
messages[i] = view.getURIForViewIndex(i);
|
||||
}
|
||||
catch (ex) {} // blow off errors here - dummy headers will fail
|
||||
}
|
||||
analyzeMessages(messages);
|
||||
}
|
||||
@ -688,9 +698,13 @@ function deleteJunkInFolder()
|
||||
var clearedSelection = false;
|
||||
|
||||
// select the junk messages
|
||||
var messageUri;
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
var messageUri = view.getURIForViewIndex(i);
|
||||
try {
|
||||
messageUri = view.getURIForViewIndex(i);
|
||||
}
|
||||
catch (ex) {continue;} // blow off errors for dummy rows
|
||||
var msgHdr = messenger.messageServiceFromURI(messageUri).messageURIToMsgHdr(messageUri);
|
||||
var junkScore = msgHdr.getStringProperty("junkscore");
|
||||
var isJunk = ((junkScore != "") && (junkScore != "0"));
|
||||
|
||||
@ -793,6 +793,20 @@ nsMsgFolderDataSource::DoCommand(nsISupportsArray/*<nsIRDFResource>*/* aSources,
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
nsCOMPtr<nsISupports> supports;
|
||||
nsCOMPtr<nsIMsgWindow> window;
|
||||
|
||||
// callers can pass in the msgWindow as the last element of the arguments
|
||||
// array. If they do, we'll use that as the msg window for progress, etc.
|
||||
if (aArguments)
|
||||
{
|
||||
PRUint32 numArgs;
|
||||
aArguments->Count(&numArgs);
|
||||
if (numArgs > 1)
|
||||
window = do_QueryElementAt(aArguments, numArgs - 1);
|
||||
}
|
||||
if (!window)
|
||||
window = mWindow;
|
||||
|
||||
// XXX need to handle batching of command applied to all sources
|
||||
|
||||
PRUint32 cnt = 0;
|
||||
@ -808,37 +822,37 @@ nsMsgFolderDataSource::DoCommand(nsISupportsArray/*<nsIRDFResource>*/* aSources,
|
||||
{
|
||||
if ((aCommand == kNC_Delete))
|
||||
{
|
||||
rv = DoDeleteFromFolder(folder, aArguments, mWindow, PR_FALSE);
|
||||
rv = DoDeleteFromFolder(folder, aArguments, window, PR_FALSE);
|
||||
}
|
||||
if ((aCommand == kNC_ReallyDelete))
|
||||
{
|
||||
rv = DoDeleteFromFolder(folder, aArguments, mWindow, PR_TRUE);
|
||||
rv = DoDeleteFromFolder(folder, aArguments, window, PR_TRUE);
|
||||
}
|
||||
else if((aCommand == kNC_NewFolder))
|
||||
{
|
||||
rv = DoNewFolder(folder, aArguments);
|
||||
rv = DoNewFolder(folder, aArguments, window);
|
||||
}
|
||||
else if((aCommand == kNC_GetNewMessages))
|
||||
{
|
||||
nsCOMPtr<nsIMsgIncomingServer> server = do_QueryElementAt(aArguments, i, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
rv = server->GetNewMessages(folder, mWindow, nsnull);
|
||||
rv = server->GetNewMessages(folder, window, nsnull);
|
||||
}
|
||||
else if((aCommand == kNC_Copy))
|
||||
{
|
||||
rv = DoCopyToFolder(folder, aArguments, mWindow, PR_FALSE);
|
||||
rv = DoCopyToFolder(folder, aArguments, window, PR_FALSE);
|
||||
}
|
||||
else if((aCommand == kNC_Move))
|
||||
{
|
||||
rv = DoCopyToFolder(folder, aArguments, mWindow, PR_TRUE);
|
||||
rv = DoCopyToFolder(folder, aArguments, window, PR_TRUE);
|
||||
}
|
||||
else if((aCommand == kNC_CopyFolder))
|
||||
{
|
||||
rv = DoFolderCopyToFolder(folder, aArguments, mWindow, PR_FALSE);
|
||||
rv = DoFolderCopyToFolder(folder, aArguments, window, PR_FALSE);
|
||||
}
|
||||
else if((aCommand == kNC_MoveFolder))
|
||||
{
|
||||
rv = DoFolderCopyToFolder(folder, aArguments, mWindow, PR_TRUE);
|
||||
rv = DoFolderCopyToFolder(folder, aArguments, window, PR_TRUE);
|
||||
}
|
||||
else if((aCommand == kNC_MarkAllMessagesRead))
|
||||
{
|
||||
@ -846,15 +860,15 @@ nsMsgFolderDataSource::DoCommand(nsISupportsArray/*<nsIRDFResource>*/* aSources,
|
||||
}
|
||||
else if ((aCommand == kNC_Compact))
|
||||
{
|
||||
rv = folder->Compact(nsnull, mWindow);
|
||||
rv = folder->Compact(nsnull, window);
|
||||
}
|
||||
else if ((aCommand == kNC_CompactAll))
|
||||
{
|
||||
rv = folder->CompactAll(nsnull, mWindow, nsnull, PR_TRUE, nsnull);
|
||||
rv = folder->CompactAll(nsnull, window, nsnull, PR_TRUE, nsnull);
|
||||
}
|
||||
else if ((aCommand == kNC_EmptyTrash))
|
||||
{
|
||||
rv = folder->EmptyTrash(mWindow, nsnull);
|
||||
rv = folder->EmptyTrash(window, nsnull);
|
||||
}
|
||||
else if ((aCommand == kNC_Rename))
|
||||
{
|
||||
@ -864,7 +878,7 @@ nsMsgFolderDataSource::DoCommand(nsISupportsArray/*<nsIRDFResource>*/* aSources,
|
||||
nsXPIDLString name;
|
||||
literal->GetValue(getter_Copies(name));
|
||||
|
||||
rv = folder->Rename(name.get(),mWindow);
|
||||
rv = folder->Rename(name.get(), window);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2087,7 +2101,7 @@ nsresult nsMsgFolderDataSource::DoDeleteFromFolder(
|
||||
return rv;
|
||||
}
|
||||
|
||||
nsresult nsMsgFolderDataSource::DoNewFolder(nsIMsgFolder *folder, nsISupportsArray *arguments)
|
||||
nsresult nsMsgFolderDataSource::DoNewFolder(nsIMsgFolder *folder, nsISupportsArray *arguments, nsIMsgWindow *window)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
nsCOMPtr<nsIRDFLiteral> literal = do_QueryElementAt(arguments, 0, &rv);
|
||||
@ -2096,7 +2110,7 @@ nsresult nsMsgFolderDataSource::DoNewFolder(nsIMsgFolder *folder, nsISupportsArr
|
||||
nsXPIDLString name;
|
||||
literal->GetValue(getter_Copies(name));
|
||||
|
||||
rv = folder->CreateSubfolder(name,mWindow);
|
||||
rv = folder->CreateSubfolder(name, window);
|
||||
|
||||
}
|
||||
return rv;
|
||||
|
||||
@ -188,8 +188,8 @@ protected:
|
||||
nsresult DoFolderCopyToFolder(nsIMsgFolder *dstFolder, nsISupportsArray *arguments,
|
||||
nsIMsgWindow *msgWindow, PRBool isMoveFolder);
|
||||
|
||||
nsresult DoNewFolder(nsIMsgFolder *folder,
|
||||
nsISupportsArray *arguments);
|
||||
nsresult DoNewFolder(nsIMsgFolder *folder, nsISupportsArray *arguments,
|
||||
nsIMsgWindow *window);
|
||||
|
||||
nsresult DoFolderAssert(nsIMsgFolder *folder, nsIRDFResource *property, nsIRDFNode *target);
|
||||
nsresult DoFolderUnassert(nsIMsgFolder *folder, nsIRDFResource *property, nsIRDFNode *target);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user