зеркало из https://github.com/mozilla/pjs.git
fix 335877 imap subscribe ui broken on servers with non / hierarchy delimiter, sr=mscott
This commit is contained in:
Родитель
de0fa51740
Коммит
6c24b6506e
|
@ -2675,43 +2675,6 @@ NS_IMETHODIMP nsImapIncomingServer::OnLogonRedirectionReply(const PRUnichar *pHo
|
|||
return rv;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsImapIncomingServer::SetDelimiterFromHierarchyDelimiter()
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
nsCOMPtr<nsIImapService> imapService = do_GetService(kImapServiceCID, &rv);
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
if (!imapService) return NS_ERROR_FAILURE;
|
||||
|
||||
nsCOMPtr<nsIMsgFolder> rootFolder;
|
||||
rv = GetRootFolder(getter_AddRefs(rootFolder));
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
|
||||
nsCOMPtr<nsIMsgImapMailFolder> rootMsgFolder = do_QueryInterface(rootFolder, &rv);
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
if (!rootMsgFolder) return NS_ERROR_FAILURE;
|
||||
|
||||
PRUnichar delimiter = '/';
|
||||
rv = rootMsgFolder->GetHierarchyDelimiter(&delimiter);
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
|
||||
#ifdef DEBUG_seth
|
||||
printf("setting delimiter to %c\n",char(delimiter));
|
||||
#endif
|
||||
if (delimiter == kOnlineHierarchySeparatorUnknown) {
|
||||
delimiter = '/';
|
||||
#ifdef DEBUG_seth
|
||||
printf("..no, override delimiter to %c\n",char(delimiter));
|
||||
#endif
|
||||
}
|
||||
|
||||
rv = SetDelimiter(char(delimiter));
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsImapIncomingServer::StartPopulatingWithUri(nsIMsgWindow *aMsgWindow, PRBool aForceToServer /*ignored*/, const char *uri)
|
||||
{
|
||||
|
@ -2726,7 +2689,8 @@ nsImapIncomingServer::StartPopulatingWithUri(nsIMsgWindow *aMsgWindow, PRBool aF
|
|||
rv = mInner->StartPopulatingWithUri(aMsgWindow, aForceToServer, uri);
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
|
||||
rv = SetDelimiterFromHierarchyDelimiter();
|
||||
// imap always uses the canonical delimiter form of paths for subscribe ui.
|
||||
rv = SetDelimiter('/');
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
|
||||
rv = SetShowFullName(PR_FALSE);
|
||||
|
@ -2766,7 +2730,8 @@ nsImapIncomingServer::StartPopulating(nsIMsgWindow *aMsgWindow, PRBool aForceToS
|
|||
rv = mInner->StartPopulating(aMsgWindow, aForceToServer);
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
|
||||
rv = SetDelimiterFromHierarchyDelimiter();
|
||||
// imap always uses the canonical delimiter form of paths for subscribe ui.
|
||||
rv = SetDelimiter('/');
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
|
||||
rv = SetShowFullName(PR_FALSE);
|
||||
|
|
|
@ -113,7 +113,6 @@ protected:
|
|||
const char *GetPFCName();
|
||||
nsresult GetPFCForStringId(PRBool createIfMissing, PRInt32 stringId, nsIMsgFolder **aFolder);
|
||||
private:
|
||||
nsresult SetDelimiterFromHierarchyDelimiter();
|
||||
nsresult SubscribeToFolder(const PRUnichar *aName, PRBool subscribe);
|
||||
nsresult GetImapConnection (nsIEventQueue* aEventQueue,
|
||||
nsIImapUrl* aImapUrl,
|
||||
|
|
Загрузка…
Ссылка в новой задаче