зеркало из https://github.com/mozilla/gecko-dev.git
Add and Remove FolderListeners.
This commit is contained in:
Родитель
d419f08699
Коммит
510b1c3f03
|
@ -39,7 +39,8 @@ nsMsgFolder::nsMsgFolder(void)
|
|||
mNumUnreadMessages(-1), mNumTotalMessages(0),
|
||||
mCsid(0),
|
||||
mDepth(0),
|
||||
mPrefFlags(0)
|
||||
mPrefFlags(0),
|
||||
mListeners(nsnull)
|
||||
{
|
||||
// NS_INIT_REFCNT(); done by superclass
|
||||
|
||||
|
@ -72,6 +73,14 @@ nsMsgFolder::~nsMsgFolder(void)
|
|||
|
||||
NS_RELEASE(mSubFolders);
|
||||
}
|
||||
|
||||
if (mListeners) {
|
||||
for (PRInt32 i = mListeners->Count() - 1; i >= 0; --i) {
|
||||
mListeners->RemoveElementAt(i);
|
||||
}
|
||||
NS_RELEASE(mListeners);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
NS_IMPL_ISUPPORTS_INHERITED(nsMsgFolder, nsRDFResource, nsIMsgFolder)
|
||||
|
@ -125,6 +134,30 @@ nsMsgFolder::GetSubFolders(nsIEnumerator* *result)
|
|||
return mSubFolders->Enumerate(result);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgFolder::AddFolderListener(nsIFolderListener * listener)
|
||||
{
|
||||
nsresult rv;
|
||||
if (! mListeners)
|
||||
{
|
||||
rv = NS_NewISupportsArray(&mListeners);
|
||||
if (!NS_SUCCEEDED(rv))
|
||||
return rv;
|
||||
}
|
||||
mListeners->AppendElement(listener);
|
||||
return NS_OK;
|
||||
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgFolder::RemoveFolderListener(nsIFolderListener * listener)
|
||||
{
|
||||
if (! mListeners)
|
||||
return NS_OK;
|
||||
mListeners->RemoveElement(listener);
|
||||
return NS_OK;
|
||||
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMsgFolder::GetMessages(nsIEnumerator* *result)
|
||||
{
|
||||
|
@ -405,7 +438,7 @@ NS_IMETHODIMP nsMsgFolder::SetName(char * name)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgFolder::GetChildNamed(char* name, nsISupports* *result)
|
||||
NS_IMETHODIMP nsMsgFolder::GetChildNamed(const char* name, nsISupports* *result)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
@ -590,10 +623,10 @@ NS_IMETHODIMP nsMsgFolder::CreateSubfolder(const char *, nsIMsgFolder**, PRUint3
|
|||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsMsgFolder::Rename(char *name)
|
||||
NS_IMETHODIMP nsMsgFolder::Rename(const char *name)
|
||||
{
|
||||
nsresult status = NS_OK;
|
||||
status = SetName(name);
|
||||
status = SetName((char*)name);
|
||||
//After doing a SetName we need to make sure that broadcasting this message causes a
|
||||
//new sort to happen.
|
||||
#ifdef HAVE_MASTER
|
||||
|
@ -610,7 +643,7 @@ NS_IMETHODIMP nsMsgFolder::Adopt(const nsIMsgFolder *srcFolder, PRUint32* outPos
|
|||
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgFolder::ContainsChildNamed(char *name, PRBool* containsChild)
|
||||
NS_IMETHODIMP nsMsgFolder::ContainsChildNamed(const char *name, PRBool* containsChild)
|
||||
{
|
||||
nsIMsgFolder *child;
|
||||
|
||||
|
@ -703,7 +736,7 @@ NS_IMETHODIMP nsMsgFolder::IsParentOf(nsIMsgFolder *child, PRBool deep, PRBool *
|
|||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsMsgFolder::GenerateUniqueSubfolderName(char *prefix, nsIMsgFolder *otherFolder,
|
||||
NS_IMETHODIMP nsMsgFolder::GenerateUniqueSubfolderName(const char *prefix, nsIMsgFolder *otherFolder,
|
||||
char **name)
|
||||
{
|
||||
if(!name)
|
||||
|
|
|
@ -55,9 +55,12 @@ public:
|
|||
NS_IMETHOD GetURI(char* *name) { return nsRDFResource::GetValue((const char**)&name); }
|
||||
NS_IMETHOD GetName(char **name);
|
||||
NS_IMETHOD SetName(char *name);
|
||||
NS_IMETHOD GetChildNamed(char *name, nsISupports* *result);
|
||||
NS_IMETHOD GetChildNamed(const char *name, nsISupports* *result);
|
||||
NS_IMETHOD GetParent(nsIFolder* *parent);
|
||||
NS_IMETHOD GetSubFolders(nsIEnumerator* *result);
|
||||
NS_IMETHOD AddFolderListener(nsIFolderListener * listener);
|
||||
NS_IMETHOD RemoveFolderListener(nsIFolderListener * listener);
|
||||
|
||||
|
||||
// nsIMsgFolder methods:
|
||||
NS_IMETHOD AddUnique(nsISupports* element);
|
||||
|
@ -139,14 +142,14 @@ public:
|
|||
|
||||
NS_IMETHOD CreateSubfolder(const char *leafNameFromuser, nsIMsgFolder** outFolder, PRUint32* outPos);
|
||||
|
||||
NS_IMETHOD Rename(char *name);
|
||||
NS_IMETHOD Rename(const char *name);
|
||||
NS_IMETHOD Adopt(const nsIMsgFolder *srcFolder, PRUint32*);
|
||||
|
||||
NS_IMETHOD ContainsChildNamed(char *name, PRBool *containsChild);
|
||||
NS_IMETHOD ContainsChildNamed(const char *name, PRBool *containsChild);
|
||||
NS_IMETHOD FindParentOf(nsIMsgFolder * aFolder, nsIMsgFolder ** aParent);
|
||||
NS_IMETHOD IsParentOf(nsIMsgFolder *, PRBool deep, PRBool *isParent);
|
||||
|
||||
NS_IMETHOD GenerateUniqueSubfolderName(char *prefix, nsIMsgFolder *otherFolder,
|
||||
NS_IMETHOD GenerateUniqueSubfolderName(const char *prefix, nsIMsgFolder *otherFolder,
|
||||
char **name);
|
||||
|
||||
NS_IMETHOD GetDepth(PRUint32 *depth);
|
||||
|
@ -273,6 +276,8 @@ public:
|
|||
NS_IMETHOD GetHostName(char **hostName);
|
||||
|
||||
virtual nsresult GetDBFolderInfoAndDB(nsDBFolderInfo **folderInfo, nsMsgDatabase **db) = 0;
|
||||
NS_IMETHOD DeleteMessage(nsIMessage *message) = 0;
|
||||
|
||||
|
||||
protected:
|
||||
nsString mName;
|
||||
|
@ -282,6 +287,7 @@ protected:
|
|||
tried to find out.) */
|
||||
PRInt32 mNumTotalMessages; /* count of existing messages. */
|
||||
nsISupportsArray *mSubFolders;
|
||||
nsISupportsArray *mListeners;
|
||||
#ifdef HAVE_MASTER
|
||||
MSG_Master *mMaster;
|
||||
#endif
|
||||
|
|
Загрузка…
Ссылка в новой задаче