author | zautrix <zautrix> | 2005-01-14 11:37:40 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-01-14 11:37:40 (UTC) |
commit | 61c95ce0295f1397db6499c5b468a9fb3d32a0f4 (patch) (side-by-side diff) | |
tree | 2bceecc46d42a572adfad7d8e5000d1534642cbd /kde2file | |
parent | a46ecf5ed81460ec9a4e457798e1bf0fb74c5624 (diff) | |
download | kdepimpi-61c95ce0295f1397db6499c5b468a9fb3d32a0f4.zip kdepimpi-61c95ce0295f1397db6499c5b468a9fb3d32a0f4.tar.gz kdepimpi-61c95ce0295f1397db6499c5b468a9fb3d32a0f4.tar.bz2 |
made kapi saving faster
-rw-r--r-- | kde2file/abdump/main.cpp | 2 | ||||
-rw-r--r-- | kde2file/caldump/main.cpp | 2 |
2 files changed, 1 insertions, 3 deletions
diff --git a/kde2file/abdump/main.cpp b/kde2file/abdump/main.cpp index 1ee64f5..9ad78e5 100644 --- a/kde2file/abdump/main.cpp +++ b/kde2file/abdump/main.cpp @@ -1,195 +1,193 @@ /******************************************************************************* * main.cpp * * * * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * * * As a special exception, permission is given to link this program * * with any edition of Qt, and distribute the resulting executable, * * without including the source code for Qt in the source distribution. * * * ******************************************************************************/ #include <kcmdlineargs.h> #include <kaboutdata.h> #include <klocale.h> #include <kglobal.h> #include <kconfig.h> #include <kstandarddirs.h> #include <kdebug.h> #include <kabc/addressbook.h> #include <kabc/stdaddressbook.h> #include <kabc/resource.h> #include <kabc/vcardconverter.h> #include <qdatetime.h> #include <qfile.h> #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() ) continue; - if ( (*it).resource()->readOnly() ) - 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; ++itA; standardAddressBook->removeAddressee( it2 ); ++deleted; } else { ++itA; } } //standardAddressBook->saveAll(); standardAddressBook->setAutomaticSave( true ); qDebug("************************************* "); qDebug("*************kdeABdump*************** "); qDebug("************************************* "); qDebug("Addressbook entries\nchanged %d\ndeleted %d\nadded %d\nfrom file %s", changedC,deleted, added, fileName.latin1()); } else qDebug("error open file "); } delete standardAddressBook; //KABC::StdAddressBook::close(); //StdAddressBook::mSelf = 0; qDebug("ente "); return 0; } diff --git a/kde2file/caldump/main.cpp b/kde2file/caldump/main.cpp index be1735b..08ccafb 100644 --- a/kde2file/caldump/main.cpp +++ b/kde2file/caldump/main.cpp @@ -1,253 +1,253 @@ /******************************************************************************* * main.cpp * * * * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * * * As a special exception, permission is given to link this program * * with any edition of Qt, and distribute the resulting executable, * * without including the source code for Qt in the source distribution. * * * ******************************************************************************/ #ifdef HAVE_CONFIG_H #include "config.h" #endif #if TIME_WITH_SYS_TIME # include <sys/time.h> # include <time.h> #else # if HAVE_SYS_TIME_H # include <sys/time.h> # else # include <time.h> # endif #endif #include <kcmdlineargs.h> #include <kaboutdata.h> #include <klocale.h> #include <kglobal.h> #include <kconfig.h> #include <kstandarddirs.h> #include <kdebug.h> #include <libkcal/calformat.h> #include <libkcal/calendarresources.h> #include <libkcal/resourcelocal.h> #include <libkcal/filestorage.h> #include <libkcal/icalformat.h> #include <qdatetime.h> #include <qfile.h> #include <qdir.h> #include <qapplication.h> #include <stdlib.h> #include <iostream> using namespace KCal; using namespace std; static const char progName[] = "kdecalendar"; static const char progDisplay[] = "KDE_Calendar"; static const char progVersion[] = "33.1/3"; static const char progDesc[] = "A command line interface to KDE calendars"; static KCmdLineOptions options[] = { { "dump", I18N_NOOP( "Dumps calendar" ), 0 }, { "read", I18N_NOOP( "Reads calendar" ), 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 ()+"/.kdecalendardump.ics"; CalendarResources *calendarResource = 0; CalendarLocal *localCalendar = 0; KConfig c( locate( "config", "korganizerrc" ) ); c.setGroup( "Time & Date" ); QString tz = c.readEntry( "TimeZoneId" ); calendarResource = new CalendarResources( tz ); calendarResource->readConfig(); calendarResource->load(); qDebug("************************************* "); qDebug("**************kdecaldump************* "); qDebug("************************************* "); qDebug("Using timezone ID: %s", calendarResource->timeZoneId().latin1()); if ( !read ) { localCalendar = new CalendarLocal(); localCalendar->setTimeZoneId( calendarResource->timeZoneId()); KCal::Incidence::List allInc = calendarResource->rawIncidences(); Incidence::List::ConstIterator it; int num = 0; for( it = allInc.begin(); it != allInc.end(); ++it ) { ResourceCalendar * re = calendarResource->resource( (*it) ); - if ( re && !re->readOnly() ) { + if ( re && /*!re->readOnly() now readonly syncing possible */) { ++num; Incidence* cl = (*it)->clone(); cl->setLastModified( (*it)->lastModified() ); if ( cl->type() == "Journal" ) localCalendar->addJournal( (Journal *) cl ); else if ( cl->type() == "Todo" ) localCalendar->addTodo( (Todo *) cl ); else if ( cl->type() == "Event" ) localCalendar->addEvent( (Event *) cl ); } } FileStorage* storage = new FileStorage( calendarResource ); storage->setFileName( fileName ); storage->setSaveFormat( new ICalFormat() ); storage->save(); delete storage; qDebug("************************************* "); qDebug("************kdecaldump*************** "); qDebug("************************************* "); qDebug("%d calendar entries dumped to file %s", num, fileName.latin1()); } else { qDebug("************load"); localCalendar = new CalendarLocal(); localCalendar->setTimeZoneId( calendarResource->timeZoneId()); FileStorage* storage = new FileStorage( localCalendar ); storage->setFileName( fileName ); int num = 0; int del = 0; int add = 0; if ( storage->load() ) { qDebug("***********loaded!"); KCal::Incidence::List newInc = localCalendar->rawIncidences(); Incidence::List::ConstIterator it; for( it = newInc.begin(); it != newInc.end(); ++it ) { if ( (*it)->pilotId() > 1 ) { //changed qDebug("*********pilot id %d %s ",(*it)->pilotId() ,(*it)->summary().latin1()); Incidence *incOld = calendarResource->incidence( (*it)->uid() ); ResourceCalendar * res = 0; if ( incOld ) res = calendarResource->resource( incOld ); if ( res ) { Incidence* cl = (*it)->clone(); cl->setPilotId( incOld->pilotId() ); ++num; if ( incOld->type() == "Journal" ) calendarResource->deleteJournal( (Journal *) incOld ); else if ( incOld->type() == "Todo" ) calendarResource->deleteTodo( (Todo *) incOld ); else if ( incOld->type() == "Event" ) calendarResource->deleteEvent( (Event *) incOld ); qDebug("*********change incidence %s ",cl->summary().latin1()); if ( cl->type() == "Journal" ) calendarResource->addJournal( (Journal *) cl, res ); else if ( cl->type() == "Todo" ) calendarResource->addTodo( (Todo *) cl, res ); else if ( cl->type() == "Event" ) calendarResource->addEvent( (Event *) cl, res ); } else { Incidence* cl = (*it)->clone(); qDebug("*********add incidence %s ",cl->summary().latin1()); calendarResource->addIncidence( cl ); ++add; } } else { // maybe added Incidence *incOld = calendarResource->incidence( (*it)->uid() ); if ( !incOld ) { //added Incidence* cl = (*it)->clone(); qDebug("*********add incidence %s ",cl->summary().latin1()); calendarResource->addIncidence( cl ); ++add; } } } KCal::Incidence::List allInc = calendarResource->rawIncidences(); for( it = allInc.begin(); it != allInc.end(); ++it ) { ResourceCalendar * re = calendarResource->resource( (*it) ); if ( re && !re->readOnly() ) { Incidence* cl = localCalendar->incidence( (*it)->uid() ); if ( !cl ) { ++del; cl = (*it); if ( cl->type() == "Journal" ) calendarResource->deleteJournal( (Journal *) cl ); else if ( cl->type() == "Todo" ) calendarResource->deleteTodo( (Todo *) cl ); else if ( cl->type() == "Event" ) calendarResource->deleteEvent( (Event *) cl ); //QDateTime lm = cl->lastModified(); //cl->setResources( (*it)->resources() ); //cl->setLastModified(lm); } } } calendarResource->save(); qDebug("************************************* "); qDebug("************kdecaldump*************** "); qDebug("************************************* "); qDebug("Calendar entries\nchanged %d\ndeleted %d\nadded %d\nfrom file %s", num,del, add, fileName.latin1()); } else qDebug("ERROR loading file %s",fileName.latin1() ); } if ( localCalendar ) { localCalendar->close(); delete localCalendar; } if ( calendarResource ) { calendarResource->close(); delete calendarResource; } qDebug("ente "); return 0; } |