-rw-r--r-- | kde2file/abdump/main.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kde2file/abdump/main.cpp b/kde2file/abdump/main.cpp index b359cfe..824d054 100644 --- a/kde2file/abdump/main.cpp +++ b/kde2file/abdump/main.cpp @@ -41,129 +41,130 @@ #include <qdir.h> #include <qapplication.h> #include <stdlib.h> #include <iostream> using namespace std; static const char progName[] = "kdecalendar"; static const char progDisplay[] = "KDE_Addressbook"; static const char progVersion[] = "33.1/3"; static const char progDesc[] = "A command line interface to KDE addressbooks"; static KCmdLineOptions options[] = { { "dump", I18N_NOOP( "Dumps addressbook" ), 0 }, { "read", I18N_NOOP( "Reads addressbook" ), 0 }, KCmdLineLastOption }; int main( int argc, char *argv[] ) { KAboutData aboutData( progName, // internal program name I18N_NOOP( progDisplay ), // displayable program name. progVersion, // version string I18N_NOOP( progDesc ), // short porgram description KAboutData::License_GPL, // license type "(c) 2004, Lutz Rogowski", // copyright statement 0, // any free form text "", // program home page address "bugs.kde.org" // bug report email address ); // KCmdLineArgs::init() final 'true' argument indicates no commandline options // for QApplication/KApplication (no KDE or Qt options) KCmdLineArgs::init( argc, argv, &aboutData, true ); KCmdLineArgs::addCmdLineOptions( options ); // Add our own options. KInstance ins ( progName ); KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); bool read = false; if ( args->isSet( "read" ) ) { read = true; qDebug("read "); } QString fileName = QDir::homeDirPath ()+"/.kdeaddressbookdump.vcf"; KABC::StdAddressBook* standardAddressBook = KABC::StdAddressBook::self(); standardAddressBook->setAutomaticSave( false ); qDebug("************************************* "); qDebug("***************kdeABdump************* "); qDebug("************************************* "); if ( !read ) { KABC::AddressBook::Iterator it; KABC::VCardConverter converter; QString datastream; for( it = standardAddressBook->begin(); it != standardAddressBook->end(); ++it ) { - if ( (*it).isEmpty() || ! (*it).resource() ) + // if ( (*it).isEmpty() || ! (*it).resource() ) + if ( (*it).isEmpty() ) continue; KABC::Addressee a = ( *it ); QString vcard = converter.createVCard( a ); vcard += QString("\r\n"); datastream += vcard; } QFile outFile(fileName); if ( outFile.open(IO_WriteOnly) ) { QTextStream t( &outFile ); // use a text stream t.setEncoding( QTextStream::UnicodeUTF8 ); t <<datastream; t << "\r\n\r\n"; outFile.close(); } } else { //Addressee::List aList;//parseVCards( const QString& vcard ); KABC::Addressee::List list; int added = 0, changedC = 0, deleted = 0; QFile file( fileName ); if ( file.open( IO_ReadOnly ) ) { QTextStream t( &file ); // use a text stream t.setEncoding( QTextStream::UnicodeUTF8 ); QString data; data = t.read(); file.close(); KABC::VCardConverter converter; list = converter.parseVCards( data ); qDebug("kdeABdump::file has %d entries", list.count()); KABC::Addressee::List::Iterator it; for ( it = list.begin();it != list.end();++it) { (*it).setChanged( true ); bool changed = ((*it).custom( "KADDRESSBOOK", "X-ExternalID" ) == "changed"); (*it).removeCustom( "KADDRESSBOOK", "X-ExternalID" ); //qDebug("ext %s ", (*it).custom( "KADDRESSBOOK", "X-ExternalID" ).latin1()); if ( changed ) { //qDebug("changed Addressee found! "); KABC::Addressee std = standardAddressBook->findByUid( (*it).uid() ); if ( ! std.isEmpty() ) (*it).setResource(std.resource()); standardAddressBook->insertAddressee( (*it) ); ++changedC; } else { //maybe added? KABC::Addressee std = standardAddressBook->findByUid( (*it).uid() ); if ( std.isEmpty() ) { standardAddressBook->insertAddressee( (*it) ); ++added; } } } KABC::AddressBook::Iterator itA = standardAddressBook->begin(); KABC::AddressBook::Iterator it2 ; while ( itA != standardAddressBook->end() ) { bool found = false; KABC::Addressee::List::Iterator itL; for ( itL = list.begin();itL != list.end();++itL) { if ( (*itL).uid() == (*itA).uid() ) { found = true; break; } } if ( !found ) { it2 = itA; |