fix mark thread read, r=putterman 45087

This commit is contained in:
bienvenu%netscape.com 2000-07-26 21:06:05 +00:00
parent 7038f52191
commit cadfa94c07
4 changed files with 26 additions and 25 deletions

View File

@ -86,7 +86,6 @@ nsIRDFResource* nsMsgFolderDataSource::kNC_GetNewMessages= nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_Copy= nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_Move= nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_MarkAllMessagesRead= nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_MarkThreadRead= nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_Compact= nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_Rename= nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_EmptyTrash= nsnull;
@ -148,7 +147,6 @@ nsMsgFolderDataSource::~nsMsgFolderDataSource (void)
NS_RELEASE2(kNC_Copy, refcnt);
NS_RELEASE2(kNC_Move, refcnt);
NS_RELEASE2(kNC_MarkAllMessagesRead, refcnt);
NS_RELEASE2(kNC_MarkThreadRead, refcnt);
NS_RELEASE2(kNC_Compact, refcnt);
NS_RELEASE2(kNC_Rename, refcnt);
NS_RELEASE2(kNC_EmptyTrash, refcnt);
@ -209,7 +207,6 @@ nsresult nsMsgFolderDataSource::Init()
rdf->GetResource(NC_RDF_MOVE, &kNC_Move);
rdf->GetResource(NC_RDF_MARKALLMESSAGESREAD,
&kNC_MarkAllMessagesRead);
rdf->GetResource(NC_RDF_MARKTHREADREAD, &kNC_MarkThreadRead);
rdf->GetResource(NC_RDF_COMPACT, &kNC_Compact);
rdf->GetResource(NC_RDF_RENAME, &kNC_Rename);
rdf->GetResource(NC_RDF_EMPTYTRASH, &kNC_EmptyTrash);
@ -570,7 +567,6 @@ nsMsgFolderDataSource::GetAllCommands(nsIRDFResource* source,
cmds->AppendElement(kNC_Copy);
cmds->AppendElement(kNC_Move);
cmds->AppendElement(kNC_MarkAllMessagesRead);
cmds->AppendElement(kNC_MarkThreadRead);
cmds->AppendElement(kNC_Compact);
cmds->AppendElement(kNC_Rename);
cmds->AppendElement(kNC_EmptyTrash);
@ -613,7 +609,6 @@ nsMsgFolderDataSource::IsCommandEnabled(nsISupportsArray/*<nsIRDFResource>*/* aS
(aCommand == kNC_Move) ||
(aCommand == kNC_GetNewMessages) ||
(aCommand == kNC_MarkAllMessagesRead) ||
(aCommand == kNC_MarkThreadRead) ||
(aCommand == kNC_Compact) ||
(aCommand == kNC_Rename) ||
(aCommand == kNC_EmptyTrash) ))
@ -675,10 +670,6 @@ nsMsgFolderDataSource::DoCommand(nsISupportsArray/*<nsIRDFResource>*/* aSources,
{
rv = folder->MarkAllMessagesRead();
}
else if((aCommand == kNC_MarkThreadRead))
{
rv = DoMarkThreadRead(folder, aArguments);
}
else if ((aCommand == kNC_Compact))
{
rv = folder->Compact();
@ -716,6 +707,7 @@ NS_IMETHODIMP nsMsgFolderDataSource::OnItemRemoved(nsISupports *parentItem, nsIS
return OnItemAddedOrRemoved(parentItem, item, viewString, PR_FALSE);
}
nsresult nsMsgFolderDataSource::OnItemAddedOrRemoved(nsISupports *parentItem, nsISupports *item, const char* viewString, PRBool added)
{
nsresult rv;
@ -1598,18 +1590,6 @@ nsresult nsMsgFolderDataSource::DoNewFolder(nsIMsgFolder *folder, nsISupportsArr
return rv;
}
nsresult nsMsgFolderDataSource::DoMarkThreadRead(nsIMsgFolder *folder, nsISupportsArray *arguments)
{
nsresult rv = NS_OK;
nsCOMPtr<nsISupports> elem = getter_AddRefs(arguments->ElementAt(0));
nsCOMPtr<nsIMsgThread> thread = do_QueryInterface(elem);
if(thread)
{
rv = folder->MarkThreadRead(thread);
}
return rv;
}
nsresult nsMsgFolderDataSource::DoFolderAssert(nsIMsgFolder *folder, nsIRDFResource *property, nsIRDFNode *target)
{
nsresult rv = NS_ERROR_FAILURE;

View File

@ -155,8 +155,6 @@ protected:
nsresult DoNewFolder(nsIMsgFolder *folder,
nsISupportsArray *arguments);
nsresult DoMarkThreadRead(nsIMsgFolder *folder, nsISupportsArray *arguments);
nsresult DoFolderAssert(nsIMsgFolder *folder, nsIRDFResource *property, nsIRDFNode *target);
nsresult DoFolderHasAssertion(nsIMsgFolder *folder, nsIRDFResource *property, nsIRDFNode *target,
@ -216,7 +214,6 @@ protected:
static nsIRDFResource* kNC_Copy;
static nsIRDFResource* kNC_Move;
static nsIRDFResource* kNC_MarkAllMessagesRead;
static nsIRDFResource* kNC_MarkThreadRead;
static nsIRDFResource* kNC_Compact;
static nsIRDFResource* kNC_Rename;
static nsIRDFResource* kNC_EmptyTrash;

View File

@ -81,6 +81,7 @@ nsIRDFResource* nsMsgMessageDataSource::kNC_MarkUnread= nsnull;
nsIRDFResource* nsMsgMessageDataSource::kNC_ToggleRead= nsnull;
nsIRDFResource* nsMsgMessageDataSource::kNC_MarkFlagged= nsnull;
nsIRDFResource* nsMsgMessageDataSource::kNC_MarkUnflagged= nsnull;
nsIRDFResource* nsMsgMessageDataSource::kNC_MarkThreadRead= nsnull;
nsrefcnt nsMsgMessageDataSource::gMessageResourceRefCnt = 0;
@ -142,6 +143,7 @@ nsMsgMessageDataSource::~nsMsgMessageDataSource (void)
NS_RELEASE2(kNC_ToggleRead, refcnt);
NS_RELEASE2(kNC_MarkFlagged, refcnt);
NS_RELEASE2(kNC_MarkUnflagged, refcnt);
NS_RELEASE2(kNC_MarkThreadRead, refcnt);
NS_RELEASE(kStatusAtom);
NS_RELEASE(kFlaggedAtom);
@ -205,6 +207,7 @@ nsresult nsMsgMessageDataSource::Init()
rdf->GetResource(NC_RDF_TOGGLEREAD, &kNC_ToggleRead);
rdf->GetResource(NC_RDF_MARKFLAGGED, &kNC_MarkFlagged);
rdf->GetResource(NC_RDF_MARKUNFLAGGED, &kNC_MarkUnflagged);
rdf->GetResource(NC_RDF_MARKTHREADREAD, &kNC_MarkThreadRead);
kStatusAtom = NS_NewAtom("Status");
kFlaggedAtom = NS_NewAtom("Flagged");
@ -770,6 +773,8 @@ nsMsgMessageDataSource::DoCommand(nsISupportsArray/*<nsIRDFResource>*/ * aSource
rv = DoMarkMessagesFlagged(aSources, PR_TRUE);
else if((aCommand == kNC_MarkUnflagged))
rv = DoMarkMessagesFlagged(aSources, PR_FALSE);
else if((aCommand == kNC_MarkThreadRead))
rv = DoMarkThreadRead(aSources, aArguments);
//for the moment return NS_OK, because failure stops entire DoCommand process.
return NS_OK;
@ -785,7 +790,6 @@ NS_IMETHODIMP nsMsgMessageDataSource::OnItemRemoved(nsISupports *parentItem, nsI
return OnItemAddedOrRemoved(parentItem, item, viewString, PR_FALSE);
}
nsresult nsMsgMessageDataSource::OnItemAddedOrRemoved(nsISupports *parentItem, nsISupports *item, const char *viewString, PRBool added)
{
@ -1847,6 +1851,23 @@ nsMsgMessageDataSource::DoMarkMessagesFlagged(nsISupportsArray *messages, PRBool
return rv;
}
nsresult nsMsgMessageDataSource::DoMarkThreadRead(nsISupportsArray *folders, nsISupportsArray *arguments)
{
nsresult rv = NS_OK;
nsCOMPtr<nsISupports> supports;
supports = getter_AddRefs(folders->ElementAt(0));
nsCOMPtr<nsIMsgFolder> folder = do_QueryInterface(supports, &rv);
nsCOMPtr<nsISupports> elem = getter_AddRefs(arguments->ElementAt(0));
nsCOMPtr<nsIMsgThread> thread = do_QueryInterface(elem);
if(folder && thread)
{
rv = folder->MarkThreadRead(thread);
}
return rv;
}
nsresult nsMsgMessageDataSource::DoMessageHasAssertion(nsIMessage *message, nsIRDFResource *property, nsIRDFNode *target,
PRBool tv, PRBool *hasAssertion)

View File

@ -178,6 +178,8 @@ protected:
nsresult DoMarkMessagesRead(nsISupportsArray *messages, PRBool markRead);
nsresult DoMarkMessagesFlagged(nsISupportsArray *messages, PRBool markFlagged);
nsresult DoMarkThreadRead(nsISupportsArray *folders, nsISupportsArray *arguments);
nsresult DoMessageHasAssertion(nsIMessage *message, nsIRDFResource *property, nsIRDFNode *target,
PRBool tv, PRBool *hasAssertion);
@ -246,6 +248,7 @@ protected:
static nsIRDFResource* kNC_ToggleRead;
static nsIRDFResource* kNC_MarkFlagged;
static nsIRDFResource* kNC_MarkUnflagged;
static nsIRDFResource* kNC_MarkThreadRead;
//Cached literals
nsCOMPtr<nsIRDFNode> kEmptyStringLiteral;