diff --git a/mailnews/imap/public/nsIImapMailFolderSink.idl b/mailnews/imap/public/nsIImapMailFolderSink.idl index b0c35e73a84d..a5de8d5fc249 100644 --- a/mailnews/imap/public/nsIImapMailFolderSink.idl +++ b/mailnews/imap/public/nsIImapMailFolderSink.idl @@ -69,7 +69,6 @@ interface nsIImapMailFolderSink : nsISupports { attribute boolean folderNeedsACLListed; attribute boolean folderNeedsSubscribing; attribute boolean folderNeedsAdded; - attribute boolean folderVerifiedOnline; attribute unsigned long aclFlags; attribute long uidValidity; /** diff --git a/mailnews/imap/src/nsImapIncomingServer.cpp b/mailnews/imap/src/nsImapIncomingServer.cpp index 30ebb1d0f15a..126df1b9f04b 100644 --- a/mailnews/imap/src/nsImapIncomingServer.cpp +++ b/mailnews/imap/src/nsImapIncomingServer.cpp @@ -1722,9 +1722,9 @@ NS_IMETHODIMP nsImapIncomingServer::FolderVerifiedOnline(const char *folderName rv = rootFolder->FindSubFolder(nsDependentCString(folderName), getter_AddRefs(aFolder)); if (NS_SUCCEEDED(rv) && aFolder) { - nsCOMPtr imapFolder = do_QueryInterface(aFolder); + nsCOMPtr imapFolder = do_QueryInterface(aFolder); if (imapFolder) - imapFolder->GetFolderVerifiedOnline(aResult); + imapFolder->GetVerifiedAsOnlineFolder(aResult); } } return rv; diff --git a/mailnews/imap/src/nsImapMailFolder.cpp b/mailnews/imap/src/nsImapMailFolder.cpp index 39b85d0bc5d0..963853bc8742 100644 --- a/mailnews/imap/src/nsImapMailFolder.cpp +++ b/mailnews/imap/src/nsImapMailFolder.cpp @@ -1027,6 +1027,28 @@ NS_IMETHODIMP nsImapMailFolder::GetVerifiedAsOnlineFolder(PRBool *aVerifiedAsOnl NS_IMETHODIMP nsImapMailFolder::SetVerifiedAsOnlineFolder(PRBool aVerifiedAsOnlineFolder) { m_verifiedAsOnlineFolder = aVerifiedAsOnlineFolder; + // mark ancestors as verified as well + if (aVerifiedAsOnlineFolder) + { + nsCOMPtr parent; + do + { + GetParent(getter_AddRefs(parent)); + if (parent) + { + nsCOMPtr imapParent = do_QueryInterface(parent); + if (imapParent) + { + PRBool verifiedOnline; + imapParent->GetVerifiedAsOnlineFolder(&verifiedOnline); + if (verifiedOnline) + break; + imapParent->SetVerifiedAsOnlineFolder(PR_TRUE); + } + } + } + while (parent); + } return NS_OK; } @@ -7039,20 +7061,6 @@ NS_IMETHODIMP nsImapMailFolder::SetFolderNeedsAdded(PRBool bVal) return NS_OK; } -NS_IMETHODIMP nsImapMailFolder::GetFolderVerifiedOnline(PRBool *bVal) -{ - if (!bVal) - return NS_ERROR_NULL_POINTER; - *bVal = m_verifiedAsOnlineFolder; - return NS_OK; -} - -NS_IMETHODIMP nsImapMailFolder::SetFolderVerifiedOnline(PRBool bVal) -{ - m_verifiedAsOnlineFolder = bVal; - return NS_OK; -} - NS_IMETHODIMP nsImapMailFolder::GetFolderQuotaCommandIssued(PRBool *aCmdIssued) { NS_ENSURE_ARG_POINTER(aCmdIssued);