Added a mail charset menu cache support, bug 28869,r=cata.
git-svn-id: svn://10.0.0.236/trunk@74173 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
97a395aadf
commit
4861d70cd9
@ -33,4 +33,5 @@
|
||||
interface nsICurrentCharsetListener : nsISupports
|
||||
{
|
||||
void SetCurrentCharset(in wstring charset);
|
||||
void SetCurrentMailCharset(in wstring charset);
|
||||
};
|
||||
|
||||
@ -177,7 +177,7 @@ private:
|
||||
nsresult AddSeparatorToContainer(nsIRDFService * aRDFServ,
|
||||
nsICharsetConverterManager2 * aCCMan, nsIRDFContainer * aContainer);
|
||||
nsresult AddCharsetToCache(nsICharsetConverterManager2 * aCCMan,
|
||||
nsIAtom * aCharset, nsVoidArray * aArray);
|
||||
nsIAtom * aCharset, nsVoidArray * aArray, nsIRDFResource * aRDFResource);
|
||||
|
||||
nsresult RemoveFlaggedCharsets(nsISupportsArray * aList,
|
||||
nsICharsetConverterManager2 * aCCMan, nsString * aProp);
|
||||
@ -198,6 +198,8 @@ public:
|
||||
|
||||
NS_IMETHOD SetCurrentCharset(const PRUnichar * aCharset);
|
||||
|
||||
NS_IMETHOD SetCurrentMailCharset(const PRUnichar * aCharset);
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Interface nsIRDFDataSource [declaration]
|
||||
|
||||
@ -986,7 +988,8 @@ nsresult nsCharsetMenu::AddSeparatorToContainer(
|
||||
nsresult nsCharsetMenu::AddCharsetToCache(
|
||||
nsICharsetConverterManager2 * aCCMan,
|
||||
nsIAtom * aCharset,
|
||||
nsVoidArray * aArray)
|
||||
nsVoidArray * aArray,
|
||||
nsIRDFResource * aRDFResource)
|
||||
{
|
||||
PRInt32 i;
|
||||
nsresult res = NS_OK;
|
||||
@ -999,7 +1002,7 @@ nsresult nsCharsetMenu::AddCharsetToCache(
|
||||
|
||||
nsCOMPtr<nsIRDFContainer> container;
|
||||
|
||||
res = NewRDFContainer(mInner, kNC_BrowserCharsetMenuRoot, getter_AddRefs(container));
|
||||
res = NewRDFContainer(mInner, aRDFResource, getter_AddRefs(container));
|
||||
if (NS_FAILED(res)) return res;
|
||||
|
||||
// XXX insert into first cache position, not at the end
|
||||
@ -1154,7 +1157,21 @@ NS_IMETHODIMP nsCharsetMenu::SetCurrentCharset(const PRUnichar * aCharset)
|
||||
res = ccMan->GetCharsetAtom(aCharset, getter_AddRefs(atom));
|
||||
if (NS_FAILED(res)) return res;
|
||||
|
||||
return AddCharsetToCache(ccMan, atom, &mBrowserMenu);
|
||||
return AddCharsetToCache(ccMan, atom, &mBrowserMenu, kNC_BrowserCharsetMenuRoot);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsCharsetMenu::SetCurrentMailCharset(const PRUnichar * aCharset)
|
||||
{
|
||||
nsresult res;
|
||||
|
||||
NS_WITH_SERVICE(nsICharsetConverterManager2, ccMan, kCharsetConverterManagerCID, &res);
|
||||
if (NS_FAILED(res)) return res;
|
||||
|
||||
nsCOMPtr<nsIAtom> atom;
|
||||
res = ccMan->GetCharsetAtom(aCharset, getter_AddRefs(atom));
|
||||
if (NS_FAILED(res)) return res;
|
||||
|
||||
return AddCharsetToCache(ccMan, atom, &mMailviewMenu, kNC_MailviewCharsetMenuRoot);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user