From 99b784ae09b6494f272fdbf73629441c57167688 Mon Sep 17 00:00:00 2001 From: "alecf%netscape.com" Date: Mon, 15 May 2000 00:01:22 +0000 Subject: [PATCH] add way to create a new search term from JS --- mailnews/base/search/public/nsIMsgFilter.idl | 2 +- mailnews/base/search/src/nsMsgFilter.cpp | 35 +++++--------------- 2 files changed, 10 insertions(+), 27 deletions(-) diff --git a/mailnews/base/search/public/nsIMsgFilter.idl b/mailnews/base/search/public/nsIMsgFilter.idl index ca55f5df03a3..b6172fdfe3c3 100644 --- a/mailnews/base/search/public/nsIMsgFilter.idl +++ b/mailnews/base/search/public/nsIMsgFilter.idl @@ -38,7 +38,6 @@ interface nsIMsgFilter : nsISupports { readonly attribute nsIMsgFilterList filterList; // owning filter list - readonly attribute long numTerms; void AddTerm(in nsMsgSearchAttribValue attrib, in nsMsgSearchOpValue op, in nsIMsgSearchValue value, @@ -54,6 +53,7 @@ interface nsIMsgFilter : nsISupports { void appendTerm(in nsIMsgSearchTerm term); + nsIMsgSearchTerm createTerm(); // this is the actual array of search terms, and is thus modifyable readonly attribute nsISupportsArray searchTerms; diff --git a/mailnews/base/search/src/nsMsgFilter.cpp b/mailnews/base/search/src/nsMsgFilter.cpp index 765ed6959dbe..eb4f0c8295e6 100644 --- a/mailnews/base/search/src/nsMsgFilter.cpp +++ b/mailnews/base/search/src/nsMsgFilter.cpp @@ -59,23 +59,7 @@ nsMsgFilter::~nsMsgFilter() { } -NS_IMPL_ADDREF(nsMsgFilter) -NS_IMPL_RELEASE(nsMsgFilter) - -NS_IMETHODIMP nsMsgFilter::QueryInterface(REFNSIID aIID, void** aResult) -{ - if (aResult == NULL) - return NS_ERROR_NULL_POINTER; - - if (aIID.Equals(NS_GET_IID(nsIMsgFilter)) || - aIID.Equals(NS_GET_IID(nsISupports))) - { - *aResult = NS_STATIC_CAST(nsMsgFilter*, this); - NS_ADDREF_THIS(); - return NS_OK; - } - return NS_NOINTERFACE; -} +NS_IMPL_ISUPPORTS1(nsMsgFilter, nsIMsgFilter) NS_IMETHODIMP nsMsgFilter::GetFilterType(nsMsgFilterTypeType *aResult) { @@ -148,18 +132,17 @@ NS_IMETHODIMP nsMsgFilter::AppendTerm(nsIMsgSearchTerm * aTerm) return m_termList->AppendElement(aTerm); } -NS_IMETHODIMP nsMsgFilter::GetNumTerms(PRInt32 *aResult) +NS_IMETHODIMP +nsMsgFilter::CreateTerm(nsIMsgSearchTerm **aResult) { - if (aResult == NULL) - return NS_ERROR_NULL_POINTER; - - PRUint32 count; - m_termList->Count(&count); - *aResult = count; - return NS_OK; + nsMsgSearchTerm *term = new nsMsgSearchTerm; + NS_ENSURE_TRUE(term, NS_ERROR_OUT_OF_MEMORY); + + *aResult = NS_STATIC_CAST(nsIMsgSearchTerm*,term); + NS_ADDREF(*aResult); + return NS_OK; } - NS_IMETHODIMP nsMsgFilter::GetTerm(PRInt32 termIndex, nsMsgSearchAttribValue *attrib, /* attribute for this term */ nsMsgSearchOpValue *op, /* operator e.g. opContains */