summaryrefslogtreecommitdiffabout
path: root/kabc/plugins/qtopia/qtopiaconverter.cpp
authorzautrix <zautrix>2004-10-20 21:49:51 (UTC)
committer zautrix <zautrix>2004-10-20 21:49:51 (UTC)
commitbb235c5a639b914574e1e247d2de6e479517585f (patch) (side-by-side diff)
tree0f074ec87d93b6f5fb81b6893f0174cabc52c1df /kabc/plugins/qtopia/qtopiaconverter.cpp
parent8e00329a4a5f0b66d26d20f067ab6aefca17f17a (diff)
downloadkdepimpi-bb235c5a639b914574e1e247d2de6e479517585f.zip
kdepimpi-bb235c5a639b914574e1e247d2de6e479517585f.tar.gz
kdepimpi-bb235c5a639b914574e1e247d2de6e479517585f.tar.bz2
qtopia resource fixes
Diffstat (limited to 'kabc/plugins/qtopia/qtopiaconverter.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/plugins/qtopia/qtopiaconverter.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/kabc/plugins/qtopia/qtopiaconverter.cpp b/kabc/plugins/qtopia/qtopiaconverter.cpp
index 040226c..106596f 100644
--- a/kabc/plugins/qtopia/qtopiaconverter.cpp
+++ b/kabc/plugins/qtopia/qtopiaconverter.cpp
@@ -198,303 +198,307 @@ bool QtopiaConverter::qtopiaToAddressee( const QDomElement& el, Addressee &adr )
adr.setRole( el.attribute( "JobTitle" ) );
if ( !el.attribute( "FileAs" ).isEmpty() )
adr.setFormattedName( el.attribute( "FileAs" ) );
adr.setOrganization( el.attribute( "Company" ) );
KABC::PhoneNumber businessPhoneNum( el.attribute( "BusinessPhone" ),
KABC::PhoneNumber::Work );
KABC::PhoneNumber businessFaxNum( el.attribute( "BusinessFax" ),
KABC::PhoneNumber::Work | KABC::PhoneNumber::Fax );
KABC::PhoneNumber businessMobile( el.attribute( "BusinessMobile" ),
KABC::PhoneNumber::Work | KABC::PhoneNumber::Cell );
KABC::PhoneNumber businessPager( el.attribute( "BusinessPager" ),
KABC::PhoneNumber::Work | KABC::PhoneNumber::Pager );
if ( !businessPhoneNum.number().isEmpty() )
adr.insertPhoneNumber( businessPhoneNum );
if ( !businessFaxNum.number().isEmpty() )
adr.insertPhoneNumber( businessFaxNum );
if ( !businessMobile.number().isEmpty() )
adr.insertPhoneNumber( businessMobile );
if ( !businessPager.number().isEmpty() )
adr.insertPhoneNumber( businessPager );
// Handle multiple mail addresses
QString DefaultEmail = el.attribute( "DefaultEmail" );
if ( !DefaultEmail.isEmpty() )
adr.insertEmail( DefaultEmail, true ); // preferred
QStringList Emails = QStringList::split(" ",el.attribute("Emails"));
int i;
for (i = 0;i < Emails.count();++i) {
if ( Emails[i] != DefaultEmail )
adr.insertEmail( Emails[i], false );
}
KABC::PhoneNumber homePhoneNum( el.attribute( "HomePhone" ),
KABC::PhoneNumber::Home );
KABC::PhoneNumber homeFax( el.attribute( "HomeFax" ),
KABC::PhoneNumber::Home | KABC::PhoneNumber::Fax );
KABC::PhoneNumber homeMobile( el.attribute( "HomeMobile" ),
KABC::PhoneNumber::Cell );
if ( !homePhoneNum.number().isEmpty() )
adr.insertPhoneNumber( homePhoneNum );
if ( !homeFax.number().isEmpty() )
adr.insertPhoneNumber( homeFax );
if ( !homeMobile.number().isEmpty() )
adr.insertPhoneNumber( homeMobile );
KABC::Address business( KABC::Address::Work );
business.setStreet( el.attribute( "BusinessStreet" ) );
business.setLocality( el.attribute( "BusinessCity" ) );
business.setRegion( el.attribute( "BusinessState" ) );
business.setPostalCode( el.attribute( "BusinessZip" ) );
business.setCountry( el.attribute( "BusinessCountry" ) );
if ( !business.isEmpty() )
adr.insertAddress( business );
KABC::Address home( KABC::Address::Home );
home.setStreet( el.attribute( "HomeStreet" ) );
home.setLocality( el.attribute( "HomeCity" ) );
home.setRegion( el.attribute( "HomeState" ) );
home.setPostalCode( el.attribute( "HomeZip" ) );
home.setCountry( el.attribute( "HomeCountry" ) );
if ( !home.isEmpty() )
adr.insertAddress( home );
adr.setNickName( el.attribute( "Nickname" ) );
adr.setNote( el.attribute( "Notes" ) );
{
QStringList categories = QStringList::split(";", el.attribute("Categories" ) );
QString cat;
QStringList added;
for ( uint i = 0; i < categories.count(); i++ ) {
cat = m_edit->categoryById( categories[ i ], "Contacts" );
// if name is not empty and we did not add the
// cat try to repair broken files
if ( !cat.isEmpty() && !added.contains( cat ) ) {
adr.insertCategory( cat );
added << cat;
}
}
}
if ( !el.attribute( "Department" ).isEmpty() )
adr.insertCustom( "KADDRESSBOOK", "X-Department", el.attribute( "Department" ) );
if ( !el.attribute( "HomeWebPage" ).isEmpty() )
adr.insertCustom( "opie", "HomeWebPage", el.attribute( "HomeWebPage" ) );
if ( !el.attribute( "Spouse" ).isEmpty() )
adr.insertCustom( "KADDRESSBOOK", "X-SpousesName", el.attribute( "Spouse" ) );
- if ( !el.attribute( "Gender" ).isEmpty() )
- adr.insertCustom( "opie", "Gender", el.attribute( "Gender" ) );
-
+ if ( !el.attribute( "Gender" ).isEmpty() ) {
+ if ( el.attribute( "Gender" ) == "1" )
+ adr.insertCustom( "KADDRESSBOOK", "X-Gender", "male" );
+ else if ( el.attribute( "Gender" ) == "2" )
+ adr.insertCustom( "KADDRESSBOOK", "X-Gender", "female" );
+ }
QDate ann = dateFromString( el.attribute( "Anniversary" ) );
if ( ann.isValid() ) {
QString dt = KGlobal::locale()->formatDate(ann, true, KLocale::ISODate);
adr.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt );
}
if ( !el.attribute( "Children" ).isEmpty() )
- adr.insertCustom("opie", "Children", el.attribute("Children") );
+ adr.insertCustom("KADDRESSBOOK", "X-Children", el.attribute("Children") );
if ( !el.attribute( "Office" ).isEmpty() )
adr.insertCustom("KADDRESSBOOK", "X-Office", el.attribute("Office") );
if ( !el.attribute( "Profession" ).isEmpty() )
adr.insertCustom("KADDRESSBOOK", "X-Profession", el.attribute("Profession") );
if ( !el.attribute( "Assistant" ).isEmpty() )
adr.insertCustom("KADDRESSBOOK", "X-AssistantsName", el.attribute("Assistant") );
if ( !el.attribute( "Manager" ).isEmpty() )
adr.insertCustom("KADDRESSBOOK", "X-ManagersName", el.attribute("Manager") );
}
return true;
}
bool QtopiaConverter::addresseeToQtopia( const Addressee &ab, QTextStream *stream )
{
*stream << "<Contact ";
*stream << "FirstName=\"" << escape(ab.givenName()) << "\" ";
*stream << "MiddleName=\"" << escape(ab.additionalName()) << "\" ";
*stream << "LastName=\"" << escape(ab.familyName()) << "\" ";
*stream << "Suffix=\"" << escape(ab.suffix()) << "\" ";
QString sortStr;
sortStr = ab.formattedName();
/* is formattedName is empty we use the assembled name as fallback */
if (sortStr.isEmpty() )
sortStr = ab.assembledName();
*stream << "FileAs=\"" << escape(sortStr) << "\" ";
*stream << "JobTitle=\"" << escape(ab.role()) << "\" ";
*stream << "Department=\"" << escape(ab.custom( "KADDRESSBOOK", "X-Department" )) << "\" ";
*stream << "Company=\"" << escape(ab.organization()) << "\" ";
KABC::PhoneNumber businessPhoneNum = ab.phoneNumber(KABC::PhoneNumber::Work );
*stream << "BusinessPhone=\"" << escape( businessPhoneNum.number() ) << "\" ";
KABC::PhoneNumber businessFaxNum = ab.phoneNumber(KABC::PhoneNumber::Work | KABC::PhoneNumber::Fax );
*stream << "BusinessFax=\"" << escape( businessFaxNum.number() )<< "\" ";
KABC::PhoneNumber businessMobile = ab.phoneNumber(KABC::PhoneNumber::Work | KABC::PhoneNumber::Cell );
*stream << "BusinessMobile=\"" << escape( businessMobile.number() ) << "\" ";
*stream << "DefaultEmail=\"" << escape( ab.preferredEmail() ) << "\" ";
QStringList list = ab.emails();
if ( list.count() > 0 ) {
QStringList::Iterator it = list.begin();
*stream << "Emails=\"" << escape( *it );
while (++it != list.end())
*stream << ' ' << escape( *it );
*stream << "\" ";
}
KABC::PhoneNumber homePhoneNum = ab.phoneNumber(KABC::PhoneNumber::Home );
*stream << "HomePhone=\"" << escape( homePhoneNum.number() ) << "\" ";
KABC::PhoneNumber homeFax = ab.phoneNumber( KABC::PhoneNumber::Home | KABC::PhoneNumber::Fax );
*stream << "HomeFax=\"" << escape( homeFax.number() ) << "\" ";
KABC::PhoneNumber homeMobile = ab.phoneNumber( KABC::PhoneNumber::Cell );
*stream << "HomeMobile=\"" << escape( homeMobile.number() ) << "\" ";
KABC::Address business = ab.address(KABC::Address::Work );
*stream << "BusinessStreet=\"" << escape( business.street() ) << "\" ";
*stream << "BusinessCity=\"" << escape( business.locality() ) << "\" ";
*stream << "BusinessZip=\"" << escape( business.postalCode() ) << "\" ";
*stream << "BusinessCountry=\"" << escape( business.country() ) << "\" ";
*stream << "BusinessState=\"" << escape( business.region() ) << "\" ";
//stream << "BusinessPager=\"" << << "\" ";
*stream << "Office=\"" << escape( ab.custom( "KADDRESSBOOK", "X-Office" ) ) << "\" ";
*stream << "Profession=\"" << escape( ab.custom( "KADDRESSBOOK", "X-Profession" ) ) << "\" ";
*stream << "Assistant=\"" << escape( ab.custom( "KADDRESSBOOK", "X-AssistantsName") ) << "\" ";
*stream << "Manager=\"" << escape( ab.custom( "KADDRESSBOOK", "X-ManagersName" ) ) << "\" ";
KABC::Address home = ab.address( KABC::Address::Home );
*stream << "HomeStreet=\"" << escape( home.street() ) << "\" ";
*stream << "HomeCity=\"" << escape( home.locality() ) << "\" ";
*stream << "HomeState=\"" << escape( home.region() ) << "\" ";
*stream << "HomeZip=\"" << escape( home.postalCode() ) << "\" ";
*stream << "HomeCountry=\"" << escape( home.country() ) << "\" ";
*stream << "HomeWebPage=\"" << escape( ab.custom( "opie", "HomeWebPage" ) ) << "\" ";
*stream << "Spouse=\"" << escape( ab.custom( "KADDRESSBOOK", "X-SpousesName") ) << "\" ";
- *stream << "Gender=\"" << escape( ab.custom( "opie", "Gender") ) << "\" ";
+ QString gen = "0";
+ if ( ab.custom( "KADDRESSBOOK", "X-Gender") == "male" )
+ gen = "1";
+ else if ( ab.custom( "KADDRESSBOOK", "X-Gender") == "female" )
+ gen = "2";
+ *stream << "Gender=\"" << escape( gen ) << "\" ";
if ( ab.birthday().date().isValid() )
*stream << "Birthday=\"" << escape( dateToString(ab.birthday().date() ) ) << "\" ";
- /*
- * Anniversary block again
- * Go from ISO -> QDate -> toString and then escape
- */
{
QDate ann = KGlobal::locale()->readDate( ab.custom("KADDRESSBOOK", "X-Anniversary" ),
"%Y-%m-%d");
if (ann.isValid() ) {
*stream << "Anniversary=\"" << escape( dateToString( ann ) ) << "\" ";
}
}
*stream << "Nickname=\"" << escape( ab.nickName() ) << "\" ";
- *stream << "Children=\"" << escape( ab.custom("opie", "Children" ) ) << "\" ";
+ *stream << "Children=\"" << escape( ab.custom("KADDRESSBOOK", "X-Children" ) ) << "\" ";
*stream << "Notes=\"" << escape( ab.note() ) << "\" ";
*stream << "Categories=\"" << categoriesToNumber( ab.categories(), "Contacts") << "\" ";
QString uid = ab.uid();
*stream << "Uid=\"" << uid << "\" ";
//*stream << map.toString( "addressbook", uid );
*stream << " />" << "\n";
return true;
}
#if 0
KTempFile* AddressBook::fromKDE( KSync::AddressBookSyncee *syncee, ExtraMap& map )
{
}
QStringList AddressBook::attributes()const {
QStringList lst;
lst << "FirstName";
lst << "MiddleName";
lst << "LastName";
lst << "Suffix";
lst << "FileAs";
lst << "JobTitle";
lst << "Department";
lst << "Company";
lst << "BusinessPhone";
lst << "BusinessFax";
lst << "BusinessMobile";
lst << "DefaultEmail";
lst << "Emails";
lst << "HomePhone";
lst << "HomeFax";
lst << "HomeMobile";
lst << "BusinessStreet";
lst << "BusinessCity";
lst << "BusinessZip";
lst << "BusinessCountry";
lst << "BusinessState";
lst << "Office";
lst << "Profession";
lst << "Assistant";
lst << "Manager";
lst << "HomeStreet";
lst << "HomeCity";
lst << "HomeState";
lst << "HomeZip";
lst << "HomeCountry";
lst << "HomeWebPage";
lst << "Spouse";
lst << "Gender";
lst << "Anniversary";
lst << "Nickname";
lst << "Children";
lst << "Notes";
lst << "Categories";
lst << "Uid";
lst << "Birthday";
return lst;
}
#endif
CategoryEdit::CategoryEdit(){
}
CategoryEdit::CategoryEdit(const QString &fileName){
parse( fileName );
}
CategoryEdit::~CategoryEdit(){
}
void CategoryEdit::save(const QString& fileName)const{
QFile file( fileName );
QString endl = "\n";
if ( file.open( IO_WriteOnly ) ) {
QTextStream stream( &file );
stream.setEncoding( QTextStream::UnicodeUTF8 );
stream << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" << endl;
stream << "<!DOCTYPE CategoryList>" << endl;
stream << "<Categories>" << endl;
for ( QValueList<OpieCategories>::ConstIterator it = m_categories.begin();
it != m_categories.end(); ++it )
{
stream << "<Category id=\""<< ( (*it).id() ) << "\" ";
if ( !(*it).app().isEmpty() )
stream << " app=\""<< ( (*it).app() ) << "\" ";
stream << "name=\"" << ( (*it).name() ) << "\" ";
stream << " />" << endl;