зеркало из https://github.com/mozilla/pjs.git
67997 --> make saving local mail attachments work directly from the message pane. To do this,
nsMailboxService now support nsIMsgMessageFetchService. sr=sspitzer
This commit is contained in:
Родитель
8185057a77
Коммит
1822070e69
|
@ -321,14 +321,15 @@ nsresult nsMailboxProtocol::LoadUrl(nsIURI * aURL, nsISupports * aConsumer)
|
|||
// when fetching a part, we need to insert a converter into the listener chain order to
|
||||
// force just the part out of the message.
|
||||
nsCOMPtr<nsIStreamConverterService> converter = do_GetService(kIStreamConverterServiceCID);
|
||||
nsCOMPtr<nsIStreamListener> consumer = m_channelListener;
|
||||
nsCOMPtr<nsIStreamListener> consumer = do_QueryInterface(consumerToUse);
|
||||
nsIChannel * channel;
|
||||
QueryInterface(NS_GET_IID(nsIChannel), (void **) &channel);
|
||||
if (converter && channel)
|
||||
{
|
||||
nsCOMPtr<nsIStreamListener> newConsumer;
|
||||
converter->AsyncConvertData(NS_LITERAL_STRING("message/rfc822").get(), NS_LITERAL_STRING("*/*").get(),
|
||||
consumer, channel, getter_AddRefs(m_channelListener));
|
||||
consumer, channel, getter_AddRefs(newConsumer));
|
||||
consumerToUse = do_QueryInterface(newConsumer);
|
||||
}
|
||||
|
||||
m_nextState = MAILBOX_READ_MESSAGE;
|
||||
|
@ -339,7 +340,7 @@ nsresult nsMailboxProtocol::LoadUrl(nsIURI * aURL, nsISupports * aConsumer)
|
|||
}
|
||||
}
|
||||
|
||||
rv = nsMsgProtocol::LoadUrl(aURL, aConsumer);
|
||||
rv = nsMsgProtocol::LoadUrl(aURL, consumerToUse);
|
||||
|
||||
} // if we received an MAILBOX url...
|
||||
} // if we received a url!
|
||||
|
|
|
@ -59,7 +59,7 @@ nsMailboxService::nsMailboxService()
|
|||
nsMailboxService::~nsMailboxService()
|
||||
{}
|
||||
|
||||
NS_IMPL_ISUPPORTS3(nsMailboxService, nsIMailboxService, nsIMsgMessageService, nsIProtocolHandler);
|
||||
NS_IMPL_ISUPPORTS4(nsMailboxService, nsIMailboxService, nsIMsgMessageService, nsIProtocolHandler, nsIMsgMessageFetchPartService);
|
||||
|
||||
nsresult nsMailboxService::ParseMailbox(nsIMsgWindow *aMsgWindow, nsFileSpec& aMailboxPath, nsIStreamListener *aMailboxParser,
|
||||
nsIUrlListener * aUrlListener, nsIURI ** aURL)
|
||||
|
@ -175,8 +175,19 @@ nsresult nsMailboxService::FetchMessage(const char* aMessageURI,
|
|||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMailboxService::FetchMimePart(nsIURI *aURI, const char *aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, nsIURI **aURL)
|
||||
{
|
||||
nsCOMPtr<nsIMsgMailNewsUrl> msgUrl (do_QueryInterface(aURI));
|
||||
msgUrl->SetMsgWindow(aMsgWindow);
|
||||
|
||||
nsresult nsMailboxService::DisplayMessage(const char* aMessageURI,
|
||||
// set up the url listener
|
||||
if (aUrlListener)
|
||||
msgUrl->RegisterListener(aUrlListener);
|
||||
|
||||
return RunMailboxUrl(msgUrl, aDisplayConsumer);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMailboxService::DisplayMessage(const char* aMessageURI,
|
||||
nsISupports * aDisplayConsumer,
|
||||
nsIMsgWindow * aMsgWindow,
|
||||
nsIUrlListener * aUrlListener,
|
||||
|
@ -326,9 +337,8 @@ nsresult nsMailboxService::PrepareMessageUrl(const char * aSrcMsgMailboxURI, nsI
|
|||
nsCOMPtr <nsIMsgMailNewsUrl> url = do_QueryInterface(*aMailboxUrl);
|
||||
url->SetSpec(urlSpec);
|
||||
PR_FREEIF(urlSpec);
|
||||
|
||||
// set up the mailbox action
|
||||
(*aMailboxUrl)->SetMailboxAction(aMailboxAction);
|
||||
|
||||
(*aMailboxUrl)->SetMailboxAction(aMailboxAction);
|
||||
|
||||
// set up the url listener
|
||||
if (aUrlListener)
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#include "nsIProtocolHandler.h"
|
||||
#include "nsIRDFService.h"
|
||||
|
||||
class nsMailboxService : public nsIMailboxService, public nsIMsgMessageService, public nsIProtocolHandler
|
||||
class nsMailboxService : public nsIMailboxService, public nsIMsgMessageService, public nsIMsgMessageFetchPartService, public nsIProtocolHandler
|
||||
{
|
||||
public:
|
||||
|
||||
|
@ -45,9 +45,10 @@ public:
|
|||
virtual ~nsMailboxService();
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIMAILBOXSERVICE
|
||||
NS_DECL_NSIMSGMESSAGESERVICE
|
||||
NS_DECL_NSIPROTOCOLHANDLER
|
||||
NS_DECL_NSIMAILBOXSERVICE
|
||||
NS_DECL_NSIMSGMESSAGESERVICE
|
||||
NS_DECL_NSIMSGMESSAGEFETCHPARTSERVICE
|
||||
NS_DECL_NSIPROTOCOLHANDLER
|
||||
|
||||
protected:
|
||||
PRBool mPrintingOperation;
|
||||
|
|
Загрузка…
Ссылка в новой задаче