diff --git a/mailnews/base/resources/content/mailWidgets.xml b/mailnews/base/resources/content/mailWidgets.xml index 407c84245e9..53d7ef24a26 100644 --- a/mailnews/base/resources/content/mailWidgets.xml +++ b/mailnews/base/resources/content/mailWidgets.xml @@ -2003,6 +2003,7 @@ // now get the database var msgDatabase = msgFolder.getMsgDatabase(msgWindow); + msgFolder.setMsgDatabase(null); var msgKeys = {}; var numMsgKeys = {}; msgDatabase.getNewList(numMsgKeys, msgKeys); @@ -2016,12 +2017,14 @@ try { msgFolder.fetchMsgPreviewText(msgKeys.value, numMsgKeys.value, false, null, asyncResults); + msgFolder.setMsgDatabase(null); } catch (ex) { // fetchMsgPreviewText throws an error when we call it on a news folder, we should just not show // the tooltip if this method returns an error. dump('fetchMsgPreviewText threw an error or failed to set any preview text data\n'); + msgFolder.setMsgDatabase(null); return false; } @@ -2035,7 +2038,7 @@ msgPopup, msgDatabase.GetMsgHdrForKey(msgKeys.value[index++])); document.getAnonymousNodes(this)[0].appendChild(msgPopup); - } + } return true; ]]> diff --git a/mailnews/base/util/nsMsgDBFolder.cpp b/mailnews/base/util/nsMsgDBFolder.cpp index a94f4da3204..141b19667b3 100644 --- a/mailnews/base/util/nsMsgDBFolder.cpp +++ b/mailnews/base/util/nsMsgDBFolder.cpp @@ -299,27 +299,7 @@ NS_IMETHODIMP nsMsgDBFolder::EndFolderLoading(void) //GGGG check for new mail here and call SetNewMessages...?? -- ONE OF THE 2 PLACES if(mDatabase) - { - nsresult rv; - PRBool hasNewMessages; - - rv = mDatabase->HasNew(&hasNewMessages); - if (!hasNewMessages) - { - for (PRUint32 keyIndex = 0; keyIndex < m_newMsgs.GetSize(); keyIndex++) - { - PRBool isRead = PR_FALSE; - mDatabase->IsRead(m_newMsgs[keyIndex], &isRead); - if (!isRead) - { - mDatabase->AddToNewList(m_newMsgs[keyIndex]); - hasNewMessages = PR_TRUE; - } - } - m_newMsgs.RemoveAll(); - } - SetHasNewMessages(hasNewMessages); - } + m_newMsgs.RemoveAll(); return NS_OK; } @@ -5111,7 +5091,8 @@ nsresult nsMsgDBFolder::GetMsgPreviewTextFromStream(nsIMsgDBHdr *msgHdr, nsIInpu // might want to use a state var instead of bools. PRBool inMsgBody = PR_FALSE, msgBodyIsHtml = PR_FALSE, lookingForBoundary = PR_FALSE; PRBool haveBoundary = PR_FALSE; - while (len > 0) + PRBool more = PR_TRUE; + while (len > 0 && more) { // might be on same line as content-type, so look before // we read the next line. @@ -5132,7 +5113,6 @@ nsresult nsMsgDBFolder::GetMsgPreviewTextFromStream(nsIMsgDBHdr *msgHdr, nsIInpu } } } - PRBool more; rv = NS_ReadLine(stream, lineBuffer, curLine, &more); if (NS_SUCCEEDED(rv)) { @@ -5162,17 +5142,22 @@ nsresult nsMsgDBFolder::GetMsgPreviewTextFromStream(nsIMsgDBHdr *msgHdr, nsIInpu inMsgBody = PR_TRUE; continue; } - if (StringBeginsWith(curLine, NS_LITERAL_CSTRING("Content-Type:"))) + if (StringBeginsWith(curLine, NS_LITERAL_CSTRING("Content-Type:"), + nsCaseInsensitiveCStringComparator())) { - if (FindInReadable(NS_LITERAL_CSTRING("text/html"), curLine)) + if (FindInReadable(NS_LITERAL_CSTRING("text/html"), curLine, + nsCaseInsensitiveCStringComparator())) { msgBodyIsHtml = PR_TRUE; // bodyFollowsHeaders = PR_TRUE; } - else if (FindInReadable(NS_LITERAL_CSTRING("text/plain"), curLine)) + else if (FindInReadable(NS_LITERAL_CSTRING("text/plain"), curLine, + nsCaseInsensitiveCStringComparator())) /* bodyFollowsHeaders = PR_TRUE */; - else if (FindInReadable(NS_LITERAL_CSTRING("multipart/mixed"), curLine) - || FindInReadable(NS_LITERAL_CSTRING("multipart/alternative"), curLine)) + else if (FindInReadable(NS_LITERAL_CSTRING("multipart/mixed"), curLine, + nsCaseInsensitiveCStringComparator()) + || FindInReadable(NS_LITERAL_CSTRING("multipart/alternative"), curLine, + nsCaseInsensitiveCStringComparator())) { lookingForBoundary = PR_TRUE; } diff --git a/mailnews/local/src/nsLocalMailFolder.cpp b/mailnews/local/src/nsLocalMailFolder.cpp index e1571e66276..c8dc7385d0e 100644 --- a/mailnews/local/src/nsLocalMailFolder.cpp +++ b/mailnews/local/src/nsLocalMailFolder.cpp @@ -493,7 +493,22 @@ NS_IMETHODIMP nsMsgLocalMailFolder::GetDatabaseWOReparse(nsIMsgDatabase **aDatab { rv = msgDBService->OpenFolderDB(this, PR_FALSE, PR_TRUE, (nsIMsgDatabase **) getter_AddRefs(mDatabase)); if (mDatabase && NS_SUCCEEDED(rv)) + { mDatabase->AddListener(this); + PRBool hasNewMessages = PR_FALSE; + for (PRUint32 keyIndex = 0; keyIndex < m_newMsgs.GetSize(); keyIndex++) + { + PRBool isRead = PR_FALSE; + mDatabase->IsRead(m_newMsgs[keyIndex], &isRead); + if (!isRead) + { + hasNewMessages = PR_TRUE; + mDatabase->AddToNewList(m_newMsgs[keyIndex]); + } + } + SetHasNewMessages(hasNewMessages); + + } } } *aDatabase = mDatabase; diff --git a/mailnews/mailnews.js b/mailnews/mailnews.js index d4dd4f18488..87781adfcdd 100644 --- a/mailnews/mailnews.js +++ b/mailnews/mailnews.js @@ -175,6 +175,8 @@ pref("mail.receipt.request_header_type", 0); // 0: MDN-DNT header 1: pref("mail.receipt.request_return_receipt_on", false); pref("mail.mdn.report.enabled", true); // false: Never send true: Send sometimes +pref("mail.showPreviewText", false); + pref("news.default_cc", ""); pref("news.default_fcc", ""); // mailbox:URL or Imap://Host/OnlineFolderName pref("news.use_fcc", true);