fix for bug #161999
for local trash folder, empty trash doesn't always update unread / total msg counts. r/sr=bienvenu, a=sspitzer git-svn-id: svn://10.0.0.236/trunk@142034 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
ff36e0ba4f
commit
37cf346e8e
@ -880,14 +880,12 @@ nsMsgFolderDataSource::OnItemIntPropertyChanged(nsISupports *item,
|
||||
nsCOMPtr<nsIMsgFolder> folder = do_QueryInterface(item);
|
||||
if(folder)
|
||||
{
|
||||
|
||||
if (kTotalMessagesAtom == property)
|
||||
OnTotalMessagePropertyChanged(folder, oldValue, newValue);
|
||||
else if (kTotalUnreadMessagesAtom == property)
|
||||
OnUnreadMessagePropertyChanged(folder, oldValue, newValue);
|
||||
else if (kFolderSizeAtom == property)
|
||||
OnFolderSizePropertyChanged(folder, oldValue, newValue);
|
||||
|
||||
if (kTotalMessagesAtom == property)
|
||||
OnTotalMessagePropertyChanged(folder, oldValue, newValue);
|
||||
else if (kTotalUnreadMessagesAtom == property)
|
||||
OnUnreadMessagePropertyChanged(folder, oldValue, newValue);
|
||||
else if (kFolderSizeAtom == property)
|
||||
OnFolderSizePropertyChanged(folder, oldValue, newValue);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -199,8 +199,7 @@ NS_IMETHODIMP nsImapUrl::GetFolder(nsIMsgFolder **aMsgFolder)
|
||||
NS_ENSURE_ARG_POINTER(m_imapFolder);
|
||||
|
||||
nsCOMPtr<nsIMsgFolder> folder = do_QueryReferent(m_imapFolder);
|
||||
*aMsgFolder = folder;
|
||||
NS_IF_ADDREF(*aMsgFolder);
|
||||
NS_IF_ADDREF(*aMsgFolder = folder);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -1061,8 +1061,13 @@ NS_IMETHODIMP nsMsgLocalMailFolder::EmptyTrash(nsIMsgWindow *msgWindow,
|
||||
parentFolder->CreateSubfolder(NS_LITERAL_STRING("Trash").get(),nsnull);
|
||||
nsCOMPtr<nsIMsgFolder> newTrashFolder;
|
||||
rv = GetTrashFolder(getter_AddRefs(newTrashFolder));
|
||||
if (NS_SUCCEEDED(rv) && newTrashFolder)
|
||||
if (NS_SUCCEEDED(rv) && newTrashFolder) {
|
||||
newTrashFolder->SetDBTransferInfo(transferInfo);
|
||||
// update the summary totals so the front end will
|
||||
// show the right thing for the new trash folder
|
||||
// see bug #161999
|
||||
newTrashFolder->UpdateSummaryTotals(PR_TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
|
||||
@ -1534,7 +1534,7 @@ void nsParseNewMailState::DoneParsingFolder(nsresult status)
|
||||
|
||||
PRInt32 nsParseNewMailState::PublishMsgHeader(nsIMsgWindow *msgWindow)
|
||||
{
|
||||
PRBool moved = PR_FALSE;
|
||||
PRBool moved = PR_FALSE;
|
||||
|
||||
FinishHeader();
|
||||
|
||||
@ -1556,7 +1556,7 @@ PRInt32 nsParseNewMailState::PublishMsgHeader(nsIMsgWindow *msgWindow)
|
||||
if (!(oldFlags & MSG_FLAG_READ)) // don't mark read messages as new.
|
||||
m_newMsgHdr->OrFlags(MSG_FLAG_NEW, &newFlags);
|
||||
|
||||
m_mailDB->AddNewHdrToDB (m_newMsgHdr, PR_TRUE);
|
||||
m_mailDB->AddNewHdrToDB(m_newMsgHdr, PR_TRUE);
|
||||
}
|
||||
} // if it was moved by imap filter, m_parseMsgState->m_newMsgHdr == nsnull
|
||||
m_newMsgHdr = nsnull;
|
||||
|
||||
@ -1492,7 +1492,7 @@ nsNNTPProtocol::ParseURL(nsIURI * aURL, char ** aGroup, char ** aMessageID,
|
||||
// if we get here, we, we are either doing:
|
||||
// news://host/message-id or news://host/*
|
||||
// (but not news://host/message-id?cancel)
|
||||
// for authentication, we se set m_newsFolder to be the server's folder.
|
||||
// for authentication, we set m_newsFolder to be the server's folder.
|
||||
// while we are here, we set m_nntpServer.
|
||||
rv = nntpService->DecomposeNewsURI(serverURI.get(), getter_AddRefs(folder), &m_key);
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user