-rw-r--r-- | kabc/addressee.cpp | 6 | ||||
-rw-r--r-- | kabc/addressee.h | 6 | ||||
-rw-r--r-- | kabc/field.cpp | 24 |
3 files changed, 32 insertions, 4 deletions
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp index 5cb194a..d484073 100644 --- a/kabc/addressee.cpp +++ b/kabc/addressee.cpp @@ -1494,32 +1494,38 @@ void Addressee::parseEmailAddress( const QString &rawEmail, QString &fullName, fullName = fullName.mid(1, len-2); } } } void Addressee::setResource( Resource *resource ) { detach(); mData->resource = resource; } Resource *Addressee::resource() const { return mData->resource; } +//US +QString Addressee::resourceLabel() +{ + return i18n("Resource"); +} + void Addressee::setChanged( bool value ) { detach(); mData->changed = value; } bool Addressee::changed() const { return mData->changed; } QDataStream &KABC::operator<<( QDataStream &s, const Addressee &a ) { if (!a.mData) return s; s << a.uid(); diff --git a/kabc/addressee.h b/kabc/addressee.h index ee98e03..393d1cc 100644 --- a/kabc/addressee.h +++ b/kabc/addressee.h @@ -779,32 +779,38 @@ class Addressee /** Returns string representation of the addressee. */ QString asString() const; /** Set resource where the addressee is from. */ void setResource( Resource *resource ); /** Return pointer to resource. */ Resource *resource() const; /** + Return resourcelabel. + */ + //US + static QString resourceLabel(); + + /** Mark addressee as changed. */ void setChanged( bool value ); /** Return whether the addressee is changed. */ bool changed() const; private: Addressee copy(); void detach(); struct AddresseeData; mutable KSharedPtr<AddresseeData> mData; }; diff --git a/kabc/field.cpp b/kabc/field.cpp index 41bbfde..bc2e176 100644 --- a/kabc/field.cpp +++ b/kabc/field.cpp @@ -19,32 +19,33 @@ Boston, MA 02111-1307, USA. */ /* Enhanced Version of the file for platform independent KDE tools. Copyright (c) 2004 Ulf Schenk $Id$ */ #include <klocale.h> #include <kconfig.h> #include <kconfigbase.h> #include <kglobal.h> #include "field.h" +#include "resource.h" using namespace KABC; class Field::FieldImpl { public: FieldImpl( int fieldId, int category = 0, const QString &label = QString::null, const QString &key = QString::null, const QString &app = QString::null ) : mFieldId( fieldId ), mCategory( category ), mLabel( label ), mKey( key ), mApp( app ) {} enum FieldId { CustomField, @@ -69,33 +70,34 @@ class Field::FieldImpl BusinessAddressCountry, BusinessAddressLabel, HomePhone, BusinessPhone, MobilePhone, HomeFax, BusinessFax, CarPhone, Isdn, Pager, Email, Mailer, Title, Role, Organization, Note, - Url + Url, + Resource }; int fieldId() { return mFieldId; } int category() { return mCategory; } QString label() { return mLabel; } QString key() { return mKey; } QString app() { return mApp; } private: int mFieldId; int mCategory; QString mLabel; QString mKey; QString mApp; @@ -177,32 +179,34 @@ QString Field::label() case FieldImpl::Pager: return Addressee::pagerLabel(); case FieldImpl::Email: return Addressee::emailLabel(); case FieldImpl::Mailer: return Addressee::mailerLabel(); case FieldImpl::Title: return Addressee::titleLabel(); case FieldImpl::Role: return Addressee::roleLabel(); case FieldImpl::Organization: return Addressee::organizationLabel(); case FieldImpl::Note: return Addressee::noteLabel(); case FieldImpl::Url: return Addressee::urlLabel(); + case FieldImpl::Resource: + return Addressee::resourceLabel(); case FieldImpl::CustomField: return mImpl->label(); default: return i18n("Unknown Field"); } } int Field::category() { return mImpl->category(); } QString Field::categoryLabel( int category ) { switch ( category ) { case All: @@ -254,32 +258,35 @@ QString Field::value( const KABC::Addressee &a ) case FieldImpl::Email: return a.preferredEmail(); case FieldImpl::Birthday: if ( a.birthday().isValid() ) { //the generated code had the following format: return a.birthday().date().toString( Qt::ISODate ); // But Qt::IsoDate was not specified. QString _oldFormat = KGlobal::locale()->dateFormat(); KGlobal::locale()->setDateFormat("%Y-%m-%d"); // = Qt::ISODate QString dt = KGlobal::locale()->formatDate(a.birthday().date(), false); KGlobal::locale()->setDateFormat(_oldFormat); return dt; } else return QString::null; case FieldImpl::Url: return a.url().prettyURL(); +//US + case FieldImpl::Resource: + return a.resource()->resourceName(); case FieldImpl::HomePhone: return a.phoneNumber( PhoneNumber::Home ).number(); case FieldImpl::BusinessPhone: return a.phoneNumber( PhoneNumber::Work ).number(); case FieldImpl::MobilePhone: return a.phoneNumber( PhoneNumber::Cell ).number(); case FieldImpl::HomeFax: return a.phoneNumber( PhoneNumber::Home | PhoneNumber::Fax ).number(); case FieldImpl::BusinessFax: return a.phoneNumber( PhoneNumber::Work | PhoneNumber::Fax ).number(); case FieldImpl::CarPhone: return a.phoneNumber( PhoneNumber::Car ).number(); case FieldImpl::Isdn: return a.phoneNumber( PhoneNumber::Isdn ).number(); case FieldImpl::Pager: return a.phoneNumber( PhoneNumber::Pager ).number(); @@ -347,32 +354,34 @@ bool Field::setValue( KABC::Addressee &a, const QString &value ) a.setOrganization( value ); return true; case FieldImpl::Note: a.setNote( value ); return true; case FieldImpl::Birthday: //US //the generated code had the following format: return a.setBirthday( QDate::fromString( value, Qt::ISODate ) ); // But Qt::IsoDate and QDate::fromString was not specified. Do I have the wrong QT version ? { QDate dt = KGlobal::locale()->readDate( value, "%Y-%m-%d"); // = Qt::ISODate a.setBirthday(dt); } return true; case FieldImpl::CustomField: a.insertCustom( mImpl->app(), mImpl->key(), value ); +//US never copy the resourcename back to the adressee. + case FieldImpl::Resource: default: return false; } } bool Field::isCustom() { return mImpl->fieldId() == FieldImpl::CustomField; } Field::List Field::allFields() { if ( mAllFields.isEmpty() ) { createField( FieldImpl::FormattedName, Frequent ); createField( FieldImpl::FamilyName, Frequent ); createField( FieldImpl::GivenName, Frequent ); @@ -395,32 +404,33 @@ Field::List Field::allFields() createField( FieldImpl::BusinessAddressLabel, Address|Organization ); createField( FieldImpl::HomePhone, Personal|Frequent ); createField( FieldImpl::BusinessPhone, Organization|Frequent ); createField( FieldImpl::MobilePhone, Frequent ); createField( FieldImpl::HomeFax ); createField( FieldImpl::BusinessFax ); createField( FieldImpl::CarPhone ); createField( FieldImpl::Isdn ); createField( FieldImpl::Pager ); createField( FieldImpl::Email, Email|Frequent ); createField( FieldImpl::Mailer, Email ); createField( FieldImpl::Title, Organization ); createField( FieldImpl::Role, Organization ); createField( FieldImpl::Organization, Organization ); createField( FieldImpl::Note ); createField( FieldImpl::Url ); + createField( FieldImpl::Resource ); } return mAllFields; } Field::List Field::defaultFields() { if ( mDefaultFields.isEmpty() ) { createDefaultField( FieldImpl::GivenName ); createDefaultField( FieldImpl::FamilyName ); createDefaultField( FieldImpl::Email ); } return mDefaultFields; } @@ -455,69 +465,72 @@ void Field::deleteFields() } void Field::saveFields( const QString &identifier, const Field::List &fields ) { KConfig *cfg = KGlobal::config(); KConfigGroupSaver( cfg, "KABCFields" ); saveFields( cfg, identifier, fields ); } void Field::saveFields( KConfig *cfg, const QString &identifier, const Field::List &fields ) { QValueList<int> fieldIds; //US -//US qDebug("Field::saveFields to %s %s", cfg->getFileName().latin1(), identifier.latin1()); +// qDebug("Field::saveFields to %s %s", cfg->getFileName().latin1(), identifier.latin1()); int custom = 0; Field::List::ConstIterator it; for( it = fields.begin(); it != fields.end(); ++it ) { //US -//US qDebug("Field::saveFields field:%i", (*it)->mImpl->fieldId()); +// qDebug("Field::saveFields field:%i", (*it)->mImpl->fieldId()); fieldIds.append( (*it)->mImpl->fieldId() ); if( (*it)->isCustom() ) { QStringList customEntry; customEntry << (*it)->mImpl->label(); customEntry << (*it)->mImpl->key(); customEntry << (*it)->mImpl->app(); cfg->writeEntry( "KABC_CustomEntry_" + identifier + "_" + QString::number( custom++ ), customEntry ); } } cfg->writeEntry( identifier, fieldIds ); } Field::List Field::restoreFields( const QString &identifier ) { +//US +// qDebug("Field::restoreFields, identifier: %s", identifier.latin1()); + KConfig *cfg = KGlobal::config(); KConfigGroupSaver( cfg, "KABCFields" ); cfg->setGroup( "KABCFields" ); Field::List l = restoreFields( cfg, identifier ); return l; } Field::List Field::restoreFields( KConfig *cfg, const QString &identifier ) { QValueList<int> fieldIds = cfg->readIntListEntry( identifier); //US - qDebug("Field::restoreFields from %s", cfg->getFileName().latin1()); +// qDebug("Field::restoreFields from %s, identifier: %s", cfg->getFileName().latin1(), identifier.latin1()); Field::List fields; int custom = 0; QValueList<int>::ConstIterator it; for( it = fieldIds.begin(); it != fieldIds.end(); ++it ) { FieldImpl *f = 0; if ( (*it) == FieldImpl::CustomField ) { QStringList customEntry = cfg->readListEntry( "KABC_CustomEntry_" + identifier + "_" + QString::number( custom++ ) ); f = new FieldImpl( *it, CustomCategory, customEntry[ 0 ], customEntry[ 1 ], customEntry[ 2 ] ); } else { f = new FieldImpl( *it ); } @@ -531,20 +544,23 @@ bool Field::equals( Field *field ) { bool sameId = ( mImpl->fieldId() == field->mImpl->fieldId() ); if ( !sameId ) return false; if ( mImpl->fieldId() != FieldImpl::CustomField ) return true; return mImpl->key() == field->mImpl->key(); } Field *Field::createCustomField( const QString &label, int category, const QString &key, const QString &app ) { Field *field = new Field( new FieldImpl( FieldImpl::CustomField, category | CustomCategory, label, key, app ) ); +//US +// qDebug("Field::createCustomField label %s", label.latin1() ); + mCustomFields.append( field ); return field; } |