Put "<name> wrote:" at the beginning of a reply instance of "--- Original Message ---". Last part of bug 12080

This commit is contained in:
ducarroz%netscape.com 1999-09-03 22:13:36 +00:00
Родитель 6753dd6636
Коммит a014e76f49
3 изменённых файлов: 38 добавлений и 14 удалений

Просмотреть файл

@ -38,6 +38,7 @@
#include "nsMsgComposeStringBundle.h"
#include "nsSpecialSystemDirectory.h"
#include "nsMsgSend.h"
#include "nsMsgCreate.h"
// XXX temporary so we can use the current identity hack -alecf
#include "nsIMsgMailSession.h"
@ -707,11 +708,40 @@ QuotingOutputStreamListener::~QuotingOutputStreamListener()
NS_RELEASE(mComposeObj);
}
QuotingOutputStreamListener::QuotingOutputStreamListener(void)
QuotingOutputStreamListener::QuotingOutputStreamListener(const PRUnichar * originalMsgURI, PRBool quoteHeaders)
{
mComposeObj = nsnull;
// mMsgBody = "<br><BLOCKQUOTE TYPE=CITE><html><br>--- Original Message ---<br><br>";
mMsgBody = "<br><br>--- Original Message ---<br><BLOCKQUOTE TYPE=CITE><html><br>";
mQuoteHeaders = quoteHeaders;
nsCOMPtr<nsIMessage> originalMsg = getter_AddRefs(GetIMessageFromURI(originalMsgURI));
if (originalMsg && !quoteHeaders)
{
nsresult rv;
nsString author;
rv = originalMsg->GetMime2DecodedAuthor(&author);
if (NS_SUCCEEDED(rv))
{
char * authorName = nsnull;
nsCOMPtr<nsIMsgHeaderParser> parser;
nsComponentManager::CreateInstance(kHeaderParserCID,
nsnull,
nsCOMTypeInfo<nsIMsgHeaderParser>::GetIID(),
getter_AddRefs(parser));
if (parser)
if (NS_SUCCEEDED(parser->ExtractHeaderAddressName(nsnull, nsAutoCString(author), &authorName)))
{
mMsgBody = "<br><br>";
mMsgBody += authorName;
mMsgBody += " wrote:<br><BLOCKQUOTE TYPE=CITE><html>";
}
if (authorName)
PL_strfree(authorName);
}
}
if (mMsgBody.IsEmpty())
mMsgBody = "<br><br>--- Original Message ---<br><BLOCKQUOTE TYPE=CITE><html>";
NS_INIT_REFCNT();
}
@ -858,13 +888,6 @@ QuotingOutputStreamListener::SetComposeObj(nsMsgCompose *obj)
return NS_OK;
}
nsresult
QuotingOutputStreamListener::SetQuoteHeaders(PRBool quoteHeaders)
{
mQuoteHeaders = quoteHeaders;
return NS_OK;
}
NS_IMPL_ISUPPORTS(QuotingOutputStreamListener, nsCOMTypeInfo<nsIStreamListener>::GetIID());
////////////////////////////////////////////////////////////////////////////////////
// END OF QUOTING LISTENER
@ -899,7 +922,7 @@ nsMsgCompose::QuoteOriginalMessage(const PRUnichar *originalMsgURI, PRInt32 what
return NS_ERROR_FAILURE;
// Create the consumer output stream.. this will receive all the HTML from libmime
mQuoteStreamListener = new QuotingOutputStreamListener();
mQuoteStreamListener = new QuotingOutputStreamListener(originalMsgURI, what != 1);
if (!mQuoteStreamListener)
{
@ -910,7 +933,6 @@ nsMsgCompose::QuoteOriginalMessage(const PRUnichar *originalMsgURI, PRInt32 what
NS_ADDREF(this);
mQuoteStreamListener->SetComposeObj(this);
mQuoteStreamListener->SetQuoteHeaders(what != 1);
return mQuote->QuoteMessage(originalMsgURI, what != 1, mQuoteStreamListener);
}

Просмотреть файл

@ -146,7 +146,7 @@ class nsMsgCompose : public nsIMsgCompose
class QuotingOutputStreamListener : public nsIStreamListener
{
public:
QuotingOutputStreamListener(void);
QuotingOutputStreamListener(const PRUnichar *originalMsgURI, PRBool quoteHeaders);
virtual ~QuotingOutputStreamListener(void);
// nsISupports interface
@ -162,7 +162,6 @@ public:
NS_IMETHOD OnStopRequest(nsIChannel * aChannel, nsISupports *ctxt, nsresult status, const PRUnichar *errorMsg);
NS_IMETHOD SetComposeObj(nsMsgCompose *obj);
NS_IMETHOD SetQuoteHeaders(PRBool quoteHeaders);
NS_IMETHOD ConvertToPlainText();
private:

Просмотреть файл

@ -55,4 +55,7 @@ public:
// Will be used by factory to generate a nsMsgQuote class...
nsresult NS_NewMsgDraft(const nsIID &aIID, void ** aInstancePtrResult);
nsIMessage * GetIMessageFromURI(const PRUnichar *msgURI);
#endif /* _nsMsgCreate_H_ */