From ea3945a9bd8f9830f70b1efa133f9df13b19362f Mon Sep 17 00:00:00 2001 From: mickeyl Date: Tue, 16 Nov 2004 19:14:18 +0000 Subject: libopie1 goes into unsupported --- (limited to 'libopie/pim/ocontact.cpp') diff --git a/libopie/pim/ocontact.cpp b/libopie/pim/ocontact.cpp deleted file mode 100644 index fcf3b26..0000000 --- a/libopie/pim/ocontact.cpp +++ b/dev/null @@ -1,1207 +0,0 @@ -/********************************************************************** -** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. -** Copyright (C) 2002-2003 by Stefan Eilers (eilers.stefan@epost.de) -** -** This file may be distributed and/or modified under the terms of the -** GNU General Public License version 2 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** 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 "ocontact.h" -#include "opimresolver.h" -#include "oconversion.h" - -#include -#include -#include - -#include -#include -#include -#include -#include - -#include - -/*! - \class Contact contact.h - \brief The Contact class holds the data of an address book entry. - - This data includes information the name of the person, contact - information, and business information such as deparment and job title. - - \ingroup qtopiaemb - \ingroup qtopiadesktop -*/ - - -/*! - Creates a new, empty contact. -*/ -OContact::OContact() - : OPimRecord(), mMap(), d( 0 ) -{ -} - -/*! - \internal - Creates a new contact. The properties of the contact are - set from \a fromMap. -*/ -OContact::OContact( const QMap &fromMap ) : - OPimRecord(), mMap( fromMap ), d( 0 ) -{ - QString cats = mMap[ Qtopia::AddressCategory ]; - if ( !cats.isEmpty() ) - setCategories( idsFromString( cats ) ); - - QString uidStr = find( Qtopia::AddressUid ); - - if ( uidStr.isEmpty() || (uidStr.toInt() == 0) ){ - qWarning( "Invalid UID found. Generate new one.." ); - setUid( uidGen().generate() ); - }else - setUid( uidStr.toInt() ); - -// if ( !uidStr.isEmpty() ) -// setUid( uidStr.toInt() ); -} - -/*! - Destroys a contact. -*/ -OContact::~OContact() -{ -} - -/*! \fn void OContact::setTitle( const QString &str ) - Sets the title of the contact to \a str. -*/ - -/*! \fn void OContact::setFirstName( const QString &str ) - Sets the first name of the contact to \a str. -*/ - -/*! \fn void OContact::setMiddleName( const QString &str ) - Sets the middle name of the contact to \a str. -*/ - -/*! \fn void OContact::setLastName( const QString &str ) - Sets the last name of the contact to \a str. -*/ - -/*! \fn void OContact::setSuffix( const QString &str ) - Sets the suffix of the contact to \a str. -*/ - -/*! \fn void OContact::setFileAs( const QString &str ) - Sets the contact to filed as \a str. -*/ - -/*! \fn void OContact::setDefaultEmail( const QString &str ) - Sets the default email of the contact to \a str. -*/ - -/*! \fn void OContact::setHomeStreet( const QString &str ) - Sets the home street address of the contact to \a str. -*/ - -/*! \fn void OContact::setHomeCity( const QString &str ) - Sets the home city of the contact to \a str. -*/ - -/*! \fn void OContact::setHomeState( const QString &str ) - Sets the home state of the contact to \a str. -*/ - -/*! \fn void OContact::setHomeZip( const QString &str ) - Sets the home zip code of the contact to \a str. -*/ - -/*! \fn void OContact::setHomeCountry( const QString &str ) - Sets the home country of the contact to \a str. -*/ - -/*! \fn void OContact::setHomePhone( const QString &str ) - Sets the home phone number of the contact to \a str. -*/ - -/*! \fn void OContact::setHomeFax( const QString &str ) - Sets the home fax number of the contact to \a str. -*/ - -/*! \fn void OContact::setHomeMobile( const QString &str ) - Sets the home mobile phone number of the contact to \a str. -*/ - -/*! \fn void OContact::setHomeWebpage( const QString &str ) - Sets the home webpage of the contact to \a str. -*/ - -/*! \fn void OContact::setCompany( const QString &str ) - Sets the company for contact to \a str. -*/ - -/*! \fn void OContact::setJobTitle( const QString &str ) - Sets the job title of the contact to \a str. -*/ - -/*! \fn void OContact::setDepartment( const QString &str ) - Sets the department for contact to \a str. -*/ - -/*! \fn void OContact::setOffice( const QString &str ) - Sets the office for contact to \a str. -*/ - -/*! \fn void OContact::setBusinessStreet( const QString &str ) - Sets the business street address of the contact to \a str. -*/ - -/*! \fn void OContact::setBusinessCity( const QString &str ) - Sets the business city of the contact to \a str. -*/ - -/*! \fn void OContact::setBusinessState( const QString &str ) - Sets the business state of the contact to \a str. -*/ - -/*! \fn void OContact::setBusinessZip( const QString &str ) - Sets the business zip code of the contact to \a str. -*/ - -/*! \fn void OContact::setBusinessCountry( const QString &str ) - Sets the business country of the contact to \a str. -*/ - -/*! \fn void OContact::setBusinessPhone( const QString &str ) - Sets the business phone number of the contact to \a str. -*/ - -/*! \fn void OContact::setBusinessFax( const QString &str ) - Sets the business fax number of the contact to \a str. -*/ - -/*! \fn void OContact::setBusinessMobile( const QString &str ) - Sets the business mobile phone number of the contact to \a str. -*/ - -/*! \fn void OContact::setBusinessPager( const QString &str ) - Sets the business pager number of the contact to \a str. -*/ - -/*! \fn void OContact::setBusinessWebpage( const QString &str ) - Sets the business webpage of the contact to \a str. -*/ - -/*! \fn void OContact::setProfession( const QString &str ) - Sets the profession of the contact to \a str. -*/ - -/*! \fn void OContact::setAssistant( const QString &str ) - Sets the assistant of the contact to \a str. -*/ - -/*! \fn void OContact::setManager( const QString &str ) - Sets the manager of the contact to \a str. -*/ - -/*! \fn void OContact::setSpouse( const QString &str ) - Sets the spouse of the contact to \a str. -*/ - -/*! \fn void OContact::setGender( const QString &str ) - Sets the gender of the contact to \a str. -*/ - -/*! \fn void OContact::setNickname( const QString &str ) - Sets the nickname of the contact to \a str. -*/ - -/*! \fn void OContact::setNotes( const QString &str ) - Sets the notes about the contact to \a str. -*/ - -/*! \fn QString OContact::title() const - Returns the title of the contact. -*/ - -/*! \fn QString OContact::firstName() const - Returns the first name of the contact. -*/ - -/*! \fn QString OContact::middleName() const - Returns the middle name of the contact. -*/ - -/*! \fn QString OContact::lastName() const - Returns the last name of the contact. -*/ - -/*! \fn QString OContact::suffix() const - Returns the suffix of the contact. -*/ - -/*! \fn QString OContact::fileAs() const - Returns the string the contact is filed as. -*/ - -/*! \fn QString OContact::defaultEmail() const - Returns the default email address of the contact. -*/ - -/*! \fn QString OContact::emails() const - Returns the list of email address for a contact separated by ';'s in a single - string. -*/ - -/*! \fn QString OContact::homeStreet() const - Returns the home street address of the contact. -*/ - -/*! \fn QString OContact::homeCity() const - Returns the home city of the contact. -*/ - -/*! \fn QString OContact::homeState() const - Returns the home state of the contact. -*/ - -/*! \fn QString OContact::homeZip() const - Returns the home zip of the contact. -*/ - -/*! \fn QString OContact::homeCountry() const - Returns the home country of the contact. -*/ - -/*! \fn QString OContact::homePhone() const - Returns the home phone number of the contact. -*/ - -/*! \fn QString OContact::homeFax() const - Returns the home fax number of the contact. -*/ - -/*! \fn QString OContact::homeMobile() const - Returns the home mobile number of the contact. -*/ - -/*! \fn QString OContact::homeWebpage() const - Returns the home webpage of the contact. -*/ - -/*! \fn QString OContact::company() const - Returns the company for the contact. -*/ - -/*! \fn QString OContact::department() const - Returns the department for the contact. -*/ - -/*! \fn QString OContact::office() const - Returns the office for the contact. -*/ - -/*! \fn QString OContact::jobTitle() const - Returns the job title of the contact. -*/ - -/*! \fn QString OContact::profession() const - Returns the profession of the contact. -*/ - -/*! \fn QString OContact::assistant() const - Returns the assistant of the contact. -*/ - -/*! \fn QString OContact::manager() const - Returns the manager of the contact. -*/ - -/*! \fn QString OContact::businessStreet() const - Returns the business street address of the contact. -*/ - -/*! \fn QString OContact::businessCity() const - Returns the business city of the contact. -*/ - -/*! \fn QString OContact::businessState() const - Returns the business state of the contact. -*/ - -/*! \fn QString OContact::businessZip() const - Returns the business zip of the contact. -*/ - -/*! \fn QString OContact::businessCountry() const - Returns the business country of the contact. -*/ - -/*! \fn QString OContact::businessPhone() const - Returns the business phone number of the contact. -*/ - -/*! \fn QString OContact::businessFax() const - Returns the business fax number of the contact. -*/ - -/*! \fn QString OContact::businessMobile() const - Returns the business mobile number of the contact. -*/ - -/*! \fn QString OContact::businessPager() const - Returns the business pager number of the contact. -*/ - -/*! \fn QString OContact::businessWebpage() const - Returns the business webpage of the contact. -*/ - -/*! \fn QString OContact::spouse() const - Returns the spouse of the contact. -*/ - -/*! \fn QString OContact::gender() const - Returns the gender of the contact. -*/ - -/*! \fn QString OContact::nickname() const - Returns the nickname of the contact. -*/ - -/*! \fn QString OContact::children() const - Returns the children of the contact. -*/ - -/*! \fn QString OContact::notes() const - Returns the notes relating to the the contact. -*/ - -/*! \fn QString OContact::groups() const - \internal - Returns the groups for the contact. -*/ - -/*! \fn QStringList OContact::groupList() const - \internal -*/ - -/*! \fn QString OContact::field(int) const - \internal -*/ - -/*! \fn void OContact::saveJournal( journal_action, const QString & = QString::null ) - \internal -*/ - -/*! \fn void OContact::setUid( int id ) - \internal - Sets the uid for this record to \a id. -*/ - -/*! \enum OContact::journal_action - \internal -*/ - -/*! - \internal -*/ -QMap OContact::toMap() const -{ - QMap map = mMap; - QString cats = idsToString( categories() ); - if ( !cats.isEmpty() ) - map.insert( Qtopia::AddressCategory, cats ); - return map; -} - -/*! - Returns a rich text formatted QString representing the contents the contact. -*/ -QString OContact::toRichText() const -{ - QString text; - QString value, comp, state; - QString str; - bool marker = false; - - Config cfg("qpe"); - cfg.setGroup("Appearance"); - int addressformat = cfg.readNumEntry( "AddressFormat", Zip_City_State ); - - // name, jobtitle and company - if ( !(value = fullName()).isEmpty() ) - text += "

" + Qtopia::escapeString(value) + "

"; - - if ( !(value = jobTitle()).isEmpty() ) - text += Qtopia::escapeString(value) + " "; - - comp = company(); - if ( !(value = department()).isEmpty() ) { - text += Qtopia::escapeString(value); - if ( comp ) - text += ", " + Qtopia::escapeString(comp); - }else if ( comp ) - text += "
" + Qtopia::escapeString(comp); - text += "

"; - - // defailt email - QString defEmail = defaultEmail(); - if ( !defEmail.isEmpty() ){ - text += " " + QObject::tr("Default Email: ") + "" - + Qtopia::escapeString(defEmail); - marker = true; - } - - // business address - if ( !businessStreet().isEmpty() || !businessCity().isEmpty() || - !businessZip().isEmpty() || !businessCountry().isEmpty() ) { - text += QObject::tr( "
Work Address:" ); - marker = true; - } - - if ( !(value = businessStreet()).isEmpty() ){ - text += "
" + Qtopia::escapeString(value); - marker = true; - } - - switch( addressformat ){ - case Zip_City_State:{ // Zip_Code City, State - state = businessState(); - if ( !(value = businessZip()).isEmpty() ){ - text += "
" + Qtopia::escapeString(value) + " "; - marker = true; - - } - if ( !(value = businessCity()).isEmpty() ) { - marker = true; - if ( businessZip().isEmpty() && !businessStreet().isEmpty() ) - text += "
"; - text += Qtopia::escapeString(value); - if ( state ) - text += ", " + Qtopia::escapeString(state); - } else if ( !state.isEmpty() ){ - text += "
" + Qtopia::escapeString(state); - marker = true; - } - break; - } - case City_State_Zip:{ // City, State Zip_Code - state = businessState(); - if ( !(value = businessCity()).isEmpty() ) { - marker = true; - text += "
" + Qtopia::escapeString(value); - if ( state ) - text += ", " + Qtopia::escapeString(state); - } else if ( !state.isEmpty() ){ - text += "
" + Qtopia::escapeString(state); - marker = true; - } - if ( !(value = businessZip()).isEmpty() ){ - text += " " + Qtopia::escapeString(value); - marker = true; - } - break; - } - } - - if ( !(value = businessCountry()).isEmpty() ){ - text += "
" + Qtopia::escapeString(value); - marker = true; - } - - // rest of Business data - str = office(); - if ( !str.isEmpty() ){ - text += "
" + QObject::tr("Office: ") + "" - + Qtopia::escapeString(str); - marker = true; - } - str = businessWebpage(); - if ( !str.isEmpty() ){ - text += "
" + QObject::tr("Business Web Page: ") + "" - + Qtopia::escapeString(str); - marker = true; - } - str = businessPhone(); - if ( !str.isEmpty() ){ - text += "
" + QObject::tr("Business Phone: ") + "" - + Qtopia::escapeString(str); - marker = true; - } - str = businessFax(); - if ( !str.isEmpty() ){ - text += "
" + QObject::tr("Business Fax: ") + "" - + Qtopia::escapeString(str); - marker = true; - } - str = businessMobile(); - if ( !str.isEmpty() ){ - text += "
" + QObject::tr("Business Mobile: ") + "" - + Qtopia::escapeString(str); - marker = true; - } - str = businessPager(); - if ( !str.isEmpty() ){ - text += "
" + QObject::tr("Business Pager: ") + "" - + Qtopia::escapeString(str); - marker = true; - } - - // text += "
"; - - // home address - if ( !homeStreet().isEmpty() || !homeCity().isEmpty() || - !homeZip().isEmpty() || !homeCountry().isEmpty() ) { - text += QObject::tr( "
Home Address:" ); - marker = true; - } - - if ( !(value = homeStreet()).isEmpty() ){ - text += "
" + Qtopia::escapeString(value); - marker = true; - } - - switch( addressformat ){ - case Zip_City_State:{ // Zip_Code City, State - state = homeState(); - if ( !(value = homeZip()).isEmpty() ){ - text += "
" + Qtopia::escapeString(value) + " "; - marker = true; - } - if ( !(value = homeCity()).isEmpty() ) { - marker = true; - if ( homeZip().isEmpty() && !homeStreet().isEmpty() ) - text += "
"; - text += Qtopia::escapeString(value); - if ( !state.isEmpty() ) - text += ", " + Qtopia::escapeString(state); - } else if (!state.isEmpty()) { - text += "
" + Qtopia::escapeString(state); - marker = true; - } - break; - } - case City_State_Zip:{ // City, State Zip_Code - state = homeState(); - if ( !(value = homeCity()).isEmpty() ) { - marker = true; - text += "
" + Qtopia::escapeString(value); - if ( state ) - text += ", " + Qtopia::escapeString(state); - } else if ( !state.isEmpty() ){ - text += "
" + Qtopia::escapeString(state); - marker = true; - } - if ( !(value = homeZip()).isEmpty() ){ - text += " " + Qtopia::escapeString(value); - marker = true; - } - break; - } - } - - if ( !(value = homeCountry()).isEmpty() ){ - text += "
" + Qtopia::escapeString(value); - marker = true; - } - - // rest of Home data - str = homeWebpage(); - if ( !str.isEmpty() ){ - text += "
" + QObject::tr("Home Web Page: ") + "" - + Qtopia::escapeString(str); - marker = true; - } - str = homePhone(); - if ( !str.isEmpty() ){ - text += "
" + QObject::tr("Home Phone: ") + "" - + Qtopia::escapeString(str); - marker = true; - } - str = homeFax(); - if ( !str.isEmpty() ){ - text += "
" + QObject::tr("Home Fax: ") + "" - + Qtopia::escapeString(str); - marker = true; - } - str = homeMobile(); - if ( !str.isEmpty() ){ - text += "
" + QObject::tr("Home Mobile: ") + "" - + Qtopia::escapeString(str); - marker = true; - } - - if ( marker ) - text += "

"; - - // the rest... - str = emails(); - if ( !str.isEmpty() && ( str != defEmail ) ) - text += "
" + QObject::tr("All Emails: ") + "" - + Qtopia::escapeString(str); - str = profession(); - if ( !str.isEmpty() ) - text += "
" + QObject::tr("Profession: ") + "" - + Qtopia::escapeString(str); - str = assistant(); - if ( !str.isEmpty() ) - text += "
" + QObject::tr("Assistant: ") + "" - + Qtopia::escapeString(str); - str = manager(); - if ( !str.isEmpty() ) - text += "
" + QObject::tr("Manager: ") + "" - + Qtopia::escapeString(str); - str = gender(); - if ( !str.isEmpty() && str.toInt() != 0 ) { - text += "
"; - if ( str.toInt() == 1 ) - str = QObject::tr( "Male" ); - else if ( str.toInt() == 2 ) - str = QObject::tr( "Female" ); - text += "" + QObject::tr("Gender: ") + "" + str; - } - str = spouse(); - if ( !str.isEmpty() ) - text += "
" + QObject::tr("Spouse: ") + "" - + Qtopia::escapeString(str); - if ( birthday().isValid() ){ - str = TimeString::numberDateString( birthday() ); - text += "
" + QObject::tr("Birthday: ") + "" - + Qtopia::escapeString(str); - } - if ( anniversary().isValid() ){ - str = TimeString::numberDateString( anniversary() ); - text += "
" + QObject::tr("Anniversary: ") + "" - + Qtopia::escapeString(str); - } - str = children(); - if ( !str.isEmpty() ) - text += "
" + QObject::tr("Children: ") + "" - + Qtopia::escapeString(str); - - str = nickname(); - if ( !str.isEmpty() ) - text += "
" + QObject::tr("Nickname: ") + "" - + Qtopia::escapeString(str); - - // categories - if ( categoryNames("Contacts").count() ){ - text += "
" + QObject::tr( "Category:") + " "; - text += categoryNames("Contacts").join(", "); - } - - // notes last - if ( !(value = notes()).isEmpty() ) { - text += "

" + QObject::tr( "Notes:") + " "; - QRegExp reg("\n"); - - //QString tmp = Qtopia::escapeString(value); - QString tmp = QStyleSheet::convertFromPlainText(value); - //tmp.replace( reg, "
" ); - text += "
" + tmp + "
"; - } - return text; -} - -/*! - \internal -*/ -void OContact::insert( int key, const QString &v ) -{ - QString value = v.stripWhiteSpace(); - if ( value.isEmpty() ) - mMap.remove( key ); - else - mMap.insert( key, value ); -} - -/*! - \internal -*/ -void OContact::replace( int key, const QString & v ) -{ - QString value = v.stripWhiteSpace(); - if ( value.isEmpty() ) - mMap.remove( key ); - else - mMap.replace( key, value ); -} - -/*! - \internal -*/ -QString OContact::find( int key ) const -{ - return mMap[key]; -} - -/*! - \internal -*/ -QString OContact::displayAddress( const QString &street, - const QString &city, - const QString &state, - const QString &zip, - const QString &country ) const -{ - QString s = street; - if ( !street.isEmpty() ) - s+= "\n"; - s += city; - if ( !city.isEmpty() && !state.isEmpty() ) - s += ", "; - s += state; - if ( !state.isEmpty() && !zip.isEmpty() ) - s += " "; - s += zip; - if ( !country.isEmpty() && !s.isEmpty() ) - s += "\n"; - s += country; - return s; -} - -/*! - \internal -*/ -QString OContact::displayBusinessAddress() const -{ - return displayAddress( businessStreet(), businessCity(), - businessState(), businessZip(), - businessCountry() ); -} - -/*! - \internal -*/ -QString OContact::displayHomeAddress() const -{ - return displayAddress( homeStreet(), homeCity(), - homeState(), homeZip(), - homeCountry() ); -} - -/*! - Returns the full name of the contact -*/ -QString OContact::fullName() const -{ - QString title = find( Qtopia::Title ); - QString firstName = find( Qtopia::FirstName ); - QString middleName = find( Qtopia::MiddleName ); - QString lastName = find( Qtopia::LastName ); - QString suffix = find( Qtopia::Suffix ); - - QString name = title; - if ( !firstName.isEmpty() ) { - if ( !name.isEmpty() ) - name += " "; - name += firstName; - } - if ( !middleName.isEmpty() ) { - if ( !name.isEmpty() ) - name += " "; - name += middleName; - } - if ( !lastName.isEmpty() ) { - if ( !name.isEmpty() ) - name += " "; - name += lastName; - } - if ( !suffix.isEmpty() ) { - if ( !name.isEmpty() ) - name += " "; - name += suffix; - } - return name.simplifyWhiteSpace(); -} - -/*! - Returns a list of the names of the children of the contact. -*/ -QStringList OContact::childrenList() const -{ - return QStringList::split( " ", find( Qtopia::Children ) ); -} - -/*! \fn void OContact::insertEmail( const QString &email ) - - Insert \a email into the email list. Ensures \a email can only be added - once. If there is no default email address set, it sets it to the \a email. -*/ - -/*! \fn void OContact::removeEmail( const QString &email ) - - Removes the \a email from the email list. If the default email was \a email, - then the default email address is assigned to the first email in the - email list -*/ - -/*! \fn void OContact::clearEmails() - - Clears the email list. - */ - -/*! \fn void OContact::insertEmails( const QStringList &emailList ) - - Appends the \a emailList to the exiting email list - */ - -/*! - Returns a list of email addresses belonging to the contact, including - the default email address. -*/ -QStringList OContact::emailList() const -{ - QString emailStr = emails(); - - QStringList r; - if ( !emailStr.isEmpty() ) { - qDebug(" emailstr "); - QStringList l = QStringList::split( emailSeparator(), emailStr ); - for ( QStringList::ConstIterator it = l.begin();it != l.end();++it ) - r += (*it).simplifyWhiteSpace(); - } - - return r; -} - -/*! - \overload - - Generates the string for the contact to be filed as from the first, - middle and last name of the contact. -*/ -void OContact::setFileAs() -{ - QString lastName, firstName, middleName, fileas; - - lastName = find( Qtopia::LastName ); - firstName = find( Qtopia::FirstName ); - middleName = find( Qtopia::MiddleName ); - if ( !lastName.isEmpty() && !firstName.isEmpty() - && !middleName.isEmpty() ) - fileas = lastName + ", " + firstName + " " + middleName; - else if ( !lastName.isEmpty() && !firstName.isEmpty() ) - fileas = lastName + ", " + firstName; - else if ( !lastName.isEmpty() || !firstName.isEmpty() || - !middleName.isEmpty() ) - fileas = firstName + ( firstName.isEmpty() ? "" : " " ) - + middleName + ( middleName.isEmpty() ? "" : " " ) - + lastName; - - replace( Qtopia::FileAs, fileas ); -} - -/*! - \internal - Appends the contact information to \a buf. -*/ -void OContact::save( QString &buf ) const -{ - static const QStringList SLFIELDS = fields(); - // I'm expecting "::ConstIterator it = mMap.begin(); - it != mMap.end(); ++it ) { - const QString &value = it.data(); - int key = it.key(); - if ( !value.isEmpty() ) { - if ( key == Qtopia::AddressCategory || key == Qtopia::AddressUid) - continue; - - key -= Qtopia::AddressCategory+1; - buf += SLFIELDS[key]; - buf += "=\"" + Qtopia::escapeString(value) + "\" "; - } - } - buf += customToXml(); - if ( categories().count() > 0 ) - buf += "Categories=\"" + idsToString( categories() ) + "\" "; - buf += "Uid=\"" + QString::number( uid() ) + "\" "; - // You need to close this yourself -} - - -/*! - \internal - Returns the list of fields belonging to a contact - Never change order of this list ! It has to be regarding - enum AddressBookFields !! -*/ -QStringList OContact::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( "HomePhone" ); - list.append( "HomeFax" ); - list.append( "HomeMobile" ); - - list.append( "BusinessStreet" ); - list.append( "BusinessCity" ); - list.append( "BusinessState" ); - list.append( "BusinessZip" ); - list.append( "BusinessCountry" ); - list.append( "BusinessPager" ); - list.append( "BusinessWebPage" ); - - list.append( "Office" ); - 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; -} - - -/*! - Sets the list of email address for contact to those contained in \a str. - Email address should be separated by ';'s. -*/ -void OContact::setEmails( const QString &str ) -{ - replace( Qtopia::Emails, str ); - if ( str.isEmpty() ) - setDefaultEmail( QString::null ); -} - -/*! - Sets the list of children for the contact to those contained in \a str. -*/ -void OContact::setChildren( const QString &str ) -{ - replace( Qtopia::Children, str ); -} - -/*! - \overload - Returns TRUE if the contact matches the regular expression \a regexp. - Otherwise returns FALSE. -*/ -bool OContact::match( const QRegExp &r ) const -{ - setLastHitField( -1 ); - bool match; - match = false; - QMap::ConstIterator it; - for ( it = mMap.begin(); it != mMap.end(); ++it ) { - if ( (*it).find( r ) > -1 ) { - setLastHitField( it.key() ); - match = true; - break; - } - } - return match; -} - - -QString OContact::toShortText() const -{ - return ( fullName() ); -} -QString OContact::type() const -{ - return QString::fromLatin1( "OContact" ); -} - - - -class QString OContact::recordField( int pos ) const -{ - QStringList SLFIELDS = fields(); // ?? why this ? (se) - return SLFIELDS[pos]; -} - -// In future releases, we should store birthday and anniversary -// internally as QDate instead of QString ! -// QString is always too complicate to interprete (DD.MM.YY, DD/MM/YY, MM/DD/YY, etc..)(se) - -/*! \fn void OContact::setBirthday( const QDate& date ) - Sets the birthday for the contact to \a date. If date is null - the current stored date will be removed. -*/ -void OContact::setBirthday( const QDate &v ) -{ - if ( v.isNull() ){ - qWarning( "Remove Birthday"); - replace( Qtopia::Birthday, QString::null ); - return; - } - - if ( v.isValid() ) - replace( Qtopia::Birthday, OConversion::dateToString( v ) ); - -} - - -/*! \fn void OContact::setAnniversary( const QDate &date ) - Sets the anniversary of the contact to \a date. If date is - null, the current stored date will be removed. -*/ -void OContact::setAnniversary( const QDate &v ) -{ - if ( v.isNull() ){ - qWarning( "Remove Anniversary"); - replace( Qtopia::Anniversary, QString::null ); - return; - } - - if ( v.isValid() ) - replace( Qtopia::Anniversary, OConversion::dateToString( v ) ); -} - -/*! \fn QDate OContact::birthday() const - Returns the birthday of the contact. -*/ -QDate OContact::birthday() const -{ - QString str = find( Qtopia::Birthday ); - // qWarning ("Birthday %s", str.latin1() ); - if ( !str.isEmpty() ) - return OConversion::dateFromString ( str ); - else - return QDate(); -} - - -/*! \fn QDate OContact::anniversary() const - Returns the anniversary of the contact. -*/ -QDate OContact::anniversary() const -{ - QDate empty; - QString str = find( Qtopia::Anniversary ); - // qWarning ("Anniversary %s", str.latin1() ); - if ( !str.isEmpty() ) - return OConversion::dateFromString ( str ); - else - return empty; -} - - -void OContact::insertEmail( const QString &v ) -{ - //qDebug("insertEmail %s", v.latin1()); - QString e = v.simplifyWhiteSpace(); - QString def = defaultEmail(); - - // if no default, set it as the default email and don't insert - if ( def.isEmpty() ) { - setDefaultEmail( e ); // will insert into the list for us - return; - } - - // otherwise, insert assuming doesn't already exist - QString emailsStr = find( Qtopia::Emails ); - if ( emailsStr.contains( e )) - return; - if ( !emailsStr.isEmpty() ) - emailsStr += emailSeparator(); - emailsStr += e; - replace( Qtopia::Emails, emailsStr ); -} - -void OContact::removeEmail( const QString &v ) -{ - QString e = v.simplifyWhiteSpace(); - QString def = defaultEmail(); - QString emailsStr = find( Qtopia::Emails ); - QStringList emails = emailList(); - - // otherwise, must first contain it - if ( !emailsStr.contains( e ) ) - return; - - // remove it - //qDebug(" removing email from list %s", e.latin1()); - emails.remove( e ); - // reset the string - emailsStr = emails.join(emailSeparator()); // Sharp's brain dead separator - replace( Qtopia::Emails, emailsStr ); - - // if default, then replace the default email with the first one - if ( def == e ) { - //qDebug("removeEmail is default; setting new default"); - if ( !emails.count() ) - clearEmails(); - else // setDefaultEmail will remove e from the list - setDefaultEmail( emails.first() ); - } -} -void OContact::clearEmails() -{ - mMap.remove( Qtopia::DefaultEmail ); - mMap.remove( Qtopia::Emails ); -} -void OContact::setDefaultEmail( const QString &v ) -{ - QString e = v.simplifyWhiteSpace(); - - //qDebug("OContact::setDefaultEmail %s", e.latin1()); - replace( Qtopia::DefaultEmail, e ); - - if ( !e.isEmpty() ) - insertEmail( e ); - -} - -void OContact::insertEmails( const QStringList &v ) -{ - for ( QStringList::ConstIterator it = v.begin(); it != v.end(); ++it ) - insertEmail( *it ); -} -int OContact::rtti() { - return OPimResolver::AddressBook; -} -void OContact::setUid( int i ) -{ - OPimRecord::setUid(i); - replace( Qtopia::AddressUid , QString::number(i)); -} -- cgit v0.9.0.2