code clean up. do a GetNewMessages() in GetMessages() so that when you select a newsgroup

This commit is contained in:
sspitzer%netscape.com 1999-07-16 05:39:07 +00:00
Родитель 725806be44
Коммит 32fbbdb38e
1 изменённых файлов: 29 добавлений и 23 удалений

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

@ -547,7 +547,8 @@ nsresult nsMsgNewsFolder::GetDatabase()
rv = mDatabase->AddListener(this); rv = mDatabase->AddListener(this);
if (NS_FAILED(rv)) return rv; if (NS_FAILED(rv)) return rv;
UpdateSummaryTotals(); rv = UpdateSummaryTotals();
if (NS_FAILED(rv)) return rv;
} }
} }
return NS_OK; return NS_OK;
@ -556,6 +557,9 @@ nsresult nsMsgNewsFolder::GetDatabase()
NS_IMETHODIMP NS_IMETHODIMP
nsMsgNewsFolder::GetMessages(nsIEnumerator* *result) nsMsgNewsFolder::GetMessages(nsIEnumerator* *result)
{ {
#ifdef DEBUG_seth
printf("nsMsgNewsFolder::GetMessages()\n");
#endif
// number_to_show is a tempory hack to allow newsgroups // number_to_show is a tempory hack to allow newsgroups
// with thousands of message to work. the way it works is // with thousands of message to work. the way it works is
// we return a cropped enumerator back to to the caller // we return a cropped enumerator back to to the caller
@ -564,6 +568,7 @@ nsMsgNewsFolder::GetMessages(nsIEnumerator* *result)
PRInt32 number_to_show; PRInt32 number_to_show;
nsresult rv = NS_OK; nsresult rv = NS_OK;
NS_WITH_SERVICE(nsIPref, prefs, kPrefServiceCID, &rv); NS_WITH_SERVICE(nsIPref, prefs, kPrefServiceCID, &rv);
if (NS_SUCCEEDED(rv) && prefs) { if (NS_SUCCEEDED(rv) && prefs) {
rv = prefs->GetIntPref(PREF_NEWS_MAX_HEADERS_TO_SHOW, &number_to_show); rv = prefs->GetIntPref(PREF_NEWS_MAX_HEADERS_TO_SHOW, &number_to_show);
@ -631,7 +636,6 @@ nsMsgNewsFolder::GetMessages(nsIEnumerator* *result)
} }
} }
} }
return rv;
} }
else { else {
rv = GetDatabase(); rv = GetDatabase();
@ -645,8 +649,11 @@ nsMsgNewsFolder::GetMessages(nsIEnumerator* *result)
rv = NS_NewMessageFromMsgHdrEnumerator(msgHdrEnumerator, this, &messageEnumerator); rv = NS_NewMessageFromMsgHdrEnumerator(msgHdrEnumerator, this, &messageEnumerator);
*result = messageEnumerator; *result = messageEnumerator;
} }
return rv;
} }
rv = GetNewMessages();
if (NS_FAILED(rv)) return rv;
return rv;
} }
NS_IMETHODIMP nsMsgNewsFolder::BuildFolderURL(char **url) NS_IMETHODIMP nsMsgNewsFolder::BuildFolderURL(char **url)
@ -993,6 +1000,10 @@ nsresult nsMsgNewsFolder::GetDBFolderInfoAndDB(nsIDBFolderInfo **folderInfo, ns
NS_IMETHODIMP nsMsgNewsFolder::UpdateSummaryTotals() NS_IMETHODIMP nsMsgNewsFolder::UpdateSummaryTotals()
{ {
#ifdef DEBUG_seth
printf("nsMsgNewsFolder::UpdateSummaryTotals()\n");
#endif
PRInt32 oldUnreadMessages = mNumUnreadMessages; PRInt32 oldUnreadMessages = mNumUnreadMessages;
PRInt32 oldTotalMessages = mNumTotalMessages; PRInt32 oldTotalMessages = mNumTotalMessages;
//We need to read this info from the database //We need to read this info from the database
@ -1267,7 +1278,6 @@ NS_IMETHODIMP nsMsgNewsFolder::GetNewMessages()
NS_IMETHODIMP nsMsgNewsFolder::CreateMessageFromMsgDBHdr(nsIMsgDBHdr *msgDBHdr, nsIMessage **message) NS_IMETHODIMP nsMsgNewsFolder::CreateMessageFromMsgDBHdr(nsIMsgDBHdr *msgDBHdr, nsIMessage **message)
{ {
nsresult rv; nsresult rv;
NS_WITH_SERVICE(nsIRDFService, rdfService, kRDFServiceCID, &rv); NS_WITH_SERVICE(nsIRDFService, rdfService, kRDFServiceCID, &rv);
if (NS_FAILED(rv)) return rv; if (NS_FAILED(rv)) return rv;
@ -1278,27 +1288,23 @@ NS_IMETHODIMP nsMsgNewsFolder::CreateMessageFromMsgDBHdr(nsIMsgDBHdr *msgDBHdr,
nsCOMPtr <nsIRDFResource> res; nsCOMPtr <nsIRDFResource> res;
rv = msgDBHdr->GetMessageKey(&key); rv = msgDBHdr->GetMessageKey(&key);
if (NS_FAILED(rv)) return rv;
if(NS_SUCCEEDED(rv))
rv = nsBuildNewsMessageURI(mURI, key, &msgURI);
if(NS_SUCCEEDED(rv)) rv = nsBuildNewsMessageURI(mURI, key, &msgURI);
{ if (NS_FAILED(rv)) return rv;
rv = rdfService->GetResource(msgURI, getter_AddRefs(res));
}
if(msgURI) {
PR_FREEIF(msgURI);
msgURI = nsnull;
}
if(NS_SUCCEEDED(rv)) { rv = rdfService->GetResource(msgURI, getter_AddRefs(res));
nsCOMPtr<nsIDBMessage> messageResource = do_QueryInterface(res);
if(messageResource) PR_FREEIF(msgURI);
{ msgURI = nsnull;
messageResource->SetMsgDBHdr(msgDBHdr);
*message = messageResource; if (NS_FAILED(rv)) return rv;
NS_IF_ADDREF(*message);
} nsCOMPtr<nsIDBMessage> messageResource = do_QueryInterface(res);
if(messageResource) {
messageResource->SetMsgDBHdr(msgDBHdr);
*message = messageResource;
NS_IF_ADDREF(*message);
} }
return rv; return rv;