diff --git a/mailnews/base/src/nsMsgAccountManagerDS.cpp b/mailnews/base/src/nsMsgAccountManagerDS.cpp index 89ecece10de..89ff3017ca2 100644 --- a/mailnews/base/src/nsMsgAccountManagerDS.cpp +++ b/mailnews/base/src/nsMsgAccountManagerDS.cpp @@ -640,6 +640,24 @@ nsMsgAccountManagerDataSource::getAccountRootArcs(nsISupportsArray **aResult) return NS_OK; } +NS_IMETHODIMP +nsMsgAccountManagerDataSource::HasArcOut(nsIRDFResource *source, nsIRDFResource *aArc, PRBool *result) +{ + nsresult rv = NS_OK; + if (aArc == kNC_Settings) { + // based on createSettingsResources() + // we only have settings for servers with identities + nsCOMPtr server; + rv = getServerForFolderNode(source, getter_AddRefs(server)); + if (server) { + return serverHasIdentities(server, result); + } + } + + *result = PR_FALSE; + return NS_OK; +} + /* nsISimpleEnumerator ArcLabelsOut (in nsIRDFResource aSource); */ NS_IMETHODIMP nsMsgAccountManagerDataSource::ArcLabelsOut(nsIRDFResource *source, diff --git a/mailnews/base/src/nsMsgAccountManagerDS.h b/mailnews/base/src/nsMsgAccountManagerDS.h index 237203b8ffb..d7863fa1269 100644 --- a/mailnews/base/src/nsMsgAccountManagerDS.h +++ b/mailnews/base/src/nsMsgAccountManagerDS.h @@ -76,6 +76,7 @@ public: NS_IMETHOD HasAssertion(nsIRDFResource *aSource, nsIRDFResource *aProperty, nsIRDFNode *aTarget, PRBool aTruthValue, PRBool *_retval); + NS_IMETHOD HasArcOut(nsIRDFResource *source, nsIRDFResource *aArc, PRBool *result); protected: