mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-03-01 05:48:26 +00:00
17204; r=naving sr=sspitzer patch by bienvenu to make offline stores keep track of expunged bytes.
This commit is contained in:
parent
aaf419adb2
commit
2e71bfd271
@ -39,6 +39,7 @@ public:
|
||||
NS_IMETHOD EndBatch();
|
||||
NS_IMETHOD SetSummaryValid(PRBool valid = PR_TRUE);
|
||||
NS_IMETHOD DeleteMessages(nsMsgKeyArray* nsMsgKeys, nsIDBChangeListener *instigator);
|
||||
virtual nsresult AdjustExpungedBytesOnDelete(nsIMsgDBHdr *msgHdr);
|
||||
|
||||
protected:
|
||||
// IMAP does not set local file flags, override does nothing
|
||||
|
@ -177,6 +177,7 @@ protected:
|
||||
|
||||
virtual nsresult RemoveHeaderFromDB(nsMsgHdr *msgHdr);
|
||||
virtual nsresult RemoveHeaderFromThread(nsMsgHdr *msgHdr);
|
||||
virtual nsresult AdjustExpungedBytesOnDelete(nsIMsgDBHdr *msgHdr);
|
||||
|
||||
|
||||
static nsVoidArray/*<nsMsgDatabase>*/* GetDBCache();
|
||||
|
@ -67,6 +67,8 @@ public:
|
||||
virtual PRBool SetHdrReadFlag(nsIMsgDBHdr *msgHdr, PRBool bRead);
|
||||
|
||||
virtual nsNewsDatabase *GetNewsDB() ;
|
||||
|
||||
virtual nsresult AdjustExpungedBytesOnDelete(nsIMsgDBHdr *msgHdr);
|
||||
|
||||
virtual PRBool PurgeNeeded(MSG_PurgeInfo *hdrPurgeInfo, MSG_PurgeInfo *artPurgeInfo);
|
||||
PRBool IsCategory();
|
||||
|
@ -181,3 +181,17 @@ NS_IMETHODIMP nsImapMailDatabase::DeleteMessages(nsMsgKeyArray* nsMsgKeys, nsIDB
|
||||
return nsMsgDatabase::DeleteMessages(nsMsgKeys, instigator);
|
||||
}
|
||||
|
||||
nsresult nsImapMailDatabase::AdjustExpungedBytesOnDelete(nsIMsgDBHdr *msgHdr)
|
||||
{
|
||||
PRUint32 msgFlags;
|
||||
msgHdr->GetFlags(&msgFlags);
|
||||
if (msgFlags & MSG_FLAG_OFFLINE && m_dbFolderInfo)
|
||||
{
|
||||
PRUint32 size = 0;
|
||||
(void)msgHdr->GetOfflineMessageSize(&size);
|
||||
return m_dbFolderInfo->ChangeExpungedBytes (size);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1390,6 +1390,13 @@ NS_IMETHODIMP nsMsgDatabase::DeleteMessages(nsMsgKeyArray* nsMsgKeys, nsIDBChang
|
||||
return err;
|
||||
}
|
||||
|
||||
nsresult nsMsgDatabase::AdjustExpungedBytesOnDelete(nsIMsgDBHdr *msgHdr)
|
||||
{
|
||||
PRUint32 size = 0;
|
||||
(void)msgHdr->GetMessageSize(&size);
|
||||
return m_dbFolderInfo->ChangeExpungedBytes (size);
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsMsgDatabase::DeleteHeader(nsIMsgDBHdr *msg, nsIDBChangeListener *instigator, PRBool commit, PRBool notify)
|
||||
{
|
||||
@ -1411,11 +1418,7 @@ NS_IMETHODIMP nsMsgDatabase::DeleteHeader(nsIMsgDBHdr *msg, nsIDBChangeListener
|
||||
IsRead(key, &isRead);
|
||||
if (!isRead)
|
||||
m_dbFolderInfo->ChangeNumNewMessages(-1);
|
||||
|
||||
PRUint32 size;
|
||||
(void)msg->GetMessageSize(&size);
|
||||
m_dbFolderInfo->ChangeExpungedBytes (size);
|
||||
|
||||
AdjustExpungedBytesOnDelete(msg);
|
||||
}
|
||||
|
||||
PRUint32 flags;
|
||||
|
@ -447,6 +447,19 @@ NS_IMETHODIMP nsNewsDatabase::MarkAllRead(nsMsgKeyArray *thoseMarked)
|
||||
return err;
|
||||
}
|
||||
|
||||
nsresult nsNewsDatabase::AdjustExpungedBytesOnDelete(nsIMsgDBHdr *msgHdr)
|
||||
{
|
||||
PRUint32 msgFlags;
|
||||
msgHdr->GetFlags(&msgFlags);
|
||||
if (msgFlags & MSG_FLAG_OFFLINE && m_dbFolderInfo)
|
||||
{
|
||||
PRUint32 size = 0;
|
||||
(void)msgHdr->GetOfflineMessageSize(&size);
|
||||
return m_dbFolderInfo->ChangeExpungedBytes (size);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsNewsDatabase::GetDefaultViewFlags(nsMsgViewFlagsTypeValue *aDefaultViewFlags)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user