зеркало из https://github.com/mozilla/gecko-dev.git
Added MarkAllMessagesRead
This commit is contained in:
Родитель
9789425774
Коммит
166d67d0d1
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче