diff --git a/mozilla/mailnews/base/public/nsIMsgHdr.idl b/mozilla/mailnews/base/public/nsIMsgHdr.idl index eee94b0dba8..85566e3c7f1 100644 --- a/mozilla/mailnews/base/public/nsIMsgHdr.idl +++ b/mozilla/mailnews/base/public/nsIMsgHdr.idl @@ -55,6 +55,7 @@ interface nsIMsgHdr : nsISupports // Mark message routines void markRead(in boolean read); void markFlagged(in boolean flagged); + void markHasAttachments(in boolean hasAttachments); attribute nsMsgPriorityValue priority; void setPriorityString(in string priority); diff --git a/mozilla/mailnews/base/resources/content/msgHdrViewOverlay.js b/mozilla/mailnews/base/resources/content/msgHdrViewOverlay.js index 3b19abd8922..c20991ee082 100644 --- a/mozilla/mailnews/base/resources/content/msgHdrViewOverlay.js +++ b/mozilla/mailnews/base/resources/content/msgHdrViewOverlay.js @@ -268,8 +268,22 @@ var messageHeaderSink = { handleAttachment: function(contentType, url, displayName, uri, notDownloaded) { - var numAttachments = currentAttachments.length; currentAttachments.push (new createNewAttachmentInfo(contentType, url, displayName, uri, notDownloaded)); + // if we have an attachment, set the MSG_FLAG_ATTACH flag on the hdr + // this will cause the "message with attachment" icon to show up + // in the thread pane + // we only need to do this on the first attachment + var numAttachments = currentAttachments.length; + if (numAttachments == 1) { + try { + // convert the uri into a hdr + var hdr = messenger.messageServiceFromURI(uri).messageURIToMsgHdr(uri); + hdr.markHasAttachments(true); + } + catch (ex) { + dump("ex = " + ex + "\n"); + } + } }, onEndAllAttachments: function() diff --git a/mozilla/mailnews/base/src/nsMsgDBView.h b/mozilla/mailnews/base/src/nsMsgDBView.h index fd4bedff9c8..28e2587220e 100644 --- a/mozilla/mailnews/base/src/nsMsgDBView.h +++ b/mozilla/mailnews/base/src/nsMsgDBView.h @@ -53,7 +53,7 @@ enum eFieldType { }; // reserve the top 8 bits in the msg flags for the view-only flags. -#define MSG_VIEW_FLAGS 0xFE000000 +#define MSG_VIEW_FLAGS 0xEE000000 #define MSG_VIEW_FLAG_HASCHILDREN 0x40000000 #define MSG_VIEW_FLAG_ISTHREAD 0x8000000 diff --git a/mozilla/mailnews/db/msgdb/src/nsMsgHdr.cpp b/mozilla/mailnews/db/msgdb/src/nsMsgHdr.cpp index 65cb7016a82..df2972054b4 100644 --- a/mozilla/mailnews/db/msgdb/src/nsMsgHdr.cpp +++ b/mozilla/mailnews/db/msgdb/src/nsMsgHdr.cpp @@ -220,6 +220,20 @@ NS_IMETHODIMP nsMsgHdr::AndFlags(PRUint32 flags, PRUint32 *result) return NS_OK; } +NS_IMETHODIMP nsMsgHdr::MarkHasAttachments(PRBool bHasAttachments) +{ + nsresult rv = NS_OK; + + if(m_mdb) + { + nsMsgKey key; + rv = GetMessageKey(&key); + if(NS_SUCCEEDED(rv)) + rv = m_mdb->MarkHasAttachments(key, bHasAttachments, nsnull); + } + return rv; + } + NS_IMETHODIMP nsMsgHdr::MarkRead(PRBool bRead) { nsresult rv = NS_OK; @@ -231,8 +245,6 @@ NS_IMETHODIMP nsMsgHdr::MarkRead(PRBool bRead) if(NS_SUCCEEDED(rv)) rv = m_mdb->MarkRead(key, bRead, nsnull); } - - return rv; } @@ -247,8 +259,6 @@ NS_IMETHODIMP nsMsgHdr::MarkFlagged(PRBool bFlagged) if(NS_SUCCEEDED(rv)) rv = m_mdb->MarkMarked(key, bFlagged, nsnull); } - - return rv; } diff --git a/mozilla/themes/classic/jar.mn b/mozilla/themes/classic/jar.mn index f5849dd9b5e..46a17bd112c 100644 --- a/mozilla/themes/classic/jar.mn +++ b/mozilla/themes/classic/jar.mn @@ -397,6 +397,7 @@ classic.jar: skin/classic/messenger/message-mail.gif (messenger/message-mail.gif) skin/classic/messenger/message-news-new.gif (messenger/message-news-new.gif) skin/classic/messenger/message-news.gif (messenger/message-news.gif) + skin/classic/messenger/message-news-attach.gif (messenger/message-news-attach.gif) skin/classic/messenger/more.gif (messenger/more.gif) skin/classic/messenger/newmsg-disabled.gif (messenger/newmsg-disabled.gif) skin/classic/messenger/newmsg-hover-active.gif (messenger/newmsg-hover-active.gif) diff --git a/mozilla/themes/classic/messenger/mac/threadPane.css b/mozilla/themes/classic/messenger/mac/threadPane.css index 04c0e63f0a5..e316b9dfeb7 100644 --- a/mozilla/themes/classic/messenger/mac/threadPane.css +++ b/mozilla/themes/classic/messenger/mac/threadPane.css @@ -168,3 +168,7 @@ outlinerbody:-moz-outliner-image(subjectCol, news, new) { list-style-image: url("chrome://messenger/skin/message-news-new.gif"); } +outlinerbody:-moz-outliner-image(subjectCol, news, attach) { + list-style-image: url("chrome://messenger/skin/message-news-attach.gif"); +} + diff --git a/mozilla/themes/classic/messenger/message-news-attach.gif b/mozilla/themes/classic/messenger/message-news-attach.gif new file mode 100644 index 00000000000..fdb66c5d9cc Binary files /dev/null and b/mozilla/themes/classic/messenger/message-news-attach.gif differ diff --git a/mozilla/themes/classic/messenger/win/threadPane.css b/mozilla/themes/classic/messenger/win/threadPane.css index 04c0e63f0a5..e316b9dfeb7 100644 --- a/mozilla/themes/classic/messenger/win/threadPane.css +++ b/mozilla/themes/classic/messenger/win/threadPane.css @@ -168,3 +168,7 @@ outlinerbody:-moz-outliner-image(subjectCol, news, new) { list-style-image: url("chrome://messenger/skin/message-news-new.gif"); } +outlinerbody:-moz-outliner-image(subjectCol, news, attach) { + list-style-image: url("chrome://messenger/skin/message-news-attach.gif"); +} + diff --git a/mozilla/themes/modern/jar.mn b/mozilla/themes/modern/jar.mn index 12aa988bcc8..544b07f3973 100644 --- a/mozilla/themes/modern/jar.mn +++ b/mozilla/themes/modern/jar.mn @@ -609,6 +609,7 @@ modern.jar: skin/modern/messenger/icons/message-mail.gif (messenger/icons/message-mail.gif) skin/modern/messenger/icons/message-news-new.gif (messenger/icons/message-news-new.gif) skin/modern/messenger/icons/message-news.gif (messenger/icons/message-news.gif) + skin/modern/messenger/icons/message-news-attach.gif (messenger/icons/message-news-attach.gif) skin/modern/messenger/icons/readcol-read.gif (messenger/icons/readcol-read.gif) skin/modern/messenger/icons/readcol-unread.gif (messenger/icons/readcol-unread.gif) skin/modern/messenger/icons/server-local-new.gif (messenger/icons/server-local-new.gif) diff --git a/mozilla/themes/modern/messenger/icons/message-news-attach.gif b/mozilla/themes/modern/messenger/icons/message-news-attach.gif new file mode 100644 index 00000000000..e1b6bd00082 Binary files /dev/null and b/mozilla/themes/modern/messenger/icons/message-news-attach.gif differ diff --git a/mozilla/themes/modern/messenger/threadPane.css b/mozilla/themes/modern/messenger/threadPane.css index c92307adcdf..8f84a9f9389 100644 --- a/mozilla/themes/modern/messenger/threadPane.css +++ b/mozilla/themes/modern/messenger/threadPane.css @@ -168,3 +168,7 @@ outlinerbody:-moz-outliner-image(subjectCol, news, new) { list-style-image: url("chrome://messenger/skin/icons/message-news-new.gif"); } +outlinerbody:-moz-outliner-image(subjectCol, news, attach) { + list-style-image: url("chrome://messenger/skin/icons/message-news-attach.gif"); +} +