This commit is contained in:
putterman%netscape.com 1999-07-24 21:10:53 +00:00
Родитель 9789425774
Коммит 166d67d0d1
9 изменённых файлов: 64 добавлений и 3 удалений

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

@ -55,6 +55,7 @@ interface nsIMessenger : nsISupports {
in boolean markRead);
void MarkMessageRead(in nsIRDFCompositeDataSource database, in nsIDOMXULElement message,
in boolean markRead);
void MarkAllMessagesRead(in nsIRDFCompositeDataSource database, in nsIDOMXULElement folder);
void NewFolder(in nsIRDFCompositeDataSource database, in nsIDOMXULElement parentFolderElement,
in string name);
void Undo();

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

@ -218,7 +218,7 @@ Rights Reserved.
<!ENTITY markAsUnreadCmd.label "As Unread">
<!ENTITY markThreadAsReadCmd.label ".Thread As Read">
<!ENTITY markByDateCmd.label ".by Date...">
<!ENTITY markAllReadCmd.label ".All Read">
<!ENTITY markAllReadCmd.label "All Read">
<!ENTITY markFlaggedCmd.label ".Flag">
<!ENTITY ignoreThreadCmd.label ".Ignore Thread">
<!ENTITY watchThreadCmd.label ".Watch Thread">

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

@ -357,7 +357,20 @@ function MsgMarkMsgAsRead(markRead)
function MsgMarkThreadAsRead() {}
function MsgMarkByDate() {}
function MsgMarkAllRead() {}
function MsgMarkAllRead()
{
var folderTree = GetFolderTree();;
var selectedFolderList = folderTree.getElementsByAttribute("selected", "true");
if(selectedFolderList.length > 0)
{
var selectedFolder = selectedFolderList[0];
messenger.MarkAllMessagesRead(folderTree.database, selectedFolder);
}
else {
dump("Nothing was selected\n");
}
}
function MsgMarkAsFlagged() {}
function MsgIgnoreThread() {}
function MsgWatchThread() {}

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

@ -115,6 +115,7 @@ public:
NS_IMETHOD ViewAllThreadMessages(nsIRDFCompositeDataSource *database);
NS_IMETHOD MarkMessagesRead(nsIRDFCompositeDataSource *database, nsIDOMNodeList *messages, PRBool markRead);
NS_IMETHOD MarkMessageRead(nsIRDFCompositeDataSource *database, nsIDOMXULElement *message, PRBool markRead);
NS_IMETHOD MarkAllMessagesRead(nsIRDFCompositeDataSource *database, nsIDOMXULElement *folder);
NS_IMETHOD NewFolder(nsIRDFCompositeDataSource *database, nsIDOMXULElement *parentFolderElement,
const char *name);
@ -868,6 +869,30 @@ nsMessenger::DoMarkMessagesRead(nsIRDFCompositeDataSource *database, nsISupports
}
NS_IMETHODIMP
nsMessenger::MarkAllMessagesRead(nsIRDFCompositeDataSource *database, nsIDOMXULElement *folder)
{
nsresult rv;
nsCOMPtr<nsIRDFResource> folderResource;
nsCOMPtr<nsISupportsArray> folderArray;
if(!folder || !database)
return NS_ERROR_NULL_POINTER;
rv = folder->GetResource(getter_AddRefs(folderResource));
if(NS_FAILED(rv))
return rv;
if(NS_FAILED(NS_NewISupportsArray(getter_AddRefs(folderArray))))
return NS_ERROR_OUT_OF_MEMORY;
folderArray->AppendElement(folderResource);
DoCommand(database, NC_RDF_MARKALLMESSAGESREAD, folderArray, nsnull);
return rv;
}
NS_IMETHODIMP
nsMessenger::NewFolder(nsIRDFCompositeDataSource *database, nsIDOMXULElement *parentFolderElement,
const char *name)

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

