mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-12 04:45:45 +00:00
89698 r=suresh sr=bienvenu; Check if the newName for folder to be renamed has hierarchyDelimiter, if
so throw an alert. Also did some clean up in nsImapStringBundle.
This commit is contained in:
parent
f6b9a047d4
commit
a8c7eb79ae
@ -346,3 +346,7 @@
|
||||
## @name IMAP_PFC_SENT_MAIL
|
||||
## @loc None
|
||||
5064=Sent Mail
|
||||
|
||||
## @name IMAP_SPECIAL_CHAR
|
||||
## @loc None
|
||||
5065= The %c character is reserved on imap server. Please choose another name.
|
||||
|
@ -2182,8 +2182,10 @@ NS_IMETHODIMP nsImapIncomingServer::GetServerRequiresPasswordForBiff(PRBool *_re
|
||||
NS_IMETHODIMP nsImapIncomingServer::PromptForPassword(char ** aPassword,
|
||||
nsIMsgWindow * aMsgWindow)
|
||||
{
|
||||
PRUnichar *passwordTemplate = IMAPGetStringByID(IMAP_ENTER_PASSWORD_PROMPT);
|
||||
PRUnichar *passwordTitle = IMAPGetStringByID(IMAP_ENTER_PASSWORD_PROMPT_TITLE);
|
||||
nsXPIDLString passwordTemplate;
|
||||
IMAPGetStringByID(IMAP_ENTER_PASSWORD_PROMPT, getter_Copies(passwordTemplate));
|
||||
nsXPIDLString passwordTitle;
|
||||
IMAPGetStringByID(IMAP_ENTER_PASSWORD_PROMPT_TITLE, getter_Copies(passwordTitle));
|
||||
PRUnichar *passwordText = nsnull;
|
||||
nsXPIDLCString hostName;
|
||||
nsXPIDLCString userName;
|
||||
@ -2196,8 +2198,6 @@ NS_IMETHODIMP nsImapIncomingServer::PromptForPassword(char ** aPassword,
|
||||
nsresult rv = GetPasswordWithUI(passwordText, passwordTitle, aMsgWindow,
|
||||
&okayValue, aPassword);
|
||||
nsTextFormatter::smprintf_free(passwordText);
|
||||
nsCRT::free(passwordTemplate);
|
||||
nsCRT::free(passwordTitle);
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
@ -683,7 +683,8 @@ nsImapMailFolder::AlertSpecialFolderExists(nsIMsgWindow *msgWindow)
|
||||
nsresult rv = NS_OK;
|
||||
nsCOMPtr<nsIDocShell> docShell;
|
||||
msgWindow->GetRootDocShell(getter_AddRefs(docShell));
|
||||
PRUnichar *alertString = IMAPGetStringByID(IMAP_MAILBOX_ALREADY_EXISTS);
|
||||
nsXPIDLString alertString;
|
||||
IMAPGetStringByID(IMAP_MAILBOX_ALREADY_EXISTS, getter_Copies(alertString));
|
||||
if (!alertString) return rv;
|
||||
if (docShell)
|
||||
{
|
||||
@ -1178,6 +1179,33 @@ NS_IMETHODIMP nsImapMailFolder::Delete ()
|
||||
NS_IMETHODIMP nsImapMailFolder::Rename (const PRUnichar *newName, nsIMsgWindow *msgWindow )
|
||||
{
|
||||
nsresult rv = NS_ERROR_FAILURE;
|
||||
nsAutoString newNameStr(newName);
|
||||
if (newNameStr.FindChar(m_hierarchyDelimiter,0) != -1)
|
||||
{
|
||||
nsCOMPtr<nsIDocShell> docShell;
|
||||
if (msgWindow)
|
||||
msgWindow->GetRootDocShell(getter_AddRefs(docShell));
|
||||
if (docShell)
|
||||
{
|
||||
nsCOMPtr<nsIStringBundle> bundle;
|
||||
rv = IMAPGetStringBundle(getter_AddRefs(bundle));
|
||||
if (NS_SUCCEEDED(rv) && bundle)
|
||||
{
|
||||
const PRUnichar *formatStrings[] =
|
||||
{
|
||||
(const PRUnichar*) m_hierarchyDelimiter
|
||||
};
|
||||
nsXPIDLString alertString;
|
||||
rv = bundle->FormatStringFromID(IMAP_SPECIAL_CHAR,
|
||||
formatStrings, 1,
|
||||
getter_Copies(alertString));
|
||||
nsCOMPtr<nsIPrompt> dialog(do_GetInterface(docShell));
|
||||
if (dialog && alertString)
|
||||
dialog->Alert(nsnull, alertString);
|
||||
}
|
||||
}
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
nsCOMPtr <nsIImapIncomingServer> incomingImapServer;
|
||||
|
||||
GetImapIncomingServer(getter_AddRefs(incomingImapServer));
|
||||
@ -1979,8 +2007,9 @@ nsImapMailFolder::DeleteSubFolders(nsISupportsArray* folders, nsIMsgWindow *msgW
|
||||
deleteNoTrash = PR_TRUE;
|
||||
}
|
||||
|
||||
PRUnichar *confirmationStr = IMAPGetStringByID((!deleteNoTrash)
|
||||
? IMAP_MOVE_FOLDER_TO_TRASH : IMAP_DELETE_NO_TRASH);
|
||||
nsXPIDLString confirmationStr;
|
||||
IMAPGetStringByID(((!deleteNoTrash) ? IMAP_MOVE_FOLDER_TO_TRASH : IMAP_DELETE_NO_TRASH),
|
||||
getter_Copies(confirmationStr));
|
||||
|
||||
if (dialog && confirmationStr) {
|
||||
dialog->Confirm(nsnull, confirmationStr, &confirmed);
|
||||
@ -2008,9 +2037,6 @@ nsImapMailFolder::DeleteSubFolders(nsISupportsArray* folders, nsIMsgWindow *msgW
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
if (confirmationStr)
|
||||
nsCRT::free(confirmationStr);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4442,7 +4468,7 @@ NS_IMETHODIMP
|
||||
nsImapMailFolder::ProgressStatus(nsIImapProtocol* aProtocol,
|
||||
PRUint32 aMsgId, const PRUnichar *extraInfo)
|
||||
{
|
||||
PRUnichar *progressMsg = nsnull;
|
||||
PRUnichar *progressMsg=nsnull;
|
||||
|
||||
nsCOMPtr<nsIMsgIncomingServer> server;
|
||||
nsresult rv = GetServer(getter_AddRefs(server));
|
||||
@ -4453,7 +4479,7 @@ nsImapMailFolder::ProgressStatus(nsIImapProtocol* aProtocol,
|
||||
serverSink->GetImapStringByID(aMsgId, &progressMsg);
|
||||
}
|
||||
if (!progressMsg)
|
||||
progressMsg = IMAPGetStringByID(aMsgId);
|
||||
IMAPGetStringByID(aMsgId, &progressMsg);
|
||||
|
||||
if (aProtocol && progressMsg)
|
||||
{
|
||||
|
@ -34,41 +34,27 @@ static NS_DEFINE_CID(kStringBundleServiceCID, NS_STRINGBUNDLESERVICE_CID);
|
||||
#define IMAP_MSGS_URL "chrome://messenger/locale/imapMsgs.properties"
|
||||
|
||||
extern "C"
|
||||
PRUnichar *
|
||||
IMAPGetStringByID(PRInt32 stringID)
|
||||
nsresult
|
||||
IMAPGetStringByID(PRInt32 stringID, PRUnichar **aString)
|
||||
{
|
||||
nsresult res;
|
||||
char* propertyURL = NULL;
|
||||
nsString resultString; resultString.AssignWithConversion("???");
|
||||
|
||||
propertyURL = IMAP_MSGS_URL;
|
||||
|
||||
nsCOMPtr<nsIStringBundleService> sBundleService =
|
||||
do_GetService(kStringBundleServiceCID, &res);
|
||||
if (NS_SUCCEEDED(res) && (nsnull != sBundleService))
|
||||
{
|
||||
nsIStringBundle* sBundle = nsnull;
|
||||
res = sBundleService->CreateBundle(propertyURL, &sBundle);
|
||||
|
||||
if (NS_SUCCEEDED(res))
|
||||
{
|
||||
PRUnichar *ptrv = nsnull;
|
||||
res = sBundle->GetStringFromID(stringID, &ptrv);
|
||||
|
||||
NS_RELEASE(sBundle);
|
||||
|
||||
if (NS_FAILED(res))
|
||||
{
|
||||
resultString.AssignWithConversion("[StringID");
|
||||
resultString.AppendInt(stringID, 10);
|
||||
resultString.AppendWithConversion("?]");
|
||||
return resultString.ToNewUnicode();
|
||||
}
|
||||
|
||||
return ptrv;
|
||||
}
|
||||
}
|
||||
|
||||
return resultString.ToNewUnicode();
|
||||
nsresult res=NS_OK;
|
||||
nsCOMPtr <nsIStringBundle> sBundle;
|
||||
res = IMAPGetStringBundle(getter_AddRefs(sBundle));
|
||||
if (NS_SUCCEEDED(res) && sBundle)
|
||||
res = sBundle->GetStringFromID(stringID, aString);
|
||||
return res;
|
||||
}
|
||||
|
||||
nsresult
|
||||
IMAPGetStringBundle(nsIStringBundle **aBundle)
|
||||
{
|
||||
nsresult rv=NS_OK;
|
||||
nsCOMPtr<nsIStringBundleService> stringService = do_GetService(kStringBundleServiceCID, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
if (!stringService) return NS_ERROR_NULL_POINTER;
|
||||
nsCOMPtr<nsIStringBundle> stringBundle;
|
||||
rv = stringService->CreateBundle(IMAP_MSGS_URL, getter_AddRefs(stringBundle));
|
||||
*aBundle = stringBundle;
|
||||
NS_IF_ADDREF(*aBundle);
|
||||
return rv;
|
||||
}
|
||||
|
@ -22,9 +22,12 @@
|
||||
#ifndef _nsImapStringBundle_H__
|
||||
#define _nsImapStringBundle_H__
|
||||
|
||||
#include "nsIStringBundle.h"
|
||||
|
||||
NS_BEGIN_EXTERN_C
|
||||
|
||||
PRUnichar *IMAPGetStringByID(PRInt32 stringID);
|
||||
nsresult IMAPGetStringByID(PRInt32 stringID, PRUnichar **aString);
|
||||
nsresult IMAPGetStringBundle(nsIStringBundle **aBundle);
|
||||
|
||||
NS_END_EXTERN_C
|
||||
|
||||
@ -96,5 +99,5 @@ NS_END_EXTERN_C
|
||||
#define IMAP_PERSONAL_FILING_CABINET 5062
|
||||
#define IMAP_PFC_READ_MAIL 5063
|
||||
#define IMAP_PFC_SENT_MAIL 5064
|
||||
|
||||
#define IMAP_SPECIAL_CHAR 5065
|
||||
#endif /* _nsImapStringBundle_H__ */
|
||||
|
Loading…
Reference in New Issue
Block a user