-rw-r--r-- | library/backend/contact.cpp | 79 |
1 files changed, 47 insertions, 32 deletions
diff --git a/library/backend/contact.cpp b/library/backend/contact.cpp index a5f10ab..b10b19a 100644 --- a/library/backend/contact.cpp +++ b/library/backend/contact.cpp @@ -9,24 +9,26 @@ ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ +#define QTOPIA_INTERNAL_CONTACT_MRE + #include "contact.h" #include "vobject_p.h"
#include "qfiledirect_p.h"
#include <qpe/stringutil.h> #include <qpe/timeconversion.h> #include <qobject.h> #include <qregexp.h> #include <qstylesheet.h> #include <qfileinfo.h> @@ -377,117 +379,125 @@ void Contact::save( QString &buf ) const QStringList Contact::fields() { QStringList list; list.append( "Title" ); // Not Used! list.append( "FirstName" ); list.append( "MiddleName" ); list.append( "LastName" ); list.append( "Suffix" ); list.append( "FileAs" ); + list.append( "JobTitle" ); + list.append( "Department" ); + list.append( "Company" ); + list.append( "BusinessPhone" ); + list.append( "BusinessFax" ); + list.append( "BusinessMobile" ); + list.append( "DefaultEmail" ); list.append( "Emails" ); - list.append( "HomeStreet" ); - list.append( "HomeCity" ); - list.append( "HomeState" ); - list.append( "HomeZip" ); - list.append( "HomeCountry" ); list.append( "HomePhone" ); list.append( "HomeFax" ); list.append( "HomeMobile" ); - list.append( "HomeWebPage" ); - list.append( "Company" ); list.append( "BusinessStreet" ); list.append( "BusinessCity" ); list.append( "BusinessState" ); list.append( "BusinessZip" ); list.append( "BusinessCountry" ); + list.append( "BusinessPager" ); list.append( "BusinessWebPage" ); - list.append( "JobTitle" ); - list.append( "Department" ); + list.append( "Office" ); - list.append( "BusinessPhone" ); - list.append( "BusinessFax" ); - list.append( "BusinessMobile" ); - list.append( "BusinessPager" ); list.append( "Profession" ); list.append( "Assistant" ); list.append( "Manager" ); + list.append( "HomeStreet" ); + list.append( "HomeCity" ); + list.append( "HomeState" ); + list.append( "HomeZip" ); + list.append( "HomeCountry" ); + list.append( "HomeWebPage" ); + list.append( "Spouse" ); list.append( "Gender" ); list.append( "Birthday" ); list.append( "Anniversary" ); list.append( "Nickname" ); - list.append( "Children" ); + list.append( "Notes" ); + list.append( "Groups" ); return list; } QStringList Contact::trfields() { QStringList list; list.append( QObject::tr( "Name Title") ); list.append( QObject::tr( "First Name" ) ); list.append( QObject::tr( "Middle Name" ) ); list.append( QObject::tr( "Last Name" ) ); list.append( QObject::tr( "Suffix" ) ); list.append( QObject::tr( "File As" ) ); + list.append( QObject::tr( "Job Title" ) ); + list.append( QObject::tr( "Department" ) ); + list.append( QObject::tr( "Company" ) ); + list.append( QObject::tr( "Business Phone" ) ); + list.append( QObject::tr( "Business Fax" ) ); + list.append( QObject::tr( "Business Mobile" ) ); + list.append( QObject::tr( "Default Email" ) ); list.append( QObject::tr( "Emails" ) ); - list.append( QObject::tr( "Home Street" ) ); - list.append( QObject::tr( "Home City" ) ); - list.append( QObject::tr( "Home State" ) ); - list.append( QObject::tr( "Home Zip" ) ); - list.append( QObject::tr( "Home Country" ) ); list.append( QObject::tr( "Home Phone" ) ); list.append( QObject::tr( "Home Fax" ) ); list.append( QObject::tr( "Home Mobile" ) ); - list.append( QObject::tr( "Home Web Page" ) ); - list.append( QObject::tr( "Company" ) ); list.append( QObject::tr( "Business Street" ) ); list.append( QObject::tr( "Business City" ) ); list.append( QObject::tr( "Business State" ) ); list.append( QObject::tr( "Business Zip" ) ); list.append( QObject::tr( "Business Country" ) ); + list.append( QObject::tr( "Business Pager" ) ); list.append( QObject::tr( "Business WebPage" ) ); - list.append( QObject::tr( "Job Title" ) ); - list.append( QObject::tr( "Department" ) ); + list.append( QObject::tr( "Office" ) ); - list.append( QObject::tr( "Business Phone" ) ); - list.append( QObject::tr( "Business Fax" ) ); - list.append( QObject::tr( "Business Mobile" ) ); - list.append( QObject::tr( "Business Pager" ) ); list.append( QObject::tr( "Profession" ) ); list.append( QObject::tr( "Assistant" ) ); list.append( QObject::tr( "Manager" ) ); + list.append( QObject::tr( "Home Street" ) ); + list.append( QObject::tr( "Home City" ) ); + list.append( QObject::tr( "Home State" ) ); + list.append( QObject::tr( "Home Zip" ) ); + list.append( QObject::tr( "Home Country" ) ); + list.append( QObject::tr( "Home Web Page" ) ); + list.append( QObject::tr( "Spouse" ) ); list.append( QObject::tr( "Gender" ) ); list.append( QObject::tr( "Birthday" ) ); list.append( QObject::tr( "Anniversary" ) ); list.append( QObject::tr( "Nickname" ) ); - list.append( QObject::tr( "Children" ) ); + list.append( QObject::tr( "Notes" ) ); + list.append( QObject::tr( "Groups" ) ); return list; } void Contact::setEmails( const QString &v ) { replace( Qtopia::Emails, v ); if ( v.isEmpty() ) setDefaultEmail( QString::null ); } void Contact::setChildren( const QString &v ) @@ -620,25 +630,25 @@ static Contact parseVObject( VObject *obj ) VObjectIterator it; initPropIterator( &it, obj ); while( moreIteration( &it ) ) { VObject *o = nextVObject( &it ); QCString name = vObjectName( o ); QCString value = vObjectStringZValue( o ); if ( name == VCNameProp ) { VObjectIterator nit; initPropIterator( &nit, o ); while( moreIteration( &nit ) ) { VObject *o = nextVObject( &nit ); - QCString name = vObjectName( o ); + QCString name = vObjectTypeInfo( o ); QString value = vObjectStringZValue( o ); if ( name == VCNamePrefixesProp ) c.setTitle( value ); else if ( name == VCNameSuffixesProp ) c.setSuffix( value ); else if ( name == VCFamilyNameProp ) c.setLastName( value ); else if ( name == VCGivenNameProp ) c.setFirstName( value ); else if ( name == VCAdditionalNamesProp ) c.setMiddleName( value ); } @@ -693,25 +703,25 @@ static Contact parseVObject( VObject *obj ) VOICE = 0x04, CELL = 0x08, FAX = 0x10, PAGER = 0x20, UNKNOWN = 0x80 }; int type = 0; VObjectIterator nit; initPropIterator( &nit, o ); while( moreIteration( &nit ) ) { VObject *o = nextVObject( &nit ); - QCString name = vObjectName( o ); + QCString name = vObjectTypeInfo( o ); if ( name == VCHomeProp ) type |= HOME; else if ( name == VCWorkProp ) type |= WORK; else if ( name == VCVoiceProp ) type |= VOICE; else if ( name == VCCellularProp ) type |= CELL; else if ( name == VCFaxProp ) type |= FAX; else if ( name == VCPagerProp ) type |= PAGER; @@ -740,48 +750,48 @@ static Contact parseVObject( VObject *obj ) c.setBusinessMobile( value ); if ( ( type & (PAGER|WORK) ) == (PAGER|WORK) ) c.setBusinessPager( value ); } } else if ( name == VCEmailAddressProp ) { QString email = vObjectStringZValue( o ); bool valid = TRUE; VObjectIterator nit; initPropIterator( &nit, o ); while( moreIteration( &nit ) ) { VObject *o = nextVObject( &nit ); - QCString name = vObjectName( o ); + QCString name = vObjectTypeInfo( o ); if ( name != VCInternetProp && name != VCHomeProp && name != VCWorkProp && name != VCPreferredProp ) // ### preffered should map to default email valid = FALSE; } if ( valid ) { if ( haveDefaultEmail ) { QString str = c.emails(); if ( !str.isEmpty() ) str += ","+email; c.setEmails( str ); } else { c.setDefaultEmail( email ); } } } else if ( name == VCURLProp ) { VObjectIterator nit; initPropIterator( &nit, o ); while( moreIteration( &nit ) ) { VObject *o = nextVObject( &nit ); - QCString name = vObjectName( o ); + QCString name = vObjectTypeInfo( o ); if ( name == VCHomeProp ) c.setHomeWebpage( value ); else if ( name == VCWorkProp ) c.setBusinessWebpage( value ); } } else if ( name == VCOrgProp ) { VObjectIterator nit; initPropIterator( &nit, o ); while( moreIteration( &nit ) ) { VObject *o = nextVObject( &nit ); QCString name = vObjectName( o ); @@ -885,24 +895,29 @@ QValueList<Contact> Contact::readVCard( const QString &filename ) while ( obj ) { contacts.append( parseVObject( obj ) ); VObject *t = obj; obj = nextVObjectInList(obj); cleanVObject( t ); } return contacts; } +bool Contact::match( const QString ®exp ) const +{ + return match(QRegExp(regexp)); +} + bool Contact::match( const QRegExp &r ) const { bool match; match = false; QMap<int, QString>::ConstIterator it; for ( it = mMap.begin(); it != mMap.end(); ++it ) { if ( (*it).find( r ) > -1 ) { match = true; break; } } return match; |