@ -58,6 +58,7 @@ nsIRDFResource* nsMsgFolderDataSource::kNC_NewFolder= nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_GetNewMessages= nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_Copy= nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_Move= nsnull;
nsIRDFResource* nsMsgFolderDataSource::kNC_MarkAllMessagesRead= nsnull;
@ -93,6 +94,7 @@ nsMsgFolderDataSource::~nsMsgFolderDataSource (void)
NS_RELEASE2(kNC_GetNewMessages, refcnt);
NS_RELEASE2(kNC_Copy, refcnt);
NS_RELEASE2(kNC_Move, refcnt);
NS_RELEASE2(kNC_MarkAllMessagesRead, refcnt);
nsServiceManager::ReleaseService(kRDFServiceCID, mRDFService); // XXX probably need shutdown listener here
mRDFService = nsnull;
@ -132,6 +134,7 @@ nsresult nsMsgFolderDataSource::Init()
mRDFService->GetResource(NC_RDF_GETNEWMESSAGES, &kNC_GetNewMessages);
mRDFService->GetResource(NC_RDF_COPY, &kNC_Copy);
mRDFService->GetResource(NC_RDF_MOVE, &kNC_Move);
mRDFService->GetResource(NC_RDF_MARKALLMESSAGESREAD, &kNC_MarkAllMessagesRead);
}
mInitialized = PR_TRUE;
return NS_OK;
@ -430,6 +433,7 @@ nsMsgFolderDataSource::GetAllCommands(nsIRDFResource* source,
cmds->AppendElement(kNC_GetNewMessages);
cmds->AppendElement(kNC_Copy);
cmds->AppendElement(kNC_Move);
cmds->AppendElement(kNC_MarkAllMessagesRead);
}
if (cmds != nsnull)
@ -466,7 +470,8 @@ nsMsgFolderDataSource::IsCommandEnabled(nsISupportsArray/*<nsIRDFResource>*/* aS
(aCommand == kNC_NewFolder) ||
(aCommand == kNC_Copy) ||
(aCommand == kNC_Move) ||
(aCommand == kNC_GetNewMessages))) {
(aCommand == kNC_GetNewMessages) ||
(aCommand == kNC_MarkAllMessagesRead))) {
*aResult = PR_FALSE;
return NS_OK;
}
@ -527,6 +532,10 @@ nsMsgFolderDataSource::DoCommand(nsISupportsArray/*<nsIRDFResource>*/* aSources,
{
rv = DoCopyToFolder(folder, aArguments, transactionManager, PR_TRUE);
}
else if((aCommand == kNC_MarkAllMessagesRead))
{
rv = folder->MarkAllMessagesRead();
}
}
}

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

@ -175,6 +175,7 @@ protected:
static nsIRDFResource* kNC_GetNewMessages;
static nsIRDFResource* kNC_Copy;
static nsIRDFResource* kNC_Move;
static nsIRDFResource* kNC_MarkAllMessagesRead;
};

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

@ -54,6 +54,7 @@ typedef struct _nsMsgRDFNotification {
#define NC_RDF_GETNEWMESSAGES "http://home.netscape.com/NC-rdf#GetNewMessages"
#define NC_RDF_COPY "http://home.netscape.com/NC-rdf#Copy"
#define NC_RDF_MOVE "http://home.netscape.com/NC-rdf#Move"
#define NC_RDF_MARKALLMESSAGESREAD "http://home.netscape.com/NC-rdf#MarkAllMessagesRead"
//Message Commands
#define NC_RDF_MARKREAD "http://home.netscape.com/NC-rdf#MarkRead"

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

@ -434,3 +434,12 @@ NS_IMETHODIMP nsMsgDBFolder::WriteToFolderCacheElem(nsIMsgFolderCacheElement *el
return rv;
}
NS_IMETHODIMP
nsMsgDBFolder::MarkAllMessagesRead(void)
{
nsresult rv = GetDatabase();
if(NS_SUCCEEDED(rv))
return mDatabase->MarkAllRead(nsnull);
}

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

@ -62,6 +62,8 @@ public:
NS_IMETHOD WriteToFolderCache(nsIMsgFolderCache *folderCache);
NS_IMETHOD WriteToFolderCacheElem(nsIMsgFolderCacheElement *element);
NS_IMETHOD MarkAllMessagesRead(void);
protected:
virtual nsresult ReadDBFolderInfo(PRBool force);
virtual nsresult GetDatabase() = 0;