SVN commit 702252 by bvirlet: Follow RFC concerning ORG property. The patch will still read the old Department values if they exist but store them correctly. BUG: 115129 M +8 -2 kdelibs/kabc/ldifconverter.cpp M +1 -0 kdelibs/kabc/scripts/entrylist M +13 -4 kdelibs/kabc/vcardtool.cpp M +6 -5 kdepim/kaddressbook/addresseeeditorwidget.cpp M +0 -2 kdepim/kaddressbook/kabcore.cpp M +1 -1 kdepim/kaddressbook/ldapsearchdialog.cpp --- branches/KDE/3.5/kdelibs/kabc/ldifconverter.cpp #702251:702252 @@ -141,7 +141,13 @@ ldif_out( t, "o", addr.organization() ); ldif_out( t, "organization", addr.organization() ); ldif_out( t, "organizationname", addr.organization() ); - ldif_out( t, "department", addr.custom("KADDRESSBOOK", "X-Department") ); + + // Compatibility with older kabc versions. + if ( addr.department().isEmpty() ) + ldif_out( t, "department", addr.department() ); + else + ldif_out( t, "department", addr.custom("KADDRESSBOOK", "X-Department") ); + ldif_out( t, "workurl", addr.url().prettyURL() ); ldif_out( t, "homeurl", addr.url().prettyURL() ); ldif_out( t, "description", addr.note() ); @@ -447,7 +453,7 @@ } if ( fieldname == QString::fromLatin1( "department" ) ) { - a.insertCustom( "KADDRESSBOOK", "X-Department", value ); + a.setDepartment( value ); return true; } --- branches/KDE/3.5/kdelibs/kabc/scripts/entrylist #702251:702252 @@ -63,6 +63,7 @@ ALFE,title,person,QString,title,Organization ALFE,role,person in organization,QString,role,Organization ALFE,organization,,QString,organization,Organization +ALFE,department,,QString,department,Organization ALFE,note,,QString,note --- branches/KDE/3.5/kdelibs/kabc/vcardtool.cpp #702251:702252 @@ -242,8 +242,12 @@ card.addLine( noteLine ); // ORG - VCardLine orgLine( "ORG", (*addrIt).organization() ); - if ( version == VCard::v2_1 && needsEncoding( (*addrIt).organization() ) ) { + QStringList organization; + organization.append( ( *addrIt ).organization().replace( ';', "\\;" ) ); + if ( !( *addrIt ).department().isEmpty() ) + organization.append( ( *addrIt ).department().replace( ';', "\\;" ) ); + VCardLine orgLine( "ORG", organization.join( ";" ) ); + if ( version == VCard::v2_1 && needsEncoding( organization.join( ";" ) ) ) { orgLine.addParameter( "charset", "UTF-8" ); orgLine.addParameter( "encoding", "QUOTED-PRINTABLE" ); } @@ -506,8 +510,13 @@ addr.setNote( (*lineIt).value().asString() ); // ORGANIZATION - else if ( identifier == "org" ) - addr.setOrganization( (*lineIt).value().asString() ); + else if ( identifier == "org" ) { + const QStringList orgParts = splitString( semicolonSep, (*lineIt).value().asString() ); + if ( orgParts.count() > 0 ) + addr.setOrganization( orgParts[ 0 ] ); + if ( orgParts.count() > 1 ) + addr.setDepartment( orgParts[ 1 ] ); + } // PHOTO else if ( identifier == "photo" ) --- branches/KDE/3.5/kdepim/kaddressbook/addresseeeditorwidget.cpp #702251:702252 @@ -529,6 +529,10 @@ mRoleEdit->setText( mAddressee.role() ); mOrgEdit->setText( mAddressee.organization() ); + mDepartmentEdit->setText( mAddressee.department() ); + // compatibility with older versions + if ( mAddressee.department().isEmpty() ) + mDepartmentEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Department" ) ); mURLEdit->setURL( mAddressee.url() ); mURLEdit->home( false ); mBlogEdit->setURL( mAddressee.custom( "KADDRESSBOOK", "BlogFeed" ) ); @@ -551,7 +555,6 @@ mSpouseEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-SpousesName" ) ); mManagerEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-ManagersName" ) ); mAssistantEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-AssistantsName" ) ); - mDepartmentEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Department" ) ); mOfficeEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Office" ) ); mProfessionEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Profession" ) ); mTitleEdit->setText( mAddressee.title() ); @@ -572,6 +575,8 @@ mAddressee.setRole( mRoleEdit->text() ); mAddressee.setOrganization( mOrgEdit->text() ); + mAddressee.setDepartment( mDepartmentEdit->text() ); + QString homepage = mURLEdit->text().stripWhiteSpace(); if ( homepage.isEmpty() ) mAddressee.setUrl( KURL() ); @@ -614,10 +619,6 @@ else mAddressee.removeCustom( "KADDRESSBOOK", "X-AssistantsName" ); - if ( !mDepartmentEdit->text().isEmpty() ) - mAddressee.insertCustom( "KADDRESSBOOK", "X-Department", mDepartmentEdit->text() ); - else - mAddressee.removeCustom( "KADDRESSBOOK", "X-Department" ); if ( !mOfficeEdit->text().isEmpty() ) mAddressee.insertCustom( "KADDRESSBOOK", "X-Office", mOfficeEdit->text() ); else --- branches/KDE/3.5/kdepim/kaddressbook/kabcore.cpp #702251:702252 @@ -111,8 +111,6 @@ } mAddressBook->setErrorHandler( new KABC::GuiErrorHandler( mWidget ) ); - mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, - "X-Department", "KADDRESSBOOK" ); mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, "X-Profession", "KADDRESSBOOK" ); mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, --- branches/KDE/3.5/kdepim/kaddressbook/ldapsearchdialog.cpp #702251:702252 @@ -474,7 +474,7 @@ if ( addr.organization().isEmpty() ) addr.setOrganization( asUtf8( cli->mAttrs[ "Company" ].first() ) ); - addr.insertCustom("KADDRESSBOOK", "X-Department", asUtf8( cli->mAttrs[ "department" ].first() ) ); + addr.setDepartment( asUtf8( cli->mAttrs[ "department" ].first() ) ); // Address KABC::Address workAddr( KABC::Address::Work );