mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
Bug #119344 --> add ability to deep count new mail messages
r=bhuvan sr=sspitzer
This commit is contained in:
parent
8c9ffc4606
commit
0c12948c4a
@ -334,8 +334,12 @@ const nsMsgBiffState nsMsgBiffState_Unknown = 2; // We dunno whether there is ne
|
||||
|
||||
/**
|
||||
* the number of new messages since this folder was last visited
|
||||
*/
|
||||
attribute long numNewMessages;
|
||||
* @param deep if true, descends into all subfolders and gets a grand total
|
||||
*/
|
||||
|
||||
long getNumNewMessages (in boolean deep);
|
||||
|
||||
void setNumNewMessages(in long numNewMessages);
|
||||
|
||||
/**
|
||||
* verbose description of the new messages in this folder
|
||||
|
@ -320,7 +320,7 @@ nsresult nsMsgNotificationManager::AddNewMailNotification(nsIMsgFolder *folder)
|
||||
}
|
||||
|
||||
PRInt32 newMessages;
|
||||
rv = folder->GetNumNewMessages(&newMessages);
|
||||
rv = folder->GetNumNewMessages(PR_FALSE, &newMessages);
|
||||
if(NS_SUCCEEDED(rv))
|
||||
{
|
||||
char *str = PR_smprintf("%d new %s", newMessages, (newMessages == 1) ? "message" : "messages");
|
||||
|
@ -2027,7 +2027,6 @@ NS_IMETHODIMP nsMsgFolder::SetBiffState(PRUint32 aBiffState)
|
||||
return folder->SetBiffState(aBiffState);
|
||||
}
|
||||
|
||||
|
||||
server->SetBiffState(aBiffState);
|
||||
nsCOMPtr<nsISupports> supports;
|
||||
if(NS_SUCCEEDED(QueryInterface(NS_GET_IID(nsISupports), getter_AddRefs(supports))))
|
||||
@ -2037,12 +2036,35 @@ NS_IMETHODIMP nsMsgFolder::SetBiffState(PRUint32 aBiffState)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgFolder::GetNumNewMessages(PRInt32 *aNumNewMessages)
|
||||
NS_IMETHODIMP nsMsgFolder::GetNumNewMessages(PRBool deep, PRInt32 *aNumNewMessages)
|
||||
{
|
||||
if(!aNumNewMessages)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
*aNumNewMessages = mNumNewBiffMessages;
|
||||
PRInt32 numNewMessages = mNumNewBiffMessages;
|
||||
if (deep)
|
||||
{
|
||||
nsCOMPtr<nsIMsgFolder> folder;
|
||||
PRUint32 count;
|
||||
nsresult rv = NS_OK;
|
||||
rv = mSubFolders->Count(&count);
|
||||
if (NS_SUCCEEDED(rv))
|
||||
{
|
||||
for (PRUint32 i = 0; i < count; i++)
|
||||
{
|
||||
nsCOMPtr<nsISupports> supports = getter_AddRefs(mSubFolders->ElementAt(i));
|
||||
folder = do_QueryInterface(supports, &rv);
|
||||
if(NS_SUCCEEDED(rv))
|
||||
{
|
||||
PRInt32 num;
|
||||
folder->GetNumNewMessages(deep, &num);
|
||||
if (num >= 0) // it's legal for counts to be negative if we don't know
|
||||
numNewMessages += num;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
*aNumNewMessages = numNewMessages;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -170,7 +170,7 @@ public:
|
||||
// NS_IMETHOD SetCharset(const PRUnichar * aCharset);
|
||||
NS_IMETHOD GetBiffState(PRUint32 *aBiffState);
|
||||
NS_IMETHOD SetBiffState(PRUint32 aBiffState);
|
||||
NS_IMETHOD GetNumNewMessages(PRInt32 *aNumNewMessages);
|
||||
NS_IMETHOD GetNumNewMessages(PRBool deep, PRInt32 *aNumNewMessages);
|
||||
NS_IMETHOD SetNumNewMessages(PRInt32 aNumNewMessages);
|
||||
NS_IMETHOD GetNewMessagesNotificationDescription(PRUnichar * *aNewMessagesNotificationDescription);
|
||||
NS_IMETHOD GetRootFolder(nsIMsgFolder * *aRootFolder);
|
||||
|
Loading…
Reference in New Issue
Block a user