Checking in |nsIImapService| string cleanup for bug 379070. r=mscott.

git-svn-id: svn://10.0.0.236/trunk@227285 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
nick.kreeger%park.edu
2007-05-30 20:45:39 +00:00
parent 8aac19d83c
commit 246ce643ee
7 changed files with 1415 additions and 1541 deletions

View File

@@ -58,8 +58,7 @@ interface nsIMsgWindow;
interface nsIImapIncomingServer;
interface nsICacheSession;
[scriptable, uuid(f05bce9f-66ec-40d3-ac89-0273bbcb4ed6)]
[scriptable, uuid(16d88469-a6ba-4389-ae75-e306373afc2a)]
interface nsIImapService : nsISupports
{
// As always, you can pass in null for the url listener and the url if you don't require either.....
@@ -83,9 +82,9 @@ interface nsIImapService : nsISupports
in nsIImapMessageSink aImapMessageSink,
in nsIMsgWindow aMsgWindow,
in nsISupports aConsumer,
in string aMessageIdentifierList,
in ACString aMessageIdentifierList,
in boolean convertDataToText,
in string additionalHeader,
in ACString additionalHeader,
out nsIURI aOutURL);
void noop(in nsIEventTarget aClientEventTarget,
@@ -97,13 +96,13 @@ interface nsIImapService : nsISupports
in nsIMsgFolder aImapMailFolder,
in nsIUrlListener aUrlListener,
out nsIURI aURL,
in string aMessageIdentifierList,
in ACString aMessageIdentifierList,
in boolean aMessageIdsAreUID);
nsIURI getBodyStart(in nsIEventTarget aClientEventTarget,
in nsIMsgFolder aImapMailFolder,
in nsIUrlListener aUrlListener,
in string aMessageIdentifierList,
in ACString aMessageIdentifierList,
in long numBytes);
void expunge(in nsIEventTarget aClientEventTarget,
@@ -125,7 +124,7 @@ interface nsIImapService : nsISupports
in nsIMsgFolder aImapMailFolder,
in nsIUrlListener aUrlListener,
out nsIURI aURL,
in string aMessageIdentifierList,
in ACString aMessageIdentifierList,
in boolean aMessageIdsAreUID);
void deleteAllMessages(in nsIEventTarget aClientEventTarget,
@@ -137,7 +136,7 @@ interface nsIImapService : nsISupports
in nsIMsgFolder aImapMailFolder,
in nsIUrlListener aUrlListener,
out nsIURI aURL,
in string aMessageIdentifierList,
in ACString aMessageIdentifierList,
in imapMessageFlagsType aFlags,
in boolean aMessageIdsAreUID);
@@ -145,7 +144,7 @@ interface nsIImapService : nsISupports
in nsIMsgFolder aImapMailFolder,
in nsIUrlListener aUrlListener,
out nsIURI aURL,
in string aMessageIdentifierList,
in ACString aMessageIdentifierList,
in imapMessageFlagsType aFlags,
in boolean aMessageIdsAreUID);
@@ -153,7 +152,7 @@ interface nsIImapService : nsISupports
in nsIMsgFolder aImapMailFolder,
in nsIUrlListener aUrlListener,
out nsIURI aURL,
in string aMessageIdentifierList,
in ACString aMessageIdentifierList,
in imapMessageFlagsType aFlags,
in boolean aMessageIdsAreUID);
@@ -170,12 +169,12 @@ interface nsIImapService : nsISupports
void discoverChildren(in nsIEventTarget aClientEventTarget,
in nsIMsgFolder aImapMailFolder,
in nsIUrlListener aUrlListener,
in string folderPath,
in ACString folderPath,
out nsIURI aURL);
void onlineMessageCopy(in nsIEventTarget aClientEventTarget,
in nsIMsgFolder aSrcFolder,
in string aMessageIds,
in ACString aMessageIds,
in nsIMsgFolder aDstFolder,
in boolean aIdsAreUids,
in boolean aIsMove,
@@ -188,7 +187,7 @@ interface nsIImapService : nsISupports
void appendMessageFromFile(in nsIEventTarget aClientEventTarget,
in nsIFile aFile,
in nsIMsgFolder aDstFolder,
in string aMessageId,
in ACString aMessageId,
in boolean idsAreUids,
in boolean aInSelectedState,
in nsIUrlListener aUrlListener,
@@ -196,7 +195,7 @@ interface nsIImapService : nsISupports
in nsISupports aCopyState,
in nsIMsgWindow aMsgWindow);
void downloadMessagesForOffline(in string aMessageIds, in nsIMsgFolder aSrcFolder,
void downloadMessagesForOffline(in ACString aMessageIds, in nsIMsgFolder aSrcFolder,
in nsIUrlListener aListener, in nsIMsgWindow aMsgWindow);
nsIURI moveFolder(in nsIEventTarget aClientEventTarget,
@@ -207,7 +206,7 @@ interface nsIImapService : nsISupports
nsIURI renameLeaf(in nsIEventTarget aClientEventTarget,
in nsIMsgFolder aSrcFolder,
in wstring aLeafName,
in AString aLeafName,
in nsIUrlListener aUrlListener,
in nsIMsgWindow msgWindow);
@@ -217,7 +216,7 @@ interface nsIImapService : nsISupports
nsIURI createFolder(in nsIEventTarget aClientEventTarget,
in nsIMsgFolder aParentFolder,
in wstring aLeafName,
in AString aLeafName,
in nsIUrlListener aUrlListener);
nsIURI listFolder(in nsIEventTarget aClientEventTarget,
@@ -226,12 +225,12 @@ interface nsIImapService : nsISupports
nsIURI subscribeFolder(in nsIEventTarget aClientEventTarget,
in nsIMsgFolder aMailFolder,
in wstring mailboxName,
in AString mailboxName,
in nsIUrlListener aUrlListener);
nsIURI unsubscribeFolder(in nsIEventTarget aClientEventTarget,
in nsIMsgFolder aMailFolder,
in wstring mailboxName,
in AString mailboxName,
in nsIUrlListener aUrlListener);
// this method will first check if the folder exists but is
@@ -240,7 +239,7 @@ interface nsIImapService : nsISupports
// with one url.
nsIURI ensureFolderExists(in nsIEventTarget aClientEventTarget,
in nsIMsgFolder aParentFolder,
in wstring aLeafName,
in AString aLeafName,
in nsIUrlListener aUrlListener);
@@ -252,24 +251,24 @@ interface nsIImapService : nsISupports
nsIURI issueCommandOnMsgs(in nsIEventTarget aClientEventTarget,
in nsIMsgFolder aMailFolder,
in nsIMsgWindow aMsgWindow,
in string aCommand,
in string aMessageIdentifierList);
in ACString aCommand,
in ACString aMessageIdentifierList);
nsIURI fetchCustomMsgAttribute(in nsIEventTarget aClientEventTarget,
in nsIMsgFolder aMailFolder,
in nsIMsgWindow aMsgWindow,
in string aAttribute,
in string aMessageIdentifierList);
in ACString aAttribute,
in ACString aMessageIdentifierList);
nsIURI storeCustomKeywords(in nsIEventTarget aClientEventTarget,
in nsIMsgFolder aMailFolder,
in nsIMsgWindow aMsgWindow,
in string flagsToAdd,
in string flagsToSubtract,
in string aMessageIdentifierList);
in ACString flagsToAdd,
in ACString flagsToSubtract,
in ACString aMessageIdentifierList);
void getListOfFoldersOnServer(in nsIImapIncomingServer aServer, in nsIMsgWindow aMsgWindow);
void getListOfFoldersWithPath(in nsIImapIncomingServer aServer, in nsIMsgWindow aMsgWindow, in string folderPath);
void getListOfFoldersWithPath(in nsIImapIncomingServer aServer, in nsIMsgWindow aMsgWindow, in ACString folderPath);
nsISupports playbackAllOfflineOperations(in nsIMsgWindow aMsgWindow, in nsIUrlListener aListener);
void downloadAllOffineImapFolders(in nsIMsgWindow aMsgWindow, in nsIUrlListener aListener);

View File

@@ -2538,8 +2538,7 @@ NS_IMETHODIMP nsImapIncomingServer::OnLogonRedirectionReply(const PRUnichar *pHo
nsresult rv;
nsCOMPtr <nsIImapProtocol> imapProtocol;
nsCAutoString cookie(pCookieData, pCookieSize);
// we used to logoff the external requestor...we no longer need to do
// that.
// we used to logoff the external requestor...we no longer need to do that.
m_redirectedLogonRetries = 0; // we got through, so reset this counter.
@@ -2613,7 +2612,7 @@ nsImapIncomingServer::StartPopulatingWithUri(nsIMsgWindow *aMsgWindow, PRBool aF
to get path from uri, skip over imap://user@host + 1 (for the /)
*/
const char *path = uri + serverUri.Length() + 1;
return imapService->GetListOfFoldersWithPath(this, aMsgWindow, path);
return imapService->GetListOfFoldersWithPath(this, aMsgWindow, nsDependentCString(path));
}
NS_IMETHODIMP
@@ -2827,9 +2826,9 @@ nsImapIncomingServer::SubscribeToFolder(const nsAString& aName, PRBool subscribe
NS_ENSURE_SUCCESS(rv, rv);
if (subscribe)
rv = imapService->SubscribeFolder(thread, msgFolder, unicodeName.get(), nsnull, aUri);
rv = imapService->SubscribeFolder(thread, msgFolder, unicodeName, nsnull, aUri);
else
rv = imapService->UnsubscribeFolder(thread, msgFolder, unicodeName.get(), nsnull, nsnull);
rv = imapService->UnsubscribeFolder(thread, msgFolder, unicodeName, nsnull, nsnull);
return rv;
}

View File

@@ -837,7 +837,7 @@ NS_IMETHODIMP nsImapMailFolder::CreateSubfolder(const nsAString& folderName, nsI
nsCOMPtr<nsIImapService> imapService = do_GetService(NS_IMAPSERVICE_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv,rv);
return imapService->CreateFolder(m_thread, this, nsPromiseFlatString(folderName).get(), this, nsnull);
return imapService->CreateFolder(m_thread, this, folderName, this, nsnull);
}
NS_IMETHODIMP nsImapMailFolder::CreateClientSubfolderInfo(const nsACString& folderName, PRUnichar hierarchyDelimiter, PRInt32 flags, PRBool suppressNotification)
@@ -1027,7 +1027,7 @@ NS_IMETHODIMP nsImapMailFolder::CreateStorageIfMissing(nsIUrlListener* urlListen
nsCOMPtr<nsIImapService> imapService = do_GetService(NS_IMAPSERVICE_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr <nsIURI> uri;
imapService->EnsureFolderExists(m_thread, msgParent, folderName.get(), urlListener, getter_AddRefs(uri));
imapService->EnsureFolderExists(m_thread, msgParent, folderName, urlListener, getter_AddRefs(uri));
}
return rv;
}
@@ -1474,7 +1474,7 @@ NS_IMETHODIMP nsImapMailFolder::Rename (const nsAString& newName, nsIMsgWindow *
nsCOMPtr<nsIImapService> imapService = do_GetService(NS_IMAPSERVICE_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv,rv);
return imapService->RenameLeaf(m_thread, this, nsPromiseFlatString(newName).get(), this, msgWindow, nsnull);
return imapService->RenameLeaf(m_thread, this, newName, this, msgWindow, nsnull);
}
NS_IMETHODIMP nsImapMailFolder::RecursiveCloseActiveConnections(nsIImapIncomingServer *incomingImapServer)
@@ -2977,7 +2977,7 @@ NS_IMETHODIMP nsImapMailFolder::EndCopy(PRBool copySucceeded)
copySupport = do_QueryInterface(m_copyState);
rv = imapService->AppendMessageFromFile(m_thread,
m_copyState->m_tmpFile,
this, "", PR_TRUE,
this, EmptyCString(), PR_TRUE,
m_copyState->m_selectedState,
urlListener, nsnull,
copySupport,
@@ -3289,7 +3289,7 @@ NS_IMETHODIMP nsImapMailFolder::SetImapFlags(const char *uids, PRInt32 flags, ns
nsCOMPtr<nsIImapService> imapService = do_GetService(NS_IMAPSERVICE_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv,rv);
return imapService->SetMessageFlags(m_thread, this, this, url, uids, flags, PR_TRUE);
return imapService->SetMessageFlags(m_thread, this, this, url, nsCAutoString(uids), flags, PR_TRUE);
}
// "this" is the parent folder
@@ -3298,7 +3298,7 @@ NS_IMETHODIMP nsImapMailFolder::PlaybackOfflineFolderCreate(const nsAString& aFo
nsresult rv;
nsCOMPtr<nsIImapService> imapService = do_GetService(NS_IMAPSERVICE_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv,rv);
return imapService->CreateFolder(m_thread, this, nsPromiseFlatString(aFolderName).get(), this, url);
return imapService->CreateFolder(m_thread, this, aFolderName, this, url);
}
NS_IMETHODIMP nsImapMailFolder::ReplayOfflineMoveCopy(nsMsgKey *msgKeys, PRUint32 numKeys, PRBool isMove, nsIMsgFolder *aDstFolder,
@@ -3312,7 +3312,7 @@ NS_IMETHODIMP nsImapMailFolder::ReplayOfflineMoveCopy(nsMsgKey *msgKeys, PRUint3
AllocateUidStringFromKeys(msgKeys, numKeys, uids);
rv = imapService->OnlineMessageCopy(m_thread,
this,
uids.get(),
uids,
aDstFolder,
PR_TRUE,
isMove,
@@ -3342,11 +3342,10 @@ NS_IMETHODIMP nsImapMailFolder::StoreImapFlags(PRInt32 flags, PRBool addFlags,
AllocateUidStringFromKeys(keys, numKeys, msgIds);
if (addFlags)
imapService->AddMessageFlags(m_thread, this, aUrlListener ? aUrlListener : this,
nsnull, msgIds.get(), flags, PR_TRUE);
nsnull, msgIds, flags, PR_TRUE);
else
imapService->SubtractMessageFlags(m_thread, this, aUrlListener ? aUrlListener : this,
nsnull, msgIds.get(), flags,
PR_TRUE);
nsnull, msgIds, flags, PR_TRUE);
}
else
{
@@ -3509,7 +3508,7 @@ NS_IMETHODIMP nsImapMailFolder::IssueCommandOnMsgs(const nsACString& command, co
nsresult rv;
nsCOMPtr<nsIImapService> imapService = do_GetService(NS_IMAPSERVICE_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv,rv);
return imapService->IssueCommandOnMsgs(m_thread, this, aWindow, nsPromiseFlatCString(command).get(), uids, url);
return imapService->IssueCommandOnMsgs(m_thread, this, aWindow, command, nsDependentCString(uids), url);
}
NS_IMETHODIMP nsImapMailFolder::FetchCustomMsgAttribute(const nsACString& attribute, const char *uids, nsIMsgWindow *aWindow, nsIURI **url)
@@ -3518,7 +3517,7 @@ NS_IMETHODIMP nsImapMailFolder::FetchCustomMsgAttribute(const nsACString& attrib
nsCOMPtr<nsIImapService> imapService = do_GetService(NS_IMAPSERVICE_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv,rv);
return imapService->FetchCustomMsgAttribute(m_thread, this, aWindow, nsPromiseFlatCString(attribute).get(), uids, url);
return imapService->FetchCustomMsgAttribute(m_thread, this, aWindow, attribute, nsDependentCString(uids), url);
}
nsresult nsImapMailFolder::MoveIncorporatedMessage(nsIMsgDBHdr *mailHdr,
@@ -3821,7 +3820,7 @@ NS_IMETHODIMP nsImapMailFolder::DownloadMessagesForOffline(nsISupportsArray *mes
return rv;
}
return imapService->DownloadMessagesForOffline(messageIds.get(), this, this, window);
return imapService->DownloadMessagesForOffline(messageIds, this, this, window);
}
NS_IMETHODIMP nsImapMailFolder::DownloadAllForOffline(nsIUrlListener *listener, nsIMsgWindow *msgWindow)
@@ -3972,7 +3971,7 @@ nsImapMailFolder::OnlineCopyCompleted(nsIImapProtocol *aProtocol, ImapOnlineCopy
nsCOMPtr<nsIImapService> imapService = do_GetService(NS_IMAPSERVICE_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv,rv);
return imapService->AddMessageFlags(m_thread, this, nsnull, nsnull,
messageIds.get(),
messageIds,
kImapMsgDeletedFlag,
PR_TRUE);
}
@@ -6415,7 +6414,7 @@ nsImapMailFolder::CopyMessages(nsIMsgFolder* srcFolder,
copySupport = do_QueryInterface(m_copyState);
rv = imapService->OnlineMessageCopy(m_thread,
srcFolder, messageIds.get(),
srcFolder, messageIds,
this, PR_TRUE, isMove,
urlListener, nsnull,
copySupport, msgWindow);
@@ -6510,7 +6509,7 @@ nsImapFolderCopyState::StartNextCopy()
return imapService->EnsureFolderExists(NS_GetCurrentThread(),
m_destParent,
folderName.get(),
folderName,
this, nsnull);
}
@@ -6834,7 +6833,7 @@ nsImapMailFolder::CopyFileMessage(nsIFile* file,
if (!isDraftOrTemplate)
m_copyState->m_totalCount = 1;
rv = imapService->AppendMessageFromFile(m_thread, file, this,
messageId.get(),
messageId,
PR_TRUE, isDraftOrTemplate,
urlListener, nsnull,
copySupport,
@@ -7259,7 +7258,7 @@ NS_IMETHODIMP nsImapMailFolder::PerformExpand(nsIMsgWindow *aMsgWindow)
nsCOMPtr<nsIImapService> imapService = do_GetService(NS_IMAPSERVICE_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
rv = imapService->DiscoverChildren(m_thread, this, this,
m_onlineFolderName.get(),
m_onlineFolderName,
nsnull);
}
return rv;
@@ -7580,8 +7579,8 @@ nsImapMailFolder::StoreCustomKeywords(nsIMsgWindow *aMsgWindow, const nsACString
NS_ENSURE_SUCCESS(rv, rv);
nsCAutoString msgIds;
AllocateUidStringFromKeys(aKeysToStore, aNumKeys, msgIds);
return imapService->StoreCustomKeywords(m_thread, this, aMsgWindow, nsPromiseFlatCString(aFlagsToAdd).get(),
nsPromiseFlatCString(aFlagsToSubtract).get(), msgIds.get(), _retval);
return imapService->StoreCustomKeywords(m_thread, this, aMsgWindow, aFlagsToAdd,
aFlagsToSubtract, msgIds, _retval);
}
NS_IMETHODIMP nsImapMailFolder::NotifyIfNewMail()
@@ -7886,7 +7885,7 @@ NS_IMETHODIMP nsImapMailFolder::FetchMsgPreviewText(nsMsgKey *aKeysToFetch, PRUi
AllocateImapUidString(keysToFetchFromServer.GetArray(), msgCount,
nsnull, messageIds);
rv = imapService->GetBodyStart(m_thread, this, aUrlListener,
messageIds.get(), 2048, nsnull);
messageIds, 2048, nsnull);
*aAsyncResults = PR_TRUE; // the preview text will be available async...
}
return NS_OK;

File diff suppressed because it is too large Load Diff

View File

@@ -63,99 +63,87 @@ class nsImapService : public nsIImapService,
public nsIContentHandler
{
public:
nsImapService();
virtual ~nsImapService();
NS_DECL_ISUPPORTS
NS_DECL_NSIMSGPROTOCOLINFO
////////////////////////////////////////////////////////////////////////////////////////
// we suppport the nsIImapService interface
////////////////////////////////////////////////////////////////////////////////////////
NS_DECL_NSIIMAPSERVICE
////////////////////////////////////////////////////////////////////////////////////////
// we suppport the nsIMsgMessageService Interface
////////////////////////////////////////////////////////////////////////////////////////
NS_DECL_NSIMSGMESSAGESERVICE
////////////////////////////////////////////////////////////////////////////////////////
// we suppport the nsIProtocolHandler interface
////////////////////////////////////////////////////////////////////////////////////////
NS_DECL_NSIPROTOCOLHANDLER
NS_DECL_NSIMSGMESSAGEFETCHPARTSERVICE
NS_DECL_NSICONTENTHANDLER
protected:
PRUnichar GetHierarchyDelimiter(nsIMsgFolder* aMsgFolder);
nsresult GetFolderName(nsIMsgFolder* aImapFolder,
char **folderName);
nsresult CreateStartOfImapUrl(const char * aImapURI /* a RDF URI for the current message / folder, can be null */,
nsIImapUrl **imapUrl,
nsIMsgFolder* aImapFolder,
nsIUrlListener * aUrlListener,
nsCString & urlSpec,
PRUnichar GetHierarchyDelimiter(nsIMsgFolder *aMsgFolder);
nsresult GetFolderName(nsIMsgFolder *aImapFolder, nsACString &aFolderName);
nsresult CreateStartOfImapUrl(const nsACString &aImapURI, // a RDF URI for the current message/folder, can be empty
nsIImapUrl **imapUrl,
nsIMsgFolder *aImapFolder,
nsIUrlListener *aUrlListener,
nsACString &urlSpec,
PRUnichar &hierarchyDelimiter);
nsresult GetImapConnectionAndLoadUrl(nsIEventTarget* aClientEventTarget,
nsIImapUrl* aImapUrl,
nsISupports* aConsumer,
nsIURI** aURL);
nsresult SetImapUrlSink(nsIMsgFolder* aMsgFolder,
nsIImapUrl* aImapUrl);
nsresult FetchMimePart(nsIImapUrl * aImapUrl,
nsImapAction aImapAction,
nsIMsgFolder * aImapMailFolder,
nsIImapMessageSink * aImapMessage,
nsIURI ** aURL,
nsISupports * aDisplayConsumer,
const char *messageIdentifierList,
const char *mimePart);
nsresult FolderCommand(nsIEventTarget * clientEventTarget,
nsIMsgFolder * imapMailFolder,
nsIUrlListener * urlListener,
const char *command,
nsImapAction imapAction,
nsIURI ** url);
nsresult ChangeFolderSubscription(nsIEventTarget* eventTarget,
nsIMsgFolder* folder,
const PRUnichar* folderName,
const char *command,
nsIUrlListener* urlListener, nsIURI** url);
nsresult DiddleFlags(nsIEventTarget * aClientEventTarget,
nsIMsgFolder * aImapMailFolder,
nsIUrlListener * aUrlListener,
nsIURI ** aURL,
const char *messageIdentifierList,
nsresult GetImapConnectionAndLoadUrl(nsIEventTarget *aClientEventTarget,
nsIImapUrl *aImapUrl,
nsISupports *aConsumer,
nsIURI **aURL);
nsresult SetImapUrlSink(nsIMsgFolder *aMsgFolder, nsIImapUrl *aImapUrl);
nsresult FetchMimePart(nsIImapUrl *aImapUrl,
nsImapAction aImapAction,
nsIMsgFolder *aImapMailFolder,
nsIImapMessageSink *aImapMessage,
nsIURI **aURL,
nsISupports *aDisplayConsumer,
const nsACString &messageIdentifierList,
const nsACString &mimePart);
nsresult FolderCommand(nsIEventTarget *clientEventTarget,
nsIMsgFolder *imapMailFolder,
nsIUrlListener *urlListener,
const char *aCommand,
nsImapAction imapAction,
nsIURI **url);
nsresult ChangeFolderSubscription(nsIEventTarget *eventTarget,
nsIMsgFolder *folder,
const nsAString &folderName,
const char *aCommand,
nsIUrlListener *urlListener,
nsIURI **url);
nsresult DiddleFlags(nsIEventTarget *aClientEventTarget,
nsIMsgFolder *aImapMailFolder,
nsIUrlListener *aUrlListener,
nsIURI **aURL,
const nsACString &messageIdentifierList,
const char *howToDiddle,
imapMessageFlagsType flags,
PRBool messageIdsAreUID);
nsresult OfflineAppendFromFile(nsIFile* aFile,
nsresult OfflineAppendFromFile(nsIFile *aFile,
nsIURI *aUrl,
nsIMsgFolder* aDstFolder,
const char* messageId, // te be replaced
nsIMsgFolder *aDstFolder,
const nsACString &messageId, // to be replaced
PRBool inSelectedState, // needs to be in
nsIUrlListener* aListener,
nsIURI** aURL,
nsISupports* aCopyState);
nsIUrlListener *aListener,
nsIURI **aURL,
nsISupports *aCopyState);
nsresult GetServerFromUrl(nsIImapUrl *aImapUrl, nsIMsgIncomingServer **aServer);
// just a little helper method...maybe it should be a macro? which helps break down a imap message uri
// into the folder and message key equivalents
nsresult DecomposeImapURI(const char * aMessageURI, nsIMsgFolder ** aFolder, char ** msgKey);
nsresult DecomposeImapURI(const char * aMessageURI, nsIMsgFolder ** aFolder, nsMsgKey *msgKey);
nsresult DecomposeImapURI(const nsACString &aMessageURI, nsIMsgFolder **aFolder, nsACString &msgKey);
nsresult DecomposeImapURI(const nsACString &aMessageURI, nsIMsgFolder **aFolder, nsMsgKey *msgKey);
PRBool mPrintingOperation; // Flag for printing operations
// handle to the cache session for imap.....
nsCOMPtr<nsICacheSession> mCacheSession;
nsCOMPtr<nsICacheSession> mCacheSession; // handle to the cache session for imap.....
PRBool mPrintingOperation; // Flag for printing operations
};
#endif /* nsImapService_h___ */

View File

@@ -185,14 +185,15 @@ nsImapMoveCopyMsgTxn::UndoTransaction(void)
CheckForToggleDelete(srcFolder, m_srcKeyArray.GetAt(0), &deletedMsgs);
if (deletedMsgs)
rv = imapService->SubtractMessageFlags(
m_eventTarget, srcFolder, srcListener, nsnull,
m_srcMsgIdString.get(), kImapMsgDeletedFlag,
rv = imapService->SubtractMessageFlags(m_eventTarget, srcFolder,
srcListener, nsnull,
m_srcMsgIdString,
kImapMsgDeletedFlag,
m_idsAreUids);
else
rv = imapService->AddMessageFlags(m_eventTarget, srcFolder,
srcListener, nsnull,
m_srcMsgIdString.get(),
m_srcMsgIdString,
kImapMsgDeletedFlag,
m_idsAreUids);
if (NS_FAILED(rv))
@@ -201,7 +202,7 @@ nsImapMoveCopyMsgTxn::UndoTransaction(void)
if (deleteModel != nsMsgImapDeleteModels::IMAPDelete)
rv = imapService->GetHeaders(m_eventTarget, srcFolder,
srcListener, nsnull,
m_srcMsgIdString.get(),
m_srcMsgIdString,
PR_TRUE);
}
}
@@ -221,7 +222,7 @@ nsImapMoveCopyMsgTxn::UndoTransaction(void)
if (NS_FAILED(rv)) return rv;
rv = imapService->AddMessageFlags(m_eventTarget, dstFolder,
dstListener, nsnull,
m_dstMsgIdString.get(),
m_dstMsgIdString,
kImapMsgDeletedFlag,
m_idsAreUids);
}
@@ -272,16 +273,20 @@ nsImapMoveCopyMsgTxn::RedoTransaction(void)
if (NS_FAILED(rv))
return rv;
if (deletedMsgs)
{
rv = imapService->SubtractMessageFlags(m_eventTarget, srcFolder,
srcListener, nsnull,
m_srcMsgIdString.get(), kImapMsgDeletedFlag,
m_srcMsgIdString, kImapMsgDeletedFlag,
m_idsAreUids);
}
else
{
rv = imapService->AddMessageFlags(m_eventTarget, srcFolder,
srcListener, nsnull, m_srcMsgIdString.get(),
srcListener, nsnull, m_srcMsgIdString,
kImapMsgDeletedFlag, m_idsAreUids);
}
}
}
if (!m_dstMsgIdString.IsEmpty())
{
nsCOMPtr<nsIMsgFolder> dstFolder = do_QueryReferent(m_dstFolder, &rv);
@@ -300,7 +305,7 @@ nsImapMoveCopyMsgTxn::RedoTransaction(void)
return rv;
rv = imapService->SubtractMessageFlags(m_eventTarget, dstFolder,
dstListener, nsnull,
m_dstMsgIdString.get(),
m_dstMsgIdString,
kImapMsgDeletedFlag,
m_idsAreUids);
if (NS_FAILED(rv))
@@ -308,11 +313,13 @@ nsImapMoveCopyMsgTxn::RedoTransaction(void)
nsMsgImapDeleteModel deleteModel;
rv = GetImapDeleteModel(dstFolder, &deleteModel);
if (NS_FAILED(rv) || deleteModel == nsMsgImapDeleteModels::MoveToTrash)
{
rv = imapService->GetHeaders(m_eventTarget, dstFolder,
dstListener, nsnull,
m_dstMsgIdString.get(),
m_dstMsgIdString,
PR_TRUE);
}
}
return rv;
}

View File

@@ -181,14 +181,14 @@ nsLocalMoveCopyMsgTxn::UndoImapDeleteFlag(nsIMsgFolder* folder,
if (!deleteFlag)
rv =imapService->AddMessageFlags(thread, folder,
urlListener, nsnull,
msgIds.get(),
msgIds,
kImapMsgDeletedFlag,
PR_TRUE);
else
rv = imapService->SubtractMessageFlags(thread,
folder,
urlListener, nsnull,
msgIds.get(),
msgIds,
kImapMsgDeletedFlag,
PR_TRUE);
if (NS_SUCCEEDED(rv) && m_msgWindow)