Fix for bug 52819. Use nsEditor::GetRootElement for retreiving the body node. sr=mscott

This commit is contained in:
ducarroz%netscape.com 2000-09-18 22:16:10 +00:00
parent 8dc0e5739a
commit 98ab9642f9
4 changed files with 30 additions and 7 deletions

View File

@ -164,9 +164,9 @@ interface nsIMsgCompose : nsISupports {
wstring GetNoHtmlNewsgroups(in wstring newsgroups);
/* bodyConvertible: The level of "convertibility" to plaintext
* @return a value from nsIMsgCompConvertible
* @return a value from nsIMsgCompConvertible.
*/
long bodyConvertible(in nsIDOMNode node);
long bodyConvertible();
/* SetSignature: will replace the curr.
*/

View File

@ -1522,8 +1522,7 @@ function DetermineConvertibility()
return msgCompConvertible.Plain;
try {
return msgCompose.bodyConvertible(
window.editorShell.contentWindow.document.childNodes[1]);
return msgCompose.bodyConvertible();
} catch(ex) {}
return msgCompConvertible.No;
}

View File

@ -2906,13 +2906,13 @@ nsresult nsMsgCompose::TagConvertible(nsIDOMNode *node, PRInt32 *_retval)
return rv;
}
nsresult nsMsgCompose::BodyConvertible(nsIDOMNode *node, PRInt32 *_retval)
nsresult nsMsgCompose::_BodyConvertible(nsIDOMNode *node, PRInt32 *_retval)
{
NS_ENSURE_TRUE(node && _retval, NS_ERROR_NULL_POINTER);
nsresult rv;
PRInt32 result;
// Check this node
rv = TagConvertible(node, &result);
if (NS_FAILED(rv))
@ -2935,7 +2935,7 @@ nsresult nsMsgCompose::BodyConvertible(nsIDOMNode *node, PRInt32 *_retval)
&& pItem)
{
PRInt32 curresult;
rv = BodyConvertible(pItem, &curresult);
rv = _BodyConvertible(pItem, &curresult);
if (NS_SUCCEEDED(rv) && curresult > result)
result = curresult;
}
@ -2947,6 +2947,29 @@ nsresult nsMsgCompose::BodyConvertible(nsIDOMNode *node, PRInt32 *_retval)
return rv;
}
nsresult nsMsgCompose::BodyConvertible(PRInt32 *_retval)
{
NS_ENSURE_TRUE(_retval, NS_ERROR_NULL_POINTER);
nsresult rv;
nsCOMPtr<nsIEditor> editor;
rv = m_editor->GetEditor(getter_AddRefs(editor));
if (NS_FAILED(rv) || nsnull == editor)
return rv;
nsCOMPtr<nsIDOMElement> rootElement;
rv = editor->GetRootElement(getter_AddRefs(rootElement));
if (NS_FAILED(rv) || nsnull == rootElement)
return rv;
nsCOMPtr<nsIDOMNode> node = do_QueryInterface(rootElement);
if (nsnull == node)
return NS_ERROR_FAILURE;
return _BodyConvertible(node, _retval);
}
nsresult nsMsgCompose::SetSignature(nsIMsgIdentity *identity)
{
nsresult rv;

View File

@ -96,6 +96,7 @@ class nsMsgCompose : public nsIMsgCompose
nsresult BuildMailListArray(nsIAddrDatabase* database, nsIAbDirectory* parentDir, nsISupportsArray* array);
nsresult GetMailListAddresses(nsString& name, nsISupportsArray* mailListArray, nsISupportsArray** addresses);
nsresult TagConvertible(nsIDOMNode *node, PRInt32 *_retval);
nsresult _BodyConvertible(nsIDOMNode *node, PRInt32 *_retval);
// Helper function. Parameters are not checked.
PRBool mConvertStructs; // for TagConvertible