diff --git a/mozilla/mailnews/base/resources/content/folderPane.xul b/mozilla/mailnews/base/resources/content/folderPane.xul
index b38dc6ed489..2adcbd0f868 100644
--- a/mozilla/mailnews/base/resources/content/folderPane.xul
+++ b/mozilla/mailnews/base/resources/content/folderPane.xul
@@ -60,6 +60,7 @@
+
diff --git a/mozilla/mailnews/base/src/nsMsgAccountManagerDS.cpp b/mozilla/mailnews/base/src/nsMsgAccountManagerDS.cpp
index 870d0611d3c..dafb912d34d 100644
--- a/mozilla/mailnews/base/src/nsMsgAccountManagerDS.cpp
+++ b/mozilla/mailnews/base/src/nsMsgAccountManagerDS.cpp
@@ -177,6 +177,7 @@ nsMsgAccountManagerDataSource::nsMsgAccountManagerDataSource()
&kNC_CanGetMessages);
getRDFService()->GetResource(NS_LITERAL_CSTRING(NC_RDF_CANGETINCOMINGMESSAGES),
&kNC_CanGetIncomingMessages);
+
getRDFService()->GetResource(NS_LITERAL_CSTRING(NC_RDF_ACCOUNT), &kNC_Account);
getRDFService()->GetResource(NS_LITERAL_CSTRING(NC_RDF_SERVER), &kNC_Server);
getRDFService()->GetResource(NS_LITERAL_CSTRING(NC_RDF_IDENTITY), &kNC_Identity);
@@ -288,14 +289,16 @@ nsMsgAccountManagerDataSource::Init()
nsCOMPtr am;
// get a weak ref to the account manager
- if (!mAccountManager) {
+ if (!mAccountManager)
+ {
am = do_GetService(NS_MSGACCOUNTMANAGER_CONTRACTID, &rv);
mAccountManager = do_GetWeakReference(am);
}
else
am = do_QueryReferent(mAccountManager);
- if (am) {
+ if (am)
+ {
am->AddIncomingServerListener(this);
am->AddRootFolderListener(this);
}
@@ -308,7 +311,8 @@ void nsMsgAccountManagerDataSource::Cleanup()
{
nsCOMPtr am = do_QueryReferent(mAccountManager);
- if (am) {
+ if (am)
+ {
am->RemoveIncomingServerListener(this);
am->RemoveRootFolderListener(this);
}
@@ -330,8 +334,8 @@ nsMsgAccountManagerDataSource::GetTarget(nsIRDFResource *source,
nsAutoString str;
if (property == kNC_Name || property == kNC_FolderTreeName ||
- property == kNC_FolderTreeSimpleName) {
-
+ property == kNC_FolderTreeSimpleName)
+ {
rv = getStringBundle();
NS_ENSURE_SUCCESS(rv, rv);
@@ -1202,12 +1206,12 @@ nsMsgAccountManagerDataSource::getServerForFolderNode(nsIRDFNode *aResource,
{
nsresult rv;
nsCOMPtr folder = do_QueryInterface(aResource, &rv);
- if (NS_SUCCEEDED(rv)) {
+ if (NS_SUCCEEDED(rv))
+ {
PRBool isServer;
rv = folder->GetIsServer(&isServer);
- if (NS_SUCCEEDED(rv) && isServer) {
+ if (NS_SUCCEEDED(rv) && isServer)
return folder->GetServer(aResult);
- }
}
return NS_ERROR_FAILURE;
}
@@ -1224,7 +1228,8 @@ nsMsgAccountManagerDataSource::findServerByKey(nsISupports *aElement,
nsXPIDLCString key;
server->GetKey(getter_Copies(key));
- if (nsCRT::strcmp(key, entry->serverKey)==0) {
+ if (nsCRT::strcmp(key, entry->serverKey)==0)
+ {
entry->found = PR_TRUE;
return PR_FALSE; // stop when found
}
@@ -1243,18 +1248,15 @@ nsMsgAccountManagerDataSource::getStringBundle()
do_GetService(NS_STRINGBUNDLE_CONTRACTID, &rv);
if (NS_FAILED(rv)) return rv;
- rv = strBundleService->CreateBundle("chrome://messenger/locale/prefs.properties",
+ return strBundleService->CreateBundle("chrome://messenger/locale/prefs.properties",
getter_AddRefs(mStringBundle));
- return rv;
}
NS_IMETHODIMP
nsMsgAccountManagerDataSource::OnServerLoaded(nsIMsgIncomingServer* aServer)
{
- nsresult rv;
-
nsCOMPtr serverFolder;
- rv = aServer->GetRootFolder(getter_AddRefs(serverFolder));
+ nsresult rv = aServer->GetRootFolder(getter_AddRefs(serverFolder));
if (NS_FAILED(rv)) return rv;
nsCOMPtr serverResource = do_QueryInterface(serverFolder,&rv);
@@ -1283,10 +1285,8 @@ nsMsgAccountManagerDataSource::OnServerLoaded(nsIMsgIncomingServer* aServer)
NS_IMETHODIMP
nsMsgAccountManagerDataSource::OnServerUnloaded(nsIMsgIncomingServer* aServer)
{
- nsresult rv;
-
nsCOMPtr serverFolder;
- rv = aServer->GetRootFolder(getter_AddRefs(serverFolder));
+ nsresult rv = aServer->GetRootFolder(getter_AddRefs(serverFolder));
if (NS_FAILED(rv)) return rv;
nsCOMPtr serverResource = do_QueryInterface(serverFolder,&rv);
@@ -1404,7 +1404,8 @@ nsMsgAccountManagerDataSource::IsIncomingServerForFakeAccount(nsIMsgIncomingServ
rv = GetFakeAccountHostName(getter_Copies(fakeAccountHostName));
NS_ENSURE_SUCCESS(rv,rv);
- if (fakeAccountHostName.IsEmpty()) {
+ if (fakeAccountHostName.IsEmpty())
+ {
*aResult = PR_FALSE;
return NS_OK;
}
diff --git a/mozilla/mailnews/base/src/nsMsgFolderDataSource.cpp b/mozilla/mailnews/base/src/nsMsgFolderDataSource.cpp
index 35970eb092a..6fa76e09a6d 100644
--- a/mozilla/mailnews/base/src/nsMsgFolderDataSource.cpp
+++ b/mozilla/mailnews/base/src/nsMsgFolderDataSource.cpp
@@ -64,6 +64,7 @@
#include "nsTraceRefcnt.h"
#include "nsIMsgFolder.h" // TO include biffState enum. Change to bool later...
#include "nsArray.h"
+#include "nsIPop3IncomingServer.h"
nsIRDFResource* nsMsgFolderDataSource::kNC_Child = nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_Folder= nsnull;
@@ -75,6 +76,7 @@ nsIRDFResource* nsMsgFolderDataSource::kNC_NameSort= nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_FolderTreeNameSort= nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_SpecialFolder= nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_ServerType = nsnull;
+nsIRDFResource* nsMsgFolderDataSource::kNC_IsDeferred = nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_RedirectorType = nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_CanCreateFoldersOnServer = nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_CanFileMessagesOnServer = nsnull;
@@ -145,6 +147,7 @@ nsMsgFolderDataSource::nsMsgFolderDataSource()
rdf->GetResource(NS_LITERAL_CSTRING(NC_RDF_FOLDERTREENAME_SORT), &kNC_FolderTreeNameSort);
rdf->GetResource(NS_LITERAL_CSTRING(NC_RDF_SPECIALFOLDER), &kNC_SpecialFolder);
rdf->GetResource(NS_LITERAL_CSTRING(NC_RDF_SERVERTYPE), &kNC_ServerType);
+ rdf->GetResource(NS_LITERAL_CSTRING(NC_RDF_ISDEFERRED),&kNC_IsDeferred);
rdf->GetResource(NS_LITERAL_CSTRING(NC_RDF_REDIRECTORTYPE), &kNC_RedirectorType);
rdf->GetResource(NS_LITERAL_CSTRING(NC_RDF_CANCREATEFOLDERSONSERVER), &kNC_CanCreateFoldersOnServer);
rdf->GetResource(NS_LITERAL_CSTRING(NC_RDF_CANFILEMESSAGESONSERVER), &kNC_CanFileMessagesOnServer);
@@ -193,69 +196,69 @@ nsMsgFolderDataSource::nsMsgFolderDataSource()
kNewMessagesAtom = NS_NewAtom("NewMessages");
kNameAtom = NS_NewAtom("Name");
kSynchronizeAtom = NS_NewAtom("Synchronize");
- kOpenAtom = NS_NewAtom("open");
+ kOpenAtom = NS_NewAtom("open");
}
- CreateLiterals(rdf);
- CreateArcsOutEnumerator();
+ CreateLiterals(rdf);
+ CreateArcsOutEnumerator();
}
nsMsgFolderDataSource::~nsMsgFolderDataSource (void)
{
-
- if (--gFolderResourceRefCnt == 0)
- {
- nsrefcnt refcnt;
- NS_RELEASE2(kNC_Child, refcnt);
- NS_RELEASE2(kNC_Folder, refcnt);
- NS_RELEASE2(kNC_Name, refcnt);
- NS_RELEASE2(kNC_Open, refcnt);
- NS_RELEASE2(kNC_FolderTreeName, refcnt);
- NS_RELEASE2(kNC_FolderTreeSimpleName, refcnt);
- NS_RELEASE2(kNC_NameSort, refcnt);
- NS_RELEASE2(kNC_FolderTreeNameSort, refcnt);
- NS_RELEASE2(kNC_SpecialFolder, refcnt);
- NS_RELEASE2(kNC_ServerType, refcnt);
+ if (--gFolderResourceRefCnt == 0)
+ {
+ nsrefcnt refcnt;
+ NS_RELEASE2(kNC_Child, refcnt);
+ NS_RELEASE2(kNC_Folder, refcnt);
+ NS_RELEASE2(kNC_Name, refcnt);
+ NS_RELEASE2(kNC_Open, refcnt);
+ NS_RELEASE2(kNC_FolderTreeName, refcnt);
+ NS_RELEASE2(kNC_FolderTreeSimpleName, refcnt);
+ NS_RELEASE2(kNC_NameSort, refcnt);
+ NS_RELEASE2(kNC_FolderTreeNameSort, refcnt);
+ NS_RELEASE2(kNC_SpecialFolder, refcnt);
+ NS_RELEASE2(kNC_ServerType, refcnt);
+ NS_RELEASE2(kNC_IsDeferred, refcnt);
NS_RELEASE2(kNC_RedirectorType, refcnt);
- NS_RELEASE2(kNC_CanCreateFoldersOnServer, refcnt);
- NS_RELEASE2(kNC_CanFileMessagesOnServer, refcnt);
- NS_RELEASE2(kNC_IsServer, refcnt);
- NS_RELEASE2(kNC_IsSecure, refcnt);
- NS_RELEASE2(kNC_CanSubscribe, refcnt);
- NS_RELEASE2(kNC_SupportsOffline, refcnt);
- NS_RELEASE2(kNC_CanFileMessages, refcnt);
- NS_RELEASE2(kNC_CanCreateSubfolders, refcnt);
- NS_RELEASE2(kNC_CanRename, refcnt);
+ NS_RELEASE2(kNC_CanCreateFoldersOnServer, refcnt);
+ NS_RELEASE2(kNC_CanFileMessagesOnServer, refcnt);
+ NS_RELEASE2(kNC_IsServer, refcnt);
+ NS_RELEASE2(kNC_IsSecure, refcnt);
+ NS_RELEASE2(kNC_CanSubscribe, refcnt);
+ NS_RELEASE2(kNC_SupportsOffline, refcnt);
+ NS_RELEASE2(kNC_CanFileMessages, refcnt);
+ NS_RELEASE2(kNC_CanCreateSubfolders, refcnt);
+ NS_RELEASE2(kNC_CanRename, refcnt);
NS_RELEASE2(kNC_CanCompact, refcnt);
- NS_RELEASE2(kNC_TotalMessages, refcnt);
- NS_RELEASE2(kNC_TotalUnreadMessages, refcnt);
- NS_RELEASE2(kNC_FolderSize, refcnt);
- NS_RELEASE2(kNC_Charset, refcnt);
- NS_RELEASE2(kNC_BiffState, refcnt);
- NS_RELEASE2(kNC_HasUnreadMessages, refcnt);
- NS_RELEASE2(kNC_NewMessages, refcnt);
- NS_RELEASE2(kNC_SubfoldersHaveUnreadMessages, refcnt);
+ NS_RELEASE2(kNC_TotalMessages, refcnt);
+ NS_RELEASE2(kNC_TotalUnreadMessages, refcnt);
+ NS_RELEASE2(kNC_FolderSize, refcnt);
+ NS_RELEASE2(kNC_Charset, refcnt);
+ NS_RELEASE2(kNC_BiffState, refcnt);
+ NS_RELEASE2(kNC_HasUnreadMessages, refcnt);
+ NS_RELEASE2(kNC_NewMessages, refcnt);
+ NS_RELEASE2(kNC_SubfoldersHaveUnreadMessages, refcnt);
NS_RELEASE2(kNC_NoSelect, refcnt);
NS_RELEASE2(kNC_ImapShared, refcnt);
NS_RELEASE2(kNC_Synchronize, refcnt);
NS_RELEASE2(kNC_SyncDisabled, refcnt);
NS_RELEASE2(kNC_CanSearchMessages, refcnt);
-
- NS_RELEASE2(kNC_Delete, refcnt);
- NS_RELEASE2(kNC_ReallyDelete, refcnt);
- NS_RELEASE2(kNC_NewFolder, refcnt);
- NS_RELEASE2(kNC_GetNewMessages, refcnt);
- NS_RELEASE2(kNC_Copy, refcnt);
- NS_RELEASE2(kNC_Move, refcnt);
- NS_RELEASE2(kNC_CopyFolder, refcnt);
- NS_RELEASE2(kNC_MoveFolder, refcnt);
- NS_RELEASE2(kNC_MarkAllMessagesRead, refcnt);
- NS_RELEASE2(kNC_Compact, refcnt);
- NS_RELEASE2(kNC_CompactAll, refcnt);
- NS_RELEASE2(kNC_Rename, refcnt);
- NS_RELEASE2(kNC_EmptyTrash, refcnt);
- NS_RELEASE2(kNC_DownloadFlagged, refcnt);
-
+
+ NS_RELEASE2(kNC_Delete, refcnt);
+ NS_RELEASE2(kNC_ReallyDelete, refcnt);
+ NS_RELEASE2(kNC_NewFolder, refcnt);
+ NS_RELEASE2(kNC_GetNewMessages, refcnt);
+ NS_RELEASE2(kNC_Copy, refcnt);
+ NS_RELEASE2(kNC_Move, refcnt);
+ NS_RELEASE2(kNC_CopyFolder, refcnt);
+ NS_RELEASE2(kNC_MoveFolder, refcnt);
+ NS_RELEASE2(kNC_MarkAllMessagesRead, refcnt);
+ NS_RELEASE2(kNC_Compact, refcnt);
+ NS_RELEASE2(kNC_CompactAll, refcnt);
+ NS_RELEASE2(kNC_Rename, refcnt);
+ NS_RELEASE2(kNC_EmptyTrash, refcnt);
+ NS_RELEASE2(kNC_DownloadFlagged, refcnt);
+
NS_RELEASE(kTotalMessagesAtom);
NS_RELEASE(kTotalUnreadMessagesAtom);
NS_RELEASE(kFolderSizeAtom);
@@ -263,9 +266,8 @@ nsMsgFolderDataSource::~nsMsgFolderDataSource (void)
NS_RELEASE(kNewMessagesAtom);
NS_RELEASE(kNameAtom);
NS_RELEASE(kSynchronizeAtom);
- NS_RELEASE(kOpenAtom);
- }
-
+ NS_RELEASE(kOpenAtom);
+ }
}
nsresult nsMsgFolderDataSource::CreateLiterals(nsIRDFService *rdf)
@@ -313,17 +315,17 @@ void nsMsgFolderDataSource::Cleanup()
mailSession->RemoveFolderListener(this);
}
- nsMsgRDFDataSource::Cleanup();
+ nsMsgRDFDataSource::Cleanup();
}
nsresult nsMsgFolderDataSource::CreateArcsOutEnumerator()
{
- nsresult rv;
+ nsresult rv;
- rv = getFolderArcLabelsOut(getter_AddRefs(kFolderArcsOutArray));
- if(NS_FAILED(rv)) return rv;
+ rv = getFolderArcLabelsOut(getter_AddRefs(kFolderArcsOutArray));
+ if(NS_FAILED(rv)) return rv;
- return rv;
+ return rv;
}
NS_IMPL_ADDREF_INHERITED(nsMsgFolderDataSource, nsMsgRDFDataSource)
@@ -334,16 +336,16 @@ nsMsgFolderDataSource::QueryInterface(REFNSIID iid, void** result)
{
if (! result)
return NS_ERROR_NULL_POINTER;
-
- *result = nsnull;
- if(iid.Equals(NS_GET_IID(nsIFolderListener)))
- {
- *result = NS_STATIC_CAST(nsIFolderListener*, this);
- NS_ADDREF(this);
- return NS_OK;
- }
- else
- return nsMsgRDFDataSource::QueryInterface(iid, result);
+
+ *result = nsnull;
+ if(iid.Equals(NS_GET_IID(nsIFolderListener)))
+ {
+ *result = NS_STATIC_CAST(nsIFolderListener*, this);
+ NS_ADDREF(this);
+ return NS_OK;
+ }
+ else
+ return nsMsgRDFDataSource::QueryInterface(iid, result);
}
// nsIRDFDataSource methods
@@ -360,7 +362,7 @@ NS_IMETHODIMP nsMsgFolderDataSource::GetSource(nsIRDFResource* property,
PRBool tv,
nsIRDFResource** source /* out */)
{
- PR_ASSERT(0);
+ NS_ASSERTION(PR_FALSE, "not implemented");
return NS_ERROR_NOT_IMPLEMENTED;
}
@@ -376,7 +378,8 @@ NS_IMETHODIMP nsMsgFolderDataSource::GetTarget(nsIRDFResource* source,
return NS_RDF_NO_VALUE;
nsCOMPtr folder(do_QueryInterface(source));
- if (folder) {
+ if (folder)
+ {
rv = createFolderNode(folder, property, target);
#if 0
nsXPIDLCString srcval;
@@ -394,7 +397,7 @@ NS_IMETHODIMP nsMsgFolderDataSource::GetTarget(nsIRDFResource* source,
}
else
- return NS_RDF_NO_VALUE;
+ return NS_RDF_NO_VALUE;
return rv;
}
@@ -404,7 +407,7 @@ NS_IMETHODIMP nsMsgFolderDataSource::GetSources(nsIRDFResource* property,
PRBool tv,
nsISimpleEnumerator** sources)
{
- PR_ASSERT(0);
+ NS_ASSERTION(PR_FALSE, "not implemented");
return NS_ERROR_NOT_IMPLEMENTED;
}
@@ -415,8 +418,8 @@ NS_IMETHODIMP nsMsgFolderDataSource::GetTargets(nsIRDFResource* source,
{
nsresult rv = NS_RDF_NO_VALUE;
if(!targets)
- return NS_ERROR_NULL_POINTER;
-
+ return NS_ERROR_NULL_POINTER;
+
#if 0
nsXPIDLCString srcval;
nsXPIDLCString propval;
@@ -426,12 +429,12 @@ NS_IMETHODIMP nsMsgFolderDataSource::GetTargets(nsIRDFResource* source,
// (*target)->GetValue(getter_Copies(targetval));
printf("nsMsgFolderDataSource::GetTargets(%s, %s, %s, (%s))\n",
- (const char*)srcval,
- (const char*)propval, tv ? "TRUE" : "FALSE",
- (const char*)"");
+ (const char*)srcval,
+ (const char*)propval, tv ? "TRUE" : "FALSE",
+ (const char*)"");
#endif
*targets = nsnull;
-
+
nsCOMPtr folder(do_QueryInterface(source, &rv));
if (NS_SUCCEEDED(rv))
{
@@ -440,38 +443,39 @@ NS_IMETHODIMP nsMsgFolderDataSource::GetTargets(nsIRDFResource* source,
nsCOMPtr subFolders;
rv = folder->GetSubFolders(getter_AddRefs(subFolders));
if(NS_SUCCEEDED(rv))
- {
- nsAdapterEnumerator* cursor =
- new nsAdapterEnumerator(subFolders);
- if (cursor == nsnull)
- return NS_ERROR_OUT_OF_MEMORY;
- NS_ADDREF(cursor);
- *targets = cursor;
- rv = NS_OK;
- }
+ {
+ nsAdapterEnumerator* cursor =
+ new nsAdapterEnumerator(subFolders);
+ if (cursor == nsnull)
+ return NS_ERROR_OUT_OF_MEMORY;
+ NS_ADDREF(cursor);
+ *targets = cursor;
+ rv = NS_OK;
+ }
}
else if ((kNC_Name == property) ||
- (kNC_Open == property) ||
- (kNC_FolderTreeName == property) ||
- (kNC_FolderTreeSimpleName == property) ||
- (kNC_SpecialFolder == property) ||
- (kNC_IsServer == property) ||
- (kNC_IsSecure == property) ||
- (kNC_CanSubscribe == property) ||
- (kNC_SupportsOffline == property) ||
- (kNC_CanFileMessages == property) ||
- (kNC_CanCreateSubfolders == property) ||
- (kNC_CanRename == property) ||
- (kNC_CanCompact == property) ||
- (kNC_ServerType == property) ||
- (kNC_RedirectorType == property) ||
- (kNC_CanCreateFoldersOnServer == property) ||
- (kNC_CanFileMessagesOnServer == property) ||
- (kNC_NoSelect == property) ||
- (kNC_ImapShared == property) ||
- (kNC_Synchronize == property) ||
- (kNC_SyncDisabled == property) ||
- (kNC_CanSearchMessages == property))
+ (kNC_Open == property) ||
+ (kNC_FolderTreeName == property) ||
+ (kNC_FolderTreeSimpleName == property) ||
+ (kNC_SpecialFolder == property) ||
+ (kNC_IsServer == property) ||
+ (kNC_IsSecure == property) ||
+ (kNC_CanSubscribe == property) ||
+ (kNC_SupportsOffline == property) ||
+ (kNC_CanFileMessages == property) ||
+ (kNC_CanCreateSubfolders == property) ||
+ (kNC_CanRename == property) ||
+ (kNC_CanCompact == property) ||
+ (kNC_ServerType == property) ||
+ (kNC_IsDeferred == property) ||
+ (kNC_RedirectorType == property) ||
+ (kNC_CanCreateFoldersOnServer == property) ||
+ (kNC_CanFileMessagesOnServer == property) ||
+ (kNC_NoSelect == property) ||
+ (kNC_ImapShared == property) ||
+ (kNC_Synchronize == property) ||
+ (kNC_SyncDisabled == property) ||
+ (kNC_CanSearchMessages == property))
{
nsSingletonEnumerator* cursor =
new nsSingletonEnumerator(property);
@@ -484,10 +488,10 @@ NS_IMETHODIMP nsMsgFolderDataSource::GetTargets(nsIRDFResource* source,
}
if(!*targets)
{
- //create empty cursor
- rv = NS_NewEmptyEnumerator(targets);
+ //create empty cursor
+ rv = NS_NewEmptyEnumerator(targets);
}
-
+
return rv;
}
@@ -496,13 +500,13 @@ NS_IMETHODIMP nsMsgFolderDataSource::Assert(nsIRDFResource* source,
nsIRDFNode* target,
PRBool tv)
{
- nsresult rv;
- nsCOMPtr folder(do_QueryInterface(source, &rv));
- //We don't handle tv = PR_FALSE at the moment.
- if(NS_SUCCEEDED(rv) && tv)
- return DoFolderAssert(folder, property, target);
- else
- return NS_ERROR_FAILURE;
+ nsresult rv;
+ nsCOMPtr folder(do_QueryInterface(source, &rv));
+ //We don't handle tv = PR_FALSE at the moment.
+ if(NS_SUCCEEDED(rv) && tv)
+ return DoFolderAssert(folder, property, target);
+ else
+ return NS_ERROR_FAILURE;
}
NS_IMETHODIMP nsMsgFolderDataSource::Unassert(nsIRDFResource* source,
@@ -522,7 +526,7 @@ NS_IMETHODIMP nsMsgFolderDataSource::HasAssertion(nsIRDFResource* source,
PRBool tv,
PRBool* hasAssertion)
{
- nsresult rv;
+ nsresult rv;
#if 0
nsXPIDLCString sourceval;
nsXPIDLCString propval;
@@ -532,13 +536,13 @@ NS_IMETHODIMP nsMsgFolderDataSource::HasAssertion(nsIRDFResource* source,
/* target->GetValue(getter_Copies(targetval)); */
printf("HasAssertion(%s, %s, ??...)\n", (const char*)sourceval, (const char*)propval);
#endif
-
- nsCOMPtr folder(do_QueryInterface(source, &rv));
- if(NS_SUCCEEDED(rv))
- return DoFolderHasAssertion(folder, property, target, tv, hasAssertion);
- else
- *hasAssertion = PR_FALSE;
- return NS_OK;
+
+ nsCOMPtr folder(do_QueryInterface(source, &rv));
+ if(NS_SUCCEEDED(rv))
+ return DoFolderHasAssertion(folder, property, target, tv, hasAssertion);
+ else
+ *hasAssertion = PR_FALSE;
+ return NS_OK;
}
@@ -546,75 +550,79 @@ NS_IMETHODIMP
nsMsgFolderDataSource::HasArcOut(nsIRDFResource *aSource, nsIRDFResource *aArc, PRBool *result)
{
nsresult rv;
- nsCOMPtr folder(do_QueryInterface(aSource, &rv));
- if (NS_SUCCEEDED(rv)) {
+ nsCOMPtr folder(do_QueryInterface(aSource, &rv));
+ if (NS_SUCCEEDED(rv))
+ {
*result = (aArc == kNC_Name ||
- aArc == kNC_Open ||
- aArc == kNC_FolderTreeName ||
- aArc == kNC_FolderTreeSimpleName ||
- aArc == kNC_SpecialFolder ||
- aArc == kNC_ServerType ||
- aArc == kNC_RedirectorType ||
- aArc == kNC_CanCreateFoldersOnServer ||
- aArc == kNC_CanFileMessagesOnServer ||
- aArc == kNC_IsServer ||
- aArc == kNC_IsSecure ||
- aArc == kNC_CanSubscribe ||
- aArc == kNC_SupportsOffline ||
- aArc == kNC_CanFileMessages ||
- aArc == kNC_CanCreateSubfolders ||
- aArc == kNC_CanRename ||
- aArc == kNC_CanCompact ||
- aArc == kNC_TotalMessages ||
- aArc == kNC_TotalUnreadMessages ||
- aArc == kNC_FolderSize ||
- aArc == kNC_Charset ||
- aArc == kNC_BiffState ||
- aArc == kNC_Child ||
- aArc == kNC_NoSelect ||
- aArc == kNC_ImapShared ||
- aArc == kNC_Synchronize ||
- aArc == kNC_SyncDisabled ||
- aArc == kNC_CanSearchMessages);
- }
- else {
- *result = PR_FALSE;
- }
+ aArc == kNC_Open ||
+ aArc == kNC_FolderTreeName ||
+ aArc == kNC_FolderTreeSimpleName ||
+ aArc == kNC_SpecialFolder ||
+ aArc == kNC_ServerType ||
+ aArc == kNC_IsDeferred ||
+ aArc == kNC_RedirectorType ||
+ aArc == kNC_CanCreateFoldersOnServer ||
+ aArc == kNC_CanFileMessagesOnServer ||
+ aArc == kNC_IsServer ||
+ aArc == kNC_IsSecure ||
+ aArc == kNC_CanSubscribe ||
+ aArc == kNC_SupportsOffline ||
+ aArc == kNC_CanFileMessages ||
+ aArc == kNC_CanCreateSubfolders ||
+ aArc == kNC_CanRename ||
+ aArc == kNC_CanCompact ||
+ aArc == kNC_TotalMessages ||
+ aArc == kNC_TotalUnreadMessages ||
+ aArc == kNC_FolderSize ||
+ aArc == kNC_Charset ||
+ aArc == kNC_BiffState ||
+ aArc == kNC_Child ||
+ aArc == kNC_NoSelect ||
+ aArc == kNC_ImapShared ||
+ aArc == kNC_Synchronize ||
+ aArc == kNC_SyncDisabled ||
+ aArc == kNC_CanSearchMessages);
+ }
+ else
+ {
+ *result = PR_FALSE;
+ }
return NS_OK;
}
NS_IMETHODIMP nsMsgFolderDataSource::ArcLabelsIn(nsIRDFNode* node,
nsISimpleEnumerator** labels)
{
- return nsMsgRDFDataSource::ArcLabelsIn(node, labels);
+ return nsMsgRDFDataSource::ArcLabelsIn(node, labels);
}
NS_IMETHODIMP nsMsgFolderDataSource::ArcLabelsOut(nsIRDFResource* source,
nsISimpleEnumerator** labels)
{
- nsresult rv = NS_RDF_NO_VALUE;
- nsCOMPtr arcsArray;
-
- nsCOMPtr folder(do_QueryInterface(source, &rv));
- if (NS_SUCCEEDED(rv)) {
- arcsArray = kFolderArcsOutArray;
-
+ nsresult rv = NS_RDF_NO_VALUE;
+ nsCOMPtr arcsArray;
+
+ nsCOMPtr folder(do_QueryInterface(source, &rv));
+ if (NS_SUCCEEDED(rv))
+ {
+ arcsArray = kFolderArcsOutArray;
rv = NS_NewArrayEnumerator(labels, arcsArray);
- }
- else {
+ }
+ else
+ {
rv = NS_NewEmptyEnumerator(labels);
- }
-
- return rv;
+ }
+
+ return rv;
}
nsresult
nsMsgFolderDataSource::getFolderArcLabelsOut(nsISupportsArray **arcs)
{
- nsresult rv;
+ nsresult rv;
rv = NS_NewISupportsArray(arcs);
- if(NS_FAILED(rv))
- return rv;
+ if(NS_FAILED(rv))
+ return rv;
(*arcs)->AppendElement(kNC_Name);
(*arcs)->AppendElement(kNC_Open);
@@ -622,6 +630,7 @@ nsMsgFolderDataSource::getFolderArcLabelsOut(nsISupportsArray **arcs)
(*arcs)->AppendElement(kNC_FolderTreeSimpleName);
(*arcs)->AppendElement(kNC_SpecialFolder);
(*arcs)->AppendElement(kNC_ServerType);
+ (*arcs)->AppendElement(kNC_IsDeferred);
(*arcs)->AppendElement(kNC_RedirectorType);
(*arcs)->AppendElement(kNC_CanCreateFoldersOnServer);
(*arcs)->AppendElement(kNC_CanFileMessagesOnServer);
@@ -693,15 +702,17 @@ nsMsgFolderDataSource::IsCommandEnabled(nsISupportsArray/**/* aS
nsISupportsArray/**/* aArguments,
PRBool* aResult)
{
- nsresult rv;
+ nsresult rv;
nsCOMPtr folder;
PRUint32 cnt;
rv = aSources->Count(&cnt);
if (NS_FAILED(rv)) return rv;
- for (PRUint32 i = 0; i < cnt; i++) {
- folder = do_QueryElementAt(aSources, i, &rv);
- if (NS_SUCCEEDED(rv)) {
+ for (PRUint32 i = 0; i < cnt; i++)
+ {
+ folder = do_QueryElementAt(aSources, i, &rv);
+ if (NS_SUCCEEDED(rv))
+ {
// we don't care about the arguments -- folder commands are always enabled
if (!((aCommand == kNC_Delete) ||
(aCommand == kNC_ReallyDelete) ||
@@ -742,7 +753,8 @@ nsMsgFolderDataSource::DoCommand(nsISupportsArray/**/* aSources,
rv = aSources->Count(&cnt);
if (NS_FAILED(rv)) return rv;
- for ( ; i < cnt; i++) {
+ for ( ; i < cnt; i++)
+ {
nsCOMPtr folder = do_QueryElementAt(aSources, i, &rv);
if (NS_SUCCEEDED(rv))
{
@@ -798,18 +810,18 @@ nsMsgFolderDataSource::DoCommand(nsISupportsArray/**/* aSources,
{
nsCOMPtr literal = do_QueryElementAt(aArguments, 0, &rv);
if(NS_SUCCEEDED(rv))
- {
+ {
nsXPIDLString name;
literal->GetValue(getter_Copies(name));
rv = folder->Rename(name.get(),mWindow);
- }
+ }
}
}
- else
- {
- rv = NS_ERROR_NOT_IMPLEMENTED;
- }
+ else
+ {
+ rv = NS_ERROR_NOT_IMPLEMENTED;
+ }
}
//for the moment return NS_OK, because failure stops entire DoCommand process.
return rv;
@@ -818,12 +830,12 @@ nsMsgFolderDataSource::DoCommand(nsISupportsArray/**/* aSources,
NS_IMETHODIMP nsMsgFolderDataSource::OnItemAdded(nsIRDFResource *parentItem, nsISupports *item)
{
- return OnItemAddedOrRemoved(parentItem, item, PR_TRUE);
+ return OnItemAddedOrRemoved(parentItem, item, PR_TRUE);
}
NS_IMETHODIMP nsMsgFolderDataSource::OnItemRemoved(nsIRDFResource *parentItem, nsISupports *item)
{
- return OnItemAddedOrRemoved(parentItem, item, PR_FALSE);
+ return OnItemAddedOrRemoved(parentItem, item, PR_FALSE);
}
@@ -844,7 +856,7 @@ nsMsgFolderDataSource::OnItemPropertyChanged(nsIRDFResource *resource,
const char *newValue)
{
- return NS_OK;
+ return NS_OK;
}
NS_IMETHODIMP
@@ -868,9 +880,11 @@ nsMsgFolderDataSource::OnItemUnicharPropertyChanged(nsIRDFResource *resource,
const PRUnichar *oldValue,
const PRUnichar *newValue)
{
- if (kNameAtom == property) {
+ if (kNameAtom == property)
+ {
nsCOMPtr folder(do_QueryInterface(resource));
- if (folder) {
+ if (folder)
+ {
PRInt32 numUnread;
folder->GetNumUnread(PR_FALSE, &numUnread);
NotifyFolderTreeNameChanged(folder, resource, numUnread);
@@ -943,7 +957,7 @@ nsMsgFolderDataSource::OnItemPropertyFlagChanged(nsISupports *item,
NS_IMETHODIMP
nsMsgFolderDataSource::OnItemEvent(nsIMsgFolder *aFolder, nsIAtom *aEvent)
{
- return NS_OK;
+ return NS_OK;
}
@@ -969,6 +983,8 @@ nsresult nsMsgFolderDataSource::createFolderNode(nsIMsgFolder* folder,
rv = createFolderSpecialNode(folder,target);
else if ((kNC_ServerType == property))
rv = createFolderServerTypeNode(folder, target);
+ else if ((kNC_IsDeferred == property))
+ rv = createServerIsDeferredNode(folder, target);
else if ((kNC_RedirectorType == property))
rv = createFolderRedirectorTypeNode(folder, target);
else if ((kNC_CanCreateFoldersOnServer == property))
@@ -991,34 +1007,34 @@ nsresult nsMsgFolderDataSource::createFolderNode(nsIMsgFolder* folder,
rv = createFolderCanRenameNode(folder, target);
else if ((kNC_CanCompact == property))
rv = createFolderCanCompactNode(folder, target);
- else if ((kNC_TotalMessages == property))
- rv = createTotalMessagesNode(folder, target);
- else if ((kNC_TotalUnreadMessages == property))
- rv = createUnreadMessagesNode(folder, target);
- else if ((kNC_FolderSize == property))
- rv = createFolderSizeNode(folder, target);
- else if ((kNC_Charset == property))
- rv = createCharsetNode(folder, target);
- else if ((kNC_BiffState == property))
- rv = createBiffStateNodeFromFolder(folder, target);
- else if ((kNC_HasUnreadMessages == property))
- rv = createHasUnreadMessagesNode(folder, PR_FALSE, target);
- else if ((kNC_NewMessages == property))
- rv = createNewMessagesNode(folder, target);
- else if ((kNC_SubfoldersHaveUnreadMessages == property))
- rv = createHasUnreadMessagesNode(folder, PR_TRUE, target);
- else if ((kNC_Child == property))
- rv = createFolderChildNode(folder, target);
- else if ((kNC_NoSelect == property))
+ else if ((kNC_TotalMessages == property))
+ rv = createTotalMessagesNode(folder, target);
+ else if ((kNC_TotalUnreadMessages == property))
+ rv = createUnreadMessagesNode(folder, target);
+ else if ((kNC_FolderSize == property))
+ rv = createFolderSizeNode(folder, target);
+ else if ((kNC_Charset == property))
+ rv = createCharsetNode(folder, target);
+ else if ((kNC_BiffState == property))
+ rv = createBiffStateNodeFromFolder(folder, target);
+ else if ((kNC_HasUnreadMessages == property))
+ rv = createHasUnreadMessagesNode(folder, PR_FALSE, target);
+ else if ((kNC_NewMessages == property))
+ rv = createNewMessagesNode(folder, target);
+ else if ((kNC_SubfoldersHaveUnreadMessages == property))
+ rv = createHasUnreadMessagesNode(folder, PR_TRUE, target);
+ else if ((kNC_Child == property))
+ rv = createFolderChildNode(folder, target);
+ else if ((kNC_NoSelect == property))
rv = createFolderNoSelectNode(folder, target);
- else if ((kNC_ImapShared == property))
+ else if ((kNC_ImapShared == property))
rv = createFolderImapSharedNode(folder, target);
- else if ((kNC_Synchronize == property))
- rv = createFolderSynchronizeNode(folder, target);
- else if ((kNC_SyncDisabled == property))
- rv = createFolderSyncDisabledNode(folder, target);
- else if ((kNC_CanSearchMessages == property))
- rv = createCanSearchMessages(folder, target);
+ else if ((kNC_Synchronize == property))
+ rv = createFolderSynchronizeNode(folder, target);
+ else if ((kNC_SyncDisabled == property))
+ rv = createFolderSyncDisabledNode(folder, target);
+ else if ((kNC_CanSearchMessages == property))
+ rv = createCanSearchMessages(folder, target);
if (NS_FAILED(rv)) return NS_RDF_NO_VALUE;
@@ -1143,6 +1159,29 @@ nsMsgFolderDataSource::createFolderServerTypeNode(nsIMsgFolder* folder,
return NS_OK;
}
+nsresult
+nsMsgFolderDataSource::createServerIsDeferredNode(nsIMsgFolder* folder,
+ nsIRDFNode **target)
+{
+ nsresult rv;
+ PRBool isDeferred = PR_FALSE;
+ nsCOMPtr incomingServer;
+ folder->GetServer(getter_AddRefs(incomingServer));
+ if (incomingServer)
+ {
+ nsCOMPtr pop3Server = do_QueryInterface(incomingServer);
+ if (pop3Server)
+ {
+ nsXPIDLCString deferredToServer;
+ pop3Server->GetDeferredToAccount(getter_Copies(deferredToServer));
+ isDeferred = !deferredToServer.IsEmpty();
+ }
+ }
+ *target = (isDeferred) ? kTrueLiteral : kFalseLiteral;
+ NS_IF_ADDREF(*target);
+ return NS_OK;
+}
+
nsresult
nsMsgFolderDataSource::createFolderRedirectorTypeNode(nsIMsgFolder* folder,
nsIRDFNode **target)
@@ -1197,10 +1236,7 @@ nsMsgFolderDataSource::createFolderCanFileMessagesOnServerNode(nsIMsgFolder* fol
rv = server->GetCanFileMessagesOnServer(&canFileMessagesOnServer);
if (NS_FAILED(rv)) return rv;
- if (canFileMessagesOnServer)
- *target = kTrueLiteral;
- else
- *target = kFalseLiteral;
+ *target = (canFileMessagesOnServer) ? kTrueLiteral : kFalseLiteral;
NS_IF_ADDREF(*target);
return NS_OK;
@@ -1219,7 +1255,7 @@ nsMsgFolderDataSource::createFolderIsServerNode(nsIMsgFolder* folder,
*target = nsnull;
if (isServer)
- *target = kTrueLiteral;
+ *target = kTrueLiteral;
else
*target = kFalseLiteral;
NS_IF_ADDREF(*target);
@@ -1235,12 +1271,7 @@ nsMsgFolderDataSource::createFolderNoSelectNode(nsIMsgFolder* folder,
rv = folder->GetNoSelect(&noSelect);
if (NS_FAILED(rv)) return rv;
- *target = nsnull;
-
- if (noSelect)
- *target = kTrueLiteral;
- else
- *target = kFalseLiteral;
+ *target = (noSelect) ? kTrueLiteral : kFalseLiteral;
NS_IF_ADDREF(*target);
return NS_OK;
}
@@ -1254,12 +1285,7 @@ nsMsgFolderDataSource::createFolderImapSharedNode(nsIMsgFolder* folder,
rv = folder->GetImapShared(&imapShared);
if (NS_FAILED(rv)) return rv;
- *target = nsnull;
-
- if (imapShared)
- *target = kTrueLiteral;
- else
- *target = kFalseLiteral;
+ *target = (imapShared) ? kTrueLiteral : kFalseLiteral;
NS_IF_ADDREF(*target);
return NS_OK;
}
@@ -1276,10 +1302,7 @@ nsMsgFolderDataSource::createFolderSynchronizeNode(nsIMsgFolder* folder,
*target = nsnull;
- if (sync)
- *target = kTrueLiteral;
- else
- *target = kFalseLiteral;
+ *target = (sync) ? kTrueLiteral : kFalseLiteral;
NS_IF_ADDREF(*target);
return NS_OK;
}
@@ -1305,7 +1328,8 @@ nsMsgFolderDataSource::createFolderSyncDisabledNode(nsIMsgFolder* folder,
*target = nsnull;
- if (nsCRT::strcasecmp(serverType, "none")==0 || nsCRT::strcasecmp(serverType, "pop3")==0 || isServer)
+ if (nsCRT::strcasecmp(serverType, "none")==0 || nsCRT::strcasecmp(serverType, "pop3")==0
+ || isServer)
*target = kTrueLiteral;
else
*target = kFalseLiteral;
@@ -1327,10 +1351,7 @@ nsMsgFolderDataSource::createCanSearchMessages(nsIMsgFolder* folder,
rv = server->GetCanSearchMessages(&canSearchMessages);
if (NS_FAILED(rv)) return rv;
- if (canSearchMessages)
- *target = kTrueLiteral;
- else
- *target = kFalseLiteral;
+ *target = (canSearchMessages) ? kTrueLiteral : kFalseLiteral;
NS_IF_ADDREF(*target);
return NS_OK;
@@ -1353,10 +1374,7 @@ nsMsgFolderDataSource::createFolderOpenNode(nsIMsgFolder *folder, nsIRDFNode **t
if (NS_FAILED(rv))
return rv;
- if (closed)
- *target = kFalseLiteral;
- else
- *target = kTrueLiteral;
+ *target = (closed) ? kFalseLiteral : kTrueLiteral;
NS_IF_ADDREF(*target);
return NS_OK;
@@ -1380,12 +1398,7 @@ nsMsgFolderDataSource::createFolderIsSecureNode(nsIMsgFolder* folder,
if (NS_FAILED(rv)) return rv;
}
- *target = nsnull;
-
- if (isSecure)
- *target = kTrueLiteral;
- else
- *target = kFalseLiteral;
+ *target = (isSecure) ? kTrueLiteral : kFalseLiteral;
NS_IF_ADDREF(*target);
return NS_OK;
}
@@ -1400,12 +1413,7 @@ nsMsgFolderDataSource::createFolderCanSubscribeNode(nsIMsgFolder* folder,
rv = folder->GetCanSubscribe(&canSubscribe);
if (NS_FAILED(rv)) return rv;
- *target = nsnull;
-
- if (canSubscribe)
- *target = kTrueLiteral;
- else
- *target = kFalseLiteral;
+ *target = (canSubscribe) ? kTrueLiteral : kFalseLiteral;
NS_IF_ADDREF(*target);
return NS_OK;
}
@@ -1419,12 +1427,7 @@ nsMsgFolderDataSource::createFolderSupportsOfflineNode(nsIMsgFolder* folder,
rv = folder->GetSupportsOffline(&supportsOffline);
NS_ENSURE_SUCCESS(rv,rv);
- *target = nsnull;
-
- if (supportsOffline)
- *target = kTrueLiteral;
- else
- *target = kFalseLiteral;
+ *target = (supportsOffline) ? kTrueLiteral : kFalseLiteral;
NS_IF_ADDREF(*target);
return NS_OK;
}
@@ -1438,12 +1441,7 @@ nsMsgFolderDataSource::createFolderCanFileMessagesNode(nsIMsgFolder* folder,
rv = folder->GetCanFileMessages(&canFileMessages);
if (NS_FAILED(rv)) return rv;
- *target = nsnull;
-
- if (canFileMessages)
- *target = kTrueLiteral;
- else
- *target = kFalseLiteral;
+ *target = (canFileMessages) ? kTrueLiteral : kFalseLiteral;
NS_IF_ADDREF(*target);
return NS_OK;
}
@@ -1457,12 +1455,7 @@ nsMsgFolderDataSource::createFolderCanCreateSubfoldersNode(nsIMsgFolder* folder,
rv = folder->GetCanCreateSubfolders(&canCreateSubfolders);
if (NS_FAILED(rv)) return rv;
- *target = nsnull;
-
- if (canCreateSubfolders)
- *target = kTrueLiteral;
- else
- *target = kFalseLiteral;
+ *target = (canCreateSubfolders) ? kTrueLiteral : kFalseLiteral;
NS_IF_ADDREF(*target);
return NS_OK;
}
@@ -1471,17 +1464,11 @@ nsresult
nsMsgFolderDataSource::createFolderCanRenameNode(nsIMsgFolder* folder,
nsIRDFNode **target)
{
- nsresult rv;
PRBool canRename;
- rv = folder->GetCanRename(&canRename);
+ nsresult rv = folder->GetCanRename(&canRename);
if (NS_FAILED(rv)) return rv;
- *target = nsnull;
-
- if (canRename)
- *target = kTrueLiteral;
- else
- *target = kFalseLiteral;
+ *target = (canRename) ? kTrueLiteral : kFalseLiteral;
NS_IF_ADDREF(*target);
return NS_OK;
}
@@ -1490,17 +1477,11 @@ nsresult
nsMsgFolderDataSource::createFolderCanCompactNode(nsIMsgFolder* folder,
nsIRDFNode **target)
{
- nsresult rv;
PRBool canCompact;
- rv = folder->GetCanCompact(&canCompact);
+ nsresult rv = folder->GetCanCompact(&canCompact);
if (NS_FAILED(rv)) return rv;
- *target = nsnull;
-
- if (canCompact)
- *target = kTrueLiteral;
- else
- *target = kFalseLiteral;
+ *target = (canCompact) ? kTrueLiteral : kFalseLiteral;
NS_IF_ADDREF(*target);
return NS_OK;
}
@@ -1508,26 +1489,24 @@ nsMsgFolderDataSource::createFolderCanCompactNode(nsIMsgFolder* folder,
nsresult
nsMsgFolderDataSource::createTotalMessagesNode(nsIMsgFolder *folder,
- nsIRDFNode **target)
+ nsIRDFNode **target)
{
- nsresult rv;
-
PRBool isServer;
- rv = folder->GetIsServer(&isServer);
+ nsresult rv = folder->GetIsServer(&isServer);
if (NS_FAILED(rv)) return rv;
-
- PRInt32 totalMessages;
- if(isServer)
- totalMessages = kDisplayBlankCount;
- else
- {
- rv = folder->GetTotalMessages(PR_FALSE, &totalMessages);
- if(NS_FAILED(rv)) return rv;
- }
- GetNumMessagesNode(totalMessages, target);
-
- return rv;
+
+ PRInt32 totalMessages;
+ if(isServer)
+ totalMessages = kDisplayBlankCount;
+ else
+ {
+ rv = folder->GetTotalMessages(PR_FALSE, &totalMessages);
+ if(NS_FAILED(rv)) return rv;
+ }
+ GetNumMessagesNode(totalMessages, target);
+
+ return rv;
}
nsresult
@@ -1567,9 +1546,8 @@ nsMsgFolderDataSource::createCharsetNode(nsIMsgFolder *folder, nsIRDFNode **targ
nsresult
nsMsgFolderDataSource::createBiffStateNodeFromFolder(nsIMsgFolder *folder, nsIRDFNode **target)
{
- nsresult rv;
PRUint32 biffState;
- rv = folder->GetBiffState(&biffState);
+ nsresult rv = folder->GetBiffState(&biffState);
if(NS_FAILED(rv)) return rv;
rv = createBiffStateNodeFromFlag(biffState, target);
@@ -1603,33 +1581,28 @@ nsresult
nsMsgFolderDataSource::createUnreadMessagesNode(nsIMsgFolder *folder,
nsIRDFNode **target)
{
- nsresult rv;
-
PRBool isServer;
- rv = folder->GetIsServer(&isServer);
+ nsresult rv = folder->GetIsServer(&isServer);
if (NS_FAILED(rv)) return rv;
-
- PRInt32 totalUnreadMessages;
- if(isServer)
- totalUnreadMessages = kDisplayBlankCount;
- else
- {
- rv = folder->GetNumUnread(PR_FALSE, &totalUnreadMessages);
- if(NS_FAILED(rv)) return rv;
- }
- GetNumMessagesNode(totalUnreadMessages, target);
-
-
- return NS_OK;
+
+ PRInt32 totalUnreadMessages;
+ if(isServer)
+ totalUnreadMessages = kDisplayBlankCount;
+ else
+ {
+ rv = folder->GetNumUnread(PR_FALSE, &totalUnreadMessages);
+ if(NS_FAILED(rv)) return rv;
+ }
+ GetNumMessagesNode(totalUnreadMessages, target);
+
+ return NS_OK;
}
nsresult
nsMsgFolderDataSource::createHasUnreadMessagesNode(nsIMsgFolder *folder, PRBool aIncludeSubfolders, nsIRDFNode **target)
{
- nsresult rv;
-
PRBool isServer;
- rv = folder->GetIsServer(&isServer);
+ nsresult rv = folder->GetIsServer(&isServer);
if (NS_FAILED(rv)) return rv;
*target = kFalseLiteral;
@@ -1650,10 +1623,7 @@ nsMsgFolderDataSource::createHasUnreadMessagesNode(nsIMsgFolder *folder, PRBool
if (numUnreadInFolder > 0)
totalUnreadMessages -= numUnreadInFolder;
}
- if(totalUnreadMessages > 0)
- *target = kTrueLiteral;
- else
- *target = kFalseLiteral;
+ *target = (totalUnreadMessages > 0) ? kTrueLiteral : kFalseLiteral;
}
NS_IF_ADDREF(*target);
@@ -1744,10 +1714,9 @@ nsMsgFolderDataSource::NotifyAncestors(nsIMsgFolder *aFolder, nsIRDFResource *aP
nsresult rv = aFolder->GetIsServer(&isServer);
NS_ENSURE_SUCCESS(rv,rv);
- if (isServer) {
+ if (isServer)
// done, stop
return NS_OK;
- }
nsCOMPtr parentMsgFolder;
rv = aFolder->GetParentMsgFolder(getter_AddRefs(parentMsgFolder));
@@ -1760,10 +1729,8 @@ nsMsgFolderDataSource::NotifyAncestors(nsIMsgFolder *aFolder, nsIRDFResource *aP
// don't need to notify servers either.
if (isServer)
- {
// done, stop
return NS_OK;
- }
nsCOMPtr parentFolderResource = do_QueryInterface(parentMsgFolder,&rv);
NS_ENSURE_SUCCESS(rv,rv);
@@ -1778,28 +1745,25 @@ nsMsgFolderDataSource::NotifyAncestors(nsIMsgFolder *aFolder, nsIRDFResource *aP
nsresult
nsMsgFolderDataSource::createNewMessagesNode(nsIMsgFolder *folder, nsIRDFNode **target)
{
-
- nsresult rv;
-
- PRBool isServer;
- rv = folder->GetIsServer(&isServer);
- if (NS_FAILED(rv)) return rv;
-
- *target = kFalseLiteral;
-
- //PRInt32 totalNewMessages;
- PRBool isNewMessages;
- if(!isServer)
- {
- rv = folder->GetHasNewMessages(&isNewMessages);
- if(NS_FAILED(rv)) return rv;
- if(isNewMessages)
- *target = kTrueLiteral;
- else
- *target = kFalseLiteral;
- }
- NS_IF_ADDREF(*target);
- return NS_OK;
+
+ nsresult rv;
+
+ PRBool isServer;
+ rv = folder->GetIsServer(&isServer);
+ if (NS_FAILED(rv)) return rv;
+
+ *target = kFalseLiteral;
+
+ //PRInt32 totalNewMessages;
+ PRBool isNewMessages;
+ if(!isServer)
+ {
+ rv = folder->GetHasNewMessages(&isNewMessages);
+ if(NS_FAILED(rv)) return rv;
+ *target = (isNewMessages) ? kTrueLiteral : kFalseLiteral;
+ }
+ NS_IF_ADDREF(*target);
+ return NS_OK;
}
/**
@@ -1907,12 +1871,12 @@ nsMsgFolderDataSource::createFolderChildNode(nsIMsgFolder *folder,
return NS_RDF_NO_VALUE;
rv = subFolders->First();
- if (NS_SUCCEEDED(rv)) {
+ if (NS_SUCCEEDED(rv))
+ {
nsCOMPtr firstFolder;
rv = subFolders->CurrentItem(getter_AddRefs(firstFolder));
- if (NS_SUCCEEDED(rv)) {
+ if (NS_SUCCEEDED(rv))
firstFolder->QueryInterface(NS_GET_IID(nsIRDFResource), (void**)target);
- }
}
return NS_FAILED(rv) ? NS_RDF_NO_VALUE : rv;
}
@@ -1921,145 +1885,145 @@ nsMsgFolderDataSource::createFolderChildNode(nsIMsgFolder *folder,
nsresult nsMsgFolderDataSource::DoCopyToFolder(nsIMsgFolder *dstFolder, nsISupportsArray *arguments,
nsIMsgWindow *msgWindow, PRBool isMove)
{
- nsresult rv;
- PRUint32 itemCount;
- rv = arguments->Count(&itemCount);
- if (NS_FAILED(rv)) return rv;
-
- //need source folder and at least one item to copy
- if(itemCount < 2)
- return NS_ERROR_FAILURE;
-
-
- nsCOMPtr srcFolder(do_QueryElementAt(arguments, 0));
- if(!srcFolder)
- return NS_ERROR_FAILURE;
-
- arguments->RemoveElementAt(0);
- itemCount--;
-
- nsCOMPtr messageArray;
- NS_NewISupportsArray(getter_AddRefs(messageArray));
-
- for(PRUint32 i = 0; i < itemCount; i++)
- {
-
- nsCOMPtr supports = getter_AddRefs(arguments->ElementAt(i));
- nsCOMPtr message(do_QueryInterface(supports));
- if (message)
- {
- messageArray->AppendElement(supports);
- }
-
- }
-
- //Call copyservice with dstFolder, srcFolder, messages, isMove, and txnManager
- nsCOMPtr copyService =
- do_GetService(NS_MSGCOPYSERVICE_CONTRACTID, &rv);
- NS_ENSURE_SUCCESS(rv,rv);
-
- return copyService->CopyMessages(srcFolder, messageArray, dstFolder, isMove,
- nsnull, msgWindow, PR_TRUE/* allowUndo */);
+ nsresult rv;
+ PRUint32 itemCount;
+ rv = arguments->Count(&itemCount);
+ if (NS_FAILED(rv)) return rv;
+
+ //need source folder and at least one item to copy
+ if(itemCount < 2)
+ return NS_ERROR_FAILURE;
+
+
+ nsCOMPtr srcFolder(do_QueryElementAt(arguments, 0));
+ if(!srcFolder)
+ return NS_ERROR_FAILURE;
+
+ arguments->RemoveElementAt(0);
+ itemCount--;
+
+ nsCOMPtr messageArray;
+ NS_NewISupportsArray(getter_AddRefs(messageArray));
+
+ for(PRUint32 i = 0; i < itemCount; i++)
+ {
+
+ nsCOMPtr supports = getter_AddRefs(arguments->ElementAt(i));
+ nsCOMPtr message(do_QueryInterface(supports));
+ if (message)
+ {
+ messageArray->AppendElement(supports);
+ }
+
+ }
+
+ //Call copyservice with dstFolder, srcFolder, messages, isMove, and txnManager
+ nsCOMPtr copyService =
+ do_GetService(NS_MSGCOPYSERVICE_CONTRACTID, &rv);
+ NS_ENSURE_SUCCESS(rv,rv);
+
+ return copyService->CopyMessages(srcFolder, messageArray, dstFolder, isMove,
+ nsnull, msgWindow, PR_TRUE/* allowUndo */);
}
nsresult nsMsgFolderDataSource::DoFolderCopyToFolder(nsIMsgFolder *dstFolder, nsISupportsArray *arguments,
- nsIMsgWindow *msgWindow, PRBool isMoveFolder)
+ nsIMsgWindow *msgWindow, PRBool isMoveFolder)
{
- nsresult rv;
- PRUint32 itemCount;
- rv = arguments->Count(&itemCount);
- if (NS_FAILED(rv)) return rv;
-
- //need at least one item to copy
- if(itemCount < 1)
- return NS_ERROR_FAILURE;
-
- if (!isMoveFolder) // copy folder not on the same server
- {
- //Call copyservice with dstFolder, srcFolder, folders and isMoveFolder
- nsCOMPtr copyService = do_GetService(NS_MSGCOPYSERVICE_CONTRACTID, &rv);
- if(NS_SUCCEEDED(rv))
- {
- rv = copyService->CopyFolders(arguments, dstFolder, isMoveFolder,
- nsnull, msgWindow);
-
- }
- }
- else //within the same server therefore no need for copy service
- {
-
- nsCOMPtr msgFolder;
- for (PRUint32 i=0;i< itemCount; i++)
- {
- msgFolder = do_QueryElementAt(arguments, i, &rv);
- if (NS_SUCCEEDED(rv))
- {
- rv = dstFolder->CopyFolder(msgFolder, isMoveFolder , msgWindow, nsnull);
- NS_ASSERTION((NS_SUCCEEDED(rv)),"Copy folder failed.");
- }
- }
- }
-
- return rv;
- //return NS_OK;
+ nsresult rv;
+ PRUint32 itemCount;
+ rv = arguments->Count(&itemCount);
+ if (NS_FAILED(rv)) return rv;
+
+ //need at least one item to copy
+ if(itemCount < 1)
+ return NS_ERROR_FAILURE;
+
+ if (!isMoveFolder) // copy folder not on the same server
+ {
+ //Call copyservice with dstFolder, srcFolder, folders and isMoveFolder
+ nsCOMPtr copyService = do_GetService(NS_MSGCOPYSERVICE_CONTRACTID, &rv);
+ if(NS_SUCCEEDED(rv))
+ {
+ rv = copyService->CopyFolders(arguments, dstFolder, isMoveFolder,
+ nsnull, msgWindow);
+
+ }
+ }
+ else //within the same server therefore no need for copy service
+ {
+
+ nsCOMPtr msgFolder;
+ for (PRUint32 i=0;i< itemCount; i++)
+ {
+ msgFolder = do_QueryElementAt(arguments, i, &rv);
+ if (NS_SUCCEEDED(rv))
+ {
+ rv = dstFolder->CopyFolder(msgFolder, isMoveFolder , msgWindow, nsnull);
+ NS_ASSERTION((NS_SUCCEEDED(rv)),"Copy folder failed.");
+ }
+ }
+ }
+
+ return rv;
+ //return NS_OK;
}
nsresult nsMsgFolderDataSource::DoDeleteFromFolder(
- nsIMsgFolder *folder, nsISupportsArray *arguments,
- nsIMsgWindow *msgWindow, PRBool reallyDelete)
+ nsIMsgFolder *folder, nsISupportsArray *arguments,
+ nsIMsgWindow *msgWindow, PRBool reallyDelete)
{
- nsresult rv = NS_OK;
- PRUint32 itemCount;
+ nsresult rv = NS_OK;
+ PRUint32 itemCount;
rv = arguments->Count(&itemCount);
if (NS_FAILED(rv)) return rv;
-
- nsCOMPtr messageArray, folderArray;
- NS_NewISupportsArray(getter_AddRefs(messageArray));
- NS_NewISupportsArray(getter_AddRefs(folderArray));
-
- //Split up deleted items into different type arrays to be passed to the folder
- //for deletion.
- for(PRUint32 item = 0; item < itemCount; item++)
- {
- nsCOMPtr supports = getter_AddRefs(arguments->ElementAt(item));
- nsCOMPtr deletedMessage(do_QueryInterface(supports));
- nsCOMPtr deletedFolder(do_QueryInterface(supports));
- if (deletedMessage)
- {
- messageArray->AppendElement(supports);
- }
- else if(deletedFolder)
- {
- folderArray->AppendElement(supports);
- }
- }
- PRUint32 cnt;
- rv = messageArray->Count(&cnt);
- if (NS_FAILED(rv)) return rv;
- if (cnt > 0)
- rv = folder->DeleteMessages(messageArray, msgWindow, reallyDelete, PR_FALSE, nsnull, PR_TRUE /*allowUndo*/);
-
- rv = folderArray->Count(&cnt);
- if (NS_FAILED(rv)) return rv;
- if (cnt > 0)
- rv = folder->DeleteSubFolders(folderArray, msgWindow);
-
- return rv;
+
+ nsCOMPtr messageArray, folderArray;
+ NS_NewISupportsArray(getter_AddRefs(messageArray));
+ NS_NewISupportsArray(getter_AddRefs(folderArray));
+
+ //Split up deleted items into different type arrays to be passed to the folder
+ //for deletion.
+ for(PRUint32 item = 0; item < itemCount; item++)
+ {
+ nsCOMPtr supports = getter_AddRefs(arguments->ElementAt(item));
+ nsCOMPtr deletedMessage(do_QueryInterface(supports));
+ nsCOMPtr deletedFolder(do_QueryInterface(supports));
+ if (deletedMessage)
+ {
+ messageArray->AppendElement(supports);
+ }
+ else if(deletedFolder)
+ {
+ folderArray->AppendElement(supports);
+ }
+ }
+ PRUint32 cnt;
+ rv = messageArray->Count(&cnt);
+ if (NS_FAILED(rv)) return rv;
+ if (cnt > 0)
+ rv = folder->DeleteMessages(messageArray, msgWindow, reallyDelete, PR_FALSE, nsnull, PR_TRUE /*allowUndo*/);
+
+ rv = folderArray->Count(&cnt);
+ if (NS_FAILED(rv)) return rv;
+ if (cnt > 0)
+ rv = folder->DeleteSubFolders(folderArray, msgWindow);
+
+ return rv;
}
nsresult nsMsgFolderDataSource::DoNewFolder(nsIMsgFolder *folder, nsISupportsArray *arguments)
{
- nsresult rv = NS_OK;
- nsCOMPtr literal = do_QueryElementAt(arguments, 0, &rv);
- if(NS_SUCCEEDED(rv))
- {
- nsXPIDLString name;
- literal->GetValue(getter_Copies(name));
-
- rv = folder->CreateSubfolder(name,mWindow);
-
- }
- return rv;
+ nsresult rv = NS_OK;
+ nsCOMPtr literal = do_QueryElementAt(arguments, 0, &rv);
+ if(NS_SUCCEEDED(rv))
+ {
+ nsXPIDLString name;
+ literal->GetValue(getter_Copies(name));
+
+ rv = folder->CreateSubfolder(name,mWindow);
+
+ }
+ return rv;
}
nsresult nsMsgFolderDataSource::DoFolderAssert(nsIMsgFolder *folder, nsIRDFResource *property, nsIRDFNode *target)
@@ -2074,18 +2038,13 @@ nsresult nsMsgFolderDataSource::DoFolderAssert(nsIMsgFolder *folder, nsIRDFResou
const PRUnichar* value;
rv = literal->GetValueConst(&value);
if(NS_SUCCEEDED(rv))
- {
rv = folder->SetCharset(NS_LossyConvertUCS2toASCII(value).get());
- }
}
else
rv = NS_ERROR_FAILURE;
}
- else if ((kNC_Open == property))
- {
- if (target == kTrueLiteral)
+ else if (kNC_Open == property && target == kTrueLiteral)
rv = folder->ClearFlag(MSG_FOLDER_FLAG_ELIDED);
- }
return rv;
}
@@ -2094,11 +2053,8 @@ nsresult nsMsgFolderDataSource::DoFolderUnassert(nsIMsgFolder *folder, nsIRDFRes
{
nsresult rv = NS_ERROR_FAILURE;
- if((kNC_Open == property))
- {
- if (target == kTrueLiteral)
+ if((kNC_Open == property) && target == kTrueLiteral)
rv = folder->SetFlag(MSG_FOLDER_FLAG_ELIDED);
- }
return rv;
}
@@ -2109,67 +2065,68 @@ nsresult nsMsgFolderDataSource::DoFolderHasAssertion(nsIMsgFolder *folder,
PRBool tv,
PRBool *hasAssertion)
{
- nsresult rv = NS_OK;
- if(!hasAssertion)
- return NS_ERROR_NULL_POINTER;
-
- //We're not keeping track of negative assertions on folders.
- if(!tv)
- {
- *hasAssertion = PR_FALSE;
- return NS_OK;
- }
+ nsresult rv = NS_OK;
+ if(!hasAssertion)
+ return NS_ERROR_NULL_POINTER;
+
+ //We're not keeping track of negative assertions on folders.
+ if(!tv)
+ {
+ *hasAssertion = PR_FALSE;
+ return NS_OK;
+ }
+
+ if((kNC_Child == property))
+ {
+ nsCOMPtr childFolder(do_QueryInterface(target, &rv));
+ if(NS_SUCCEEDED(rv))
+ {
+ nsCOMPtr childsParent;
+ rv = childFolder->GetParent(getter_AddRefs(childsParent));
+ *hasAssertion = (NS_SUCCEEDED(rv) && childsParent && folder
+ && (childsParent.get() == folder));
+ }
+ }
+ else if ((kNC_Name == property) ||
+ (kNC_Open == property) ||
+ (kNC_FolderTreeName == property) ||
+ (kNC_FolderTreeSimpleName == property) ||
+ (kNC_SpecialFolder == property) ||
+ (kNC_ServerType == property) ||
+ (kNC_IsDeferred == property) ||
+ (kNC_RedirectorType == property) ||
+ (kNC_CanCreateFoldersOnServer == property) ||
+ (kNC_CanFileMessagesOnServer == property) ||
+ (kNC_IsServer == property) ||
+ (kNC_IsSecure == property) ||
+ (kNC_CanSubscribe == property) ||
+ (kNC_SupportsOffline == property) ||
+ (kNC_CanFileMessages == property) ||
+ (kNC_CanCreateSubfolders == property) ||
+ (kNC_CanRename == property) ||
+ (kNC_CanCompact == property) ||
+ (kNC_TotalMessages == property) ||
+ (kNC_TotalUnreadMessages == property) ||
+ (kNC_FolderSize == property) ||
+ (kNC_Charset == property) ||
+ (kNC_BiffState == property) ||
+ (kNC_HasUnreadMessages == property) ||
+ (kNC_NoSelect == property) ||
+ (kNC_Synchronize == property) ||
+ (kNC_SyncDisabled == property) ||
+ (kNC_CanSearchMessages == property))
+ {
+ nsCOMPtr folderResource(do_QueryInterface(folder, &rv));
+
+ if(NS_FAILED(rv))
+ return rv;
+
+ rv = GetTargetHasAssertion(this, folderResource, property, tv, target, hasAssertion);
+ }
+ else
+ *hasAssertion = PR_FALSE;
+
+ return rv;
+
- if((kNC_Child == property))
- {
- nsCOMPtr childFolder(do_QueryInterface(target, &rv));
- if(NS_SUCCEEDED(rv))
- {
- nsCOMPtr childsParent;
- rv = childFolder->GetParent(getter_AddRefs(childsParent));
- *hasAssertion = (NS_SUCCEEDED(rv) && childsParent && folder
- && (childsParent.get() == folder));
- }
- }
- else if ((kNC_Name == property) ||
- (kNC_Open == property) ||
- (kNC_FolderTreeName == property) ||
- (kNC_FolderTreeSimpleName == property) ||
- (kNC_SpecialFolder == property) ||
- (kNC_ServerType == property) ||
- (kNC_RedirectorType == property) ||
- (kNC_CanCreateFoldersOnServer == property) ||
- (kNC_CanFileMessagesOnServer == property) ||
- (kNC_IsServer == property) ||
- (kNC_IsSecure == property) ||
- (kNC_CanSubscribe == property) ||
- (kNC_SupportsOffline == property) ||
- (kNC_CanFileMessages == property) ||
- (kNC_CanCreateSubfolders == property) ||
- (kNC_CanRename == property) ||
- (kNC_CanCompact == property) ||
- (kNC_TotalMessages == property) ||
- (kNC_TotalUnreadMessages == property) ||
- (kNC_FolderSize == property) ||
- (kNC_Charset == property) ||
- (kNC_BiffState == property) ||
- (kNC_HasUnreadMessages == property) ||
- (kNC_NoSelect == property) ||
- (kNC_Synchronize == property) ||
- (kNC_SyncDisabled == property) ||
- (kNC_CanSearchMessages == property))
- {
- nsCOMPtr folderResource(do_QueryInterface(folder, &rv));
-
- if(NS_FAILED(rv))
- return rv;
-
- rv = GetTargetHasAssertion(this, folderResource, property, tv, target, hasAssertion);
- }
- else
- *hasAssertion = PR_FALSE;
-
- return rv;
-
-
}
diff --git a/mozilla/mailnews/base/src/nsMsgFolderDataSource.h b/mozilla/mailnews/base/src/nsMsgFolderDataSource.h
index 6642d55e236..4dd6fad19b0 100644
--- a/mozilla/mailnews/base/src/nsMsgFolderDataSource.h
+++ b/mozilla/mailnews/base/src/nsMsgFolderDataSource.h
@@ -131,6 +131,8 @@ protected:
nsresult createFolderSpecialNode(nsIMsgFolder *folder, nsIRDFNode **target);
nsresult createFolderServerTypeNode(nsIMsgFolder *folder,
nsIRDFNode **target);
+ nsresult createServerIsDeferredNode(nsIMsgFolder* folder,
+ nsIRDFNode **target);
nsresult createFolderRedirectorTypeNode(nsIMsgFolder *folder,
nsIRDFNode **target);
nsresult createFolderCanCreateFoldersOnServerNode(nsIMsgFolder *folder,
@@ -221,6 +223,7 @@ protected:
static nsIRDFResource* kNC_MSGFolderRoot;
static nsIRDFResource* kNC_SpecialFolder;
static nsIRDFResource* kNC_ServerType;
+ static nsIRDFResource* kNC_IsDeferred;
static nsIRDFResource* kNC_RedirectorType;
static nsIRDFResource* kNC_CanCreateFoldersOnServer;
static nsIRDFResource* kNC_CanFileMessagesOnServer;
@@ -245,6 +248,7 @@ protected:
static nsIRDFResource* kNC_Synchronize;
static nsIRDFResource* kNC_SyncDisabled;
static nsIRDFResource* kNC_CanSearchMessages;
+
// commands
static nsIRDFResource* kNC_Delete;
diff --git a/mozilla/mailnews/base/src/nsMsgRDFUtils.h b/mozilla/mailnews/base/src/nsMsgRDFUtils.h
index 4f5d37d4d74..ebed33889e9 100644
--- a/mozilla/mailnews/base/src/nsMsgRDFUtils.h
+++ b/mozilla/mailnews/base/src/nsMsgRDFUtils.h
@@ -87,6 +87,7 @@ typedef struct _nsMsgRDFNotification {
#define NC_RDF_SYNCDISABLED NC_NAMESPACE_URI "SyncDisabled"
#define NC_RDF_KEY NC_NAMESPACE_URI "Key"
#define NC_RDF_CANSEARCHMESSAGES NC_NAMESPACE_URI "CanSearchMessages"
+#define NC_RDF_ISDEFERRED NC_NAMESPACE_URI "IsDeferred"
//Sort Properties
#define NC_RDF_SUBJECT_COLLATION_SORT NC_NAMESPACE_URI "Subject?collation=true"