From aeb304553bd7c8bad1477b4c88392f404872a513 Mon Sep 17 00:00:00 2001 From: "bienvenu%nventure.com" Date: Wed, 5 May 2004 03:07:34 +0000 Subject: [PATCH] fix problem where folders three levels deep or more were not shown in folder pane, if one of the ancestors was not subscribed to, sr=mscott 241319 git-svn-id: svn://10.0.0.236/trunk@155969 18797224-902f-48f8-a5cc-f745e15eee43 --- .../imap/public/nsIImapMailFolderSink.idl | 1 - .../imap/src/nsImapIncomingServer.cpp | 4 +-- .../mailnews/imap/src/nsImapMailFolder.cpp | 36 +++++++++++-------- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/mozilla/mailnews/imap/public/nsIImapMailFolderSink.idl b/mozilla/mailnews/imap/public/nsIImapMailFolderSink.idl index b0c35e73a84..a5de8d5fc24 100644 --- a/mozilla/mailnews/imap/public/nsIImapMailFolderSink.idl +++ b/mozilla/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/mozilla/mailnews/imap/src/nsImapIncomingServer.cpp b/mozilla/mailnews/imap/src/nsImapIncomingServer.cpp index 30ebb1d0f15..126df1b9f04 100644 --- a/mozilla/mailnews/imap/src/nsImapIncomingServer.cpp +++ b/mozilla/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/mozilla/mailnews/imap/src/nsImapMailFolder.cpp b/mozilla/mailnews/imap/src/nsImapMailFolder.cpp index 39b85d0bc5d..963853bc874 100644 --- a/mozilla/mailnews/imap/src/nsImapMailFolder.cpp +++ b/mozilla/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);