mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-24 03:19:06 +00:00
don't need to do all this extra work, it's been done in the base class
This commit is contained in:
parent
5faeb36dc6
commit
76d3069e09
@ -45,15 +45,6 @@ nsImapMessage::~nsImapMessage(void)
|
||||
|
||||
NS_IMPL_ISUPPORTS_INHERITED(nsImapMessage, nsMessage, nsIDBMessage)
|
||||
|
||||
NS_IMETHODIMP nsImapMessage::GetMsgFolder(nsIMsgFolder **folder)
|
||||
{
|
||||
nsresult rv;
|
||||
rv = nsMessage::GetMsgFolder(folder);
|
||||
if (NS_FAILED(rv))
|
||||
rv = GetFolderFromURI(folder);
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsImapMessage::GetMessageType(PRUint32 *aMessageType)
|
||||
{
|
||||
if(!aMessageType)
|
||||
@ -62,41 +53,3 @@ NS_IMETHODIMP nsImapMessage::GetMessageType(PRUint32 *aMessageType)
|
||||
*aMessageType = nsIMessage::MailMessage;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult nsImapMessage::GetFolderFromURI(nsIMsgFolder **folder)
|
||||
{
|
||||
nsresult rv;
|
||||
nsXPIDLCString uri;
|
||||
nsIRDFResource *resource;
|
||||
if(NS_SUCCEEDED( rv = QueryInterface(NS_GET_IID(nsIRDFResource), (void**)&resource)))
|
||||
{
|
||||
resource->GetValue( getter_Copies(uri) );
|
||||
nsCAutoString messageFolderURIStr;
|
||||
nsMsgKey key;
|
||||
nsParseImapMessageURI(uri, messageFolderURIStr, &key, nsnull);
|
||||
nsCAutoString folderOnly, folderURIStr;
|
||||
|
||||
if (messageFolderURIStr.Find(kImapRootURI) != ((PRInt32)-1))
|
||||
{
|
||||
messageFolderURIStr.Right(folderOnly, messageFolderURIStr.Length() -nsCRT::strlen(kImapRootURI));
|
||||
folderURIStr = kImapRootURI;
|
||||
folderURIStr+= folderOnly;
|
||||
nsIRDFResource *folderResource;
|
||||
const char *folderURI = folderURIStr.GetBuffer();
|
||||
|
||||
NS_WITH_SERVICE(nsIRDFService, rdfService, kRDFServiceCID, &rv);
|
||||
if (NS_SUCCEEDED(rv)) // always check this before proceeding
|
||||
{
|
||||
rv = rdfService->GetResource(folderURI, &folderResource);
|
||||
if(NS_SUCCEEDED(rv))
|
||||
{
|
||||
rv = NS_SUCCEEDED(folderResource->QueryInterface(NS_GET_IID(nsIMsgFolder), (void**)folder));
|
||||
NS_RELEASE(folderResource);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
NS_RELEASE(resource);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
@ -38,10 +38,9 @@ public:
|
||||
virtual ~nsImapMessage(void);
|
||||
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
NS_IMETHOD GetMsgFolder(nsIMsgFolder **folder);
|
||||
NS_IMETHOD GetMessageType(PRUint32 *aMessageType);
|
||||
|
||||
protected:
|
||||
nsresult GetFolderFromURI(nsIMsgFolder **folder);
|
||||
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user