author | eilers <eilers> | 2002-11-01 15:10:42 (UTC) |
---|---|---|
committer | eilers <eilers> | 2002-11-01 15:10:42 (UTC) |
commit | 28b70b2b7f8fa03ba0991fb73dccf7b46e5c3d1f (patch) (side-by-side diff) | |
tree | d5ead4aa63aed345ce406c7857ba1ec7813272db /libopie | |
parent | a098735b8749ead08c658792cc31f95e73045107 (diff) | |
download | opie-28b70b2b7f8fa03ba0991fb73dccf7b46e5c3d1f.zip opie-28b70b2b7f8fa03ba0991fb73dccf7b46e5c3d1f.tar.gz opie-28b70b2b7f8fa03ba0991fb73dccf7b46e5c3d1f.tar.bz2 |
Added regExp-search in database for all fields in a contact.
-rw-r--r-- | libopie/pim/ocontact.h | 4 | ||||
-rw-r--r-- | libopie/pim/ocontactaccess.cpp | 8 | ||||
-rw-r--r-- | libopie/pim/ocontactaccess.h | 8 | ||||
-rw-r--r-- | libopie/pim/ocontactaccessbackend.h | 7 | ||||
-rw-r--r-- | libopie/pim/ocontactaccessbackend_xml.h | 20 |
5 files changed, 43 insertions, 4 deletions
diff --git a/libopie/pim/ocontact.h b/libopie/pim/ocontact.h index 382ab94..038a59f 100644 --- a/libopie/pim/ocontact.h +++ b/libopie/pim/ocontact.h @@ -109,7 +109,3 @@ public: bool match( const QString ®exp ) const; - -// DON'T ATTEMPT TO USE THIS -#ifdef QTOPIA_INTERNAL_CONTACT_MRE bool match( const QRegExp ®exp ) const; -#endif diff --git a/libopie/pim/ocontactaccess.cpp b/libopie/pim/ocontactaccess.cpp index 2ca0283..f868b53 100644 --- a/libopie/pim/ocontactaccess.cpp +++ b/libopie/pim/ocontactaccess.cpp @@ -23,2 +23,5 @@ * $Log$ + * Revision 1.6 2002/11/01 15:10:42 eilers + * Added regExp-search in database for all fields in a contact. + * * Revision 1.5 2002/10/16 10:52:40 eilers @@ -122,2 +125,7 @@ bool OContactAccess::save () +ORecordList<OContact> OContactAccess::matchRegexp( const QRegExp &r ) const{ + QArray<int> matchingContacts = m_backEnd -> matchRegexp( r ); + return ( ORecordList<OContact>(matchingContacts, this) ); +} + const uint OContactAccess::querySettings() diff --git a/libopie/pim/ocontactaccess.h b/libopie/pim/ocontactaccess.h index da9c942..b4921d5 100644 --- a/libopie/pim/ocontactaccess.h +++ b/libopie/pim/ocontactaccess.h @@ -19,2 +19,5 @@ * $Log$ + * Revision 1.4 2002/11/01 15:10:42 eilers + * Added regExp-search in database for all fields in a contact. + * * Revision 1.3 2002/10/16 10:52:40 eilers @@ -50,2 +53,3 @@ * done by the backend. + * @see OPimAccessTemplate */ @@ -83,4 +87,8 @@ class OContactAccess: public QObject, public OPimAccessTemplate<OContact> ExactMatch = 0x0008, + MatchOne = 0x0010 // Only one Entry must match }; + + ORecordList<OContact> matchRegexp( const QRegExp &r )const; + /** Return all possible settings. diff --git a/libopie/pim/ocontactaccessbackend.h b/libopie/pim/ocontactaccessbackend.h index a651477..c898f61 100644 --- a/libopie/pim/ocontactaccessbackend.h +++ b/libopie/pim/ocontactaccessbackend.h @@ -21,2 +21,5 @@ * $Log$ + * Revision 1.3 2002/11/01 15:10:42 eilers + * Added regExp-search in database for all fields in a contact. + * * Revision 1.2 2002/10/07 17:34:24 eilers @@ -40,2 +43,4 @@ +#include "qregexp.h" + class OContactAccessBackend: public OPimAccessBackend<OContact> { @@ -60,2 +65,4 @@ class OContactAccessBackend: public OPimAccessBackend<OContact> { + virtual QArray<int> matchRegexp( const QRegExp &r ) const = 0; + /** Return all possible settings. diff --git a/libopie/pim/ocontactaccessbackend_xml.h b/libopie/pim/ocontactaccessbackend_xml.h index 12a75ba..f7e8207 100644 --- a/libopie/pim/ocontactaccessbackend_xml.h +++ b/libopie/pim/ocontactaccessbackend_xml.h @@ -19,2 +19,5 @@ * $Log$ + * Revision 1.5 2002/11/01 15:10:42 eilers + * Added regExp-search in database for all fields in a contact. + * * Revision 1.4 2002/10/16 10:52:40 eilers @@ -256,2 +259,19 @@ class OContactAccessBackend_XML : public OContactAccessBackend { } + + QArray<int> matchRegexp( const QRegExp &r ) const{ + QArray<int> m_currentQuery( m_contactList.count() ); + QValueListConstIterator<OContact> it; + uint arraycounter = 0; + + for( it = m_contactList.begin(); it != m_contactList.end(); ++it ){ + if ( (*it).match( r ) ){ + m_currentQuery[arraycounter++] = (*it).uid(); + } + + } + // Shrink to fit.. + m_currentQuery.resize(arraycounter); + + return m_currentQuery; + } |