From b287fc5fa1cf597f5edd0592383bed57a924d634 Mon Sep 17 00:00:00 2001 From: "chuang%netscape.com" Date: Wed, 14 Feb 2001 21:08:41 +0000 Subject: [PATCH] bug57021 Mailing list msg displays multiple copies of addressees. r=ducarroz, sr=bienvenu git-svn-id: svn://10.0.0.236/trunk@87022 18797224-902f-48f8-a5cc-f745e15eee43 --- .../mailnews/addrbook/src/nsAbDirProperty.cpp | 37 ++++++++++++++----- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/mozilla/mailnews/addrbook/src/nsAbDirProperty.cpp b/mozilla/mailnews/addrbook/src/nsAbDirProperty.cpp index 7cc316d2668..e94ecba0c32 100644 --- a/mozilla/mailnews/addrbook/src/nsAbDirProperty.cpp +++ b/mozilla/mailnews/addrbook/src/nsAbDirProperty.cpp @@ -306,20 +306,39 @@ NS_IMETHODIMP nsAbDirProperty::SetAddressLists(nsISupportsArray * aAddressLists) /* add mailing list to the parent directory */ NS_IMETHODIMP nsAbDirProperty::AddMailListToDirectory(nsIAbDirectory *mailList) { - if (!m_AddressList) - NS_NewISupportsArray(getter_AddRefs(m_AddressList)); - m_AddressList->AppendElement(mailList); - return NS_OK; + if (!m_AddressList) + NS_NewISupportsArray(getter_AddRefs(m_AddressList)); + PRUint32 i, count; + m_AddressList->Count(&count); + for (i = 0; i < count; i++) + { + nsresult err; + nsCOMPtr pSupport = getter_AddRefs(m_AddressList->ElementAt(i)); + nsCOMPtr pList(do_QueryInterface(pSupport, &err)); + if (mailList == pList.get()) + return NS_OK; + } + m_AddressList->AppendElement(mailList); + return NS_OK; } /* add addresses to the mailing list */ NS_IMETHODIMP nsAbDirProperty::AddAddressToList(nsIAbCard *card) { - if (!m_AddressList) - NS_NewISupportsArray(getter_AddRefs(m_AddressList)); - m_AddressList->AppendElement(card); - NS_IF_ADDREF(card); - return NS_OK; + if (!m_AddressList) + NS_NewISupportsArray(getter_AddRefs(m_AddressList)); + PRUint32 i, count; + m_AddressList->Count(&count); + for (i = 0; i < count; i++) + { + nsresult err; + nsCOMPtr pSupport = getter_AddRefs(m_AddressList->ElementAt(i)); + nsCOMPtr pCard(do_QueryInterface(pSupport, &err)); + if (card == pCard.get()) + return NS_OK; + } + m_AddressList->AppendElement(card); + return NS_OK; } NS_IMETHODIMP nsAbDirProperty::AddMailListToDatabase(const char *uri)