summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2004-10-07 07:59:05 (UTC)
committer zautrix <zautrix>2004-10-07 07:59:05 (UTC)
commitf1699230250cdfb37216121257196b5be9f094fa (patch) (unidiff)
treee6bf9c6a3814e9a5ee617a726266489aa820bb9c /korganizer
parent77280f6a176a15b60004f312e6cacdfbbd3909c1 (diff)
downloadkdepimpi-f1699230250cdfb37216121257196b5be9f094fa.zip
kdepimpi-f1699230250cdfb37216121257196b5be9f094fa.tar.gz
kdepimpi-f1699230250cdfb37216121257196b5be9f094fa.tar.bz2
Fixed debug messages
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp63
1 files changed, 32 insertions, 31 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index b3b4cdb..d71ea08 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -1043,802 +1043,803 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
1043 inR->setRevision( maxrev ); 1043 inR->setRevision( maxrev );
1044 idS = inL->IDStr(); 1044 idS = inL->IDStr();
1045 local->deleteIncidence( inL ); 1045 local->deleteIncidence( inL );
1046 inL = inR->clone(); 1046 inL = inR->clone();
1047 inL->setIDStr( idS ); 1047 inL->setIDStr( idS );
1048 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1048 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1049 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1049 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1050 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) ); 1050 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) );
1051 } 1051 }
1052 local->addIncidence( inL ); 1052 local->addIncidence( inL );
1053 ++changedLocal; 1053 ++changedLocal;
1054 } 1054 }
1055 } 1055 }
1056 } else { // no conflict 1056 } else { // no conflict
1057 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1057 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1058 QString des = eventLSync->description(); 1058 QString des = eventLSync->description();
1059 QString pref = "e"; 1059 QString pref = "e";
1060 if ( inR->type() == "Todo" ) 1060 if ( inR->type() == "Todo" )
1061 pref = "t"; 1061 pref = "t";
1062 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it 1062 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it
1063 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); 1063 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE );
1064 //remote->deleteIncidence( inR ); 1064 //remote->deleteIncidence( inR );
1065 ++deletedEventR; 1065 ++deletedEventR;
1066 } else { 1066 } else {
1067 inR->setLastModified( modifiedCalendar ); 1067 inR->setLastModified( modifiedCalendar );
1068 inL = inR->clone(); 1068 inL = inR->clone();
1069 local->addIncidence( inL ); 1069 local->addIncidence( inL );
1070 ++addedEvent; 1070 ++addedEvent;
1071 } 1071 }
1072 } else { 1072 } else {
1073 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { 1073 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) {
1074 inR->setLastModified( modifiedCalendar ); 1074 inR->setLastModified( modifiedCalendar );
1075 local->addIncidence( inR->clone() ); 1075 local->addIncidence( inR->clone() );
1076 ++addedEvent; 1076 ++addedEvent;
1077 } else { 1077 } else {
1078 checkExternSyncEvent(eventRSyncSharp, inR); 1078 checkExternSyncEvent(eventRSyncSharp, inR);
1079 remote->deleteIncidence( inR ); 1079 remote->deleteIncidence( inR );
1080 ++deletedEventR; 1080 ++deletedEventR;
1081 } 1081 }
1082 } 1082 }
1083 } 1083 }
1084 } 1084 }
1085 inR = er.next(); 1085 inR = er.next();
1086 } 1086 }
1087 QPtrList<Incidence> el = local->rawIncidences(); 1087 QPtrList<Incidence> el = local->rawIncidences();
1088 inL = el.first(); 1088 inL = el.first();
1089 modulo = (el.count()/10)+1; 1089 modulo = (el.count()/10)+1;
1090 bar.setCaption (i18n("Add / remove events") ); 1090 bar.setCaption (i18n("Add / remove events") );
1091 bar.setTotalSteps ( el.count() ) ; 1091 bar.setTotalSteps ( el.count() ) ;
1092 bar.show(); 1092 bar.show();
1093 incCounter = 0; 1093 incCounter = 0;
1094 1094
1095 while ( inL ) { 1095 while ( inL ) {
1096 1096
1097 qApp->processEvents(); 1097 qApp->processEvents();
1098 if ( ! bar.isVisible() ) 1098 if ( ! bar.isVisible() )
1099 return false; 1099 return false;
1100 if ( incCounter % modulo == 0 ) 1100 if ( incCounter % modulo == 0 )
1101 bar.setProgress( incCounter ); 1101 bar.setProgress( incCounter );
1102 ++incCounter; 1102 ++incCounter;
1103 uid = inL->uid(); 1103 uid = inL->uid();
1104 bool skipIncidence = false; 1104 bool skipIncidence = false;
1105 if ( uid.left(15) == QString("last-syncEvent-") ) 1105 if ( uid.left(15) == QString("last-syncEvent-") )
1106 skipIncidence = true; 1106 skipIncidence = true;
1107 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" ) 1107 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" )
1108 skipIncidence = true; 1108 skipIncidence = true;
1109 if ( !skipIncidence ) { 1109 if ( !skipIncidence ) {
1110 inR = remote->incidence( uid ); 1110 inR = remote->incidence( uid );
1111 if ( ! inR ) { 1111 if ( ! inR ) {
1112 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1112 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1113 if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { 1113 if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) {
1114 checkExternSyncEvent(eventLSyncSharp, inL); 1114 checkExternSyncEvent(eventLSyncSharp, inL);
1115 local->deleteIncidence( inL ); 1115 local->deleteIncidence( inL );
1116 ++deletedEventL; 1116 ++deletedEventL;
1117 } else { 1117 } else {
1118 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { 1118 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) {
1119 inL->removeID(mCurrentSyncDevice ); 1119 inL->removeID(mCurrentSyncDevice );
1120 ++addedEventR; 1120 ++addedEventR;
1121 //qDebug("remote added Incidence %s ", inL->summary().latin1()); 1121 //qDebug("remote added Incidence %s ", inL->summary().latin1());
1122 inL->setLastModified( modifiedCalendar ); 1122 inL->setLastModified( modifiedCalendar );
1123 inR = inL->clone(); 1123 inR = inL->clone();
1124 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 1124 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
1125 remote->addIncidence( inR ); 1125 remote->addIncidence( inR );
1126 } 1126 }
1127 } 1127 }
1128 } else { 1128 } else {
1129 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { 1129 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) {
1130 checkExternSyncEvent(eventLSyncSharp, inL); 1130 checkExternSyncEvent(eventLSyncSharp, inL);
1131 local->deleteIncidence( inL ); 1131 local->deleteIncidence( inL );
1132 ++deletedEventL; 1132 ++deletedEventL;
1133 } else { 1133 } else {
1134 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { 1134 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) {
1135 ++addedEventR; 1135 ++addedEventR;
1136 inL->setLastModified( modifiedCalendar ); 1136 inL->setLastModified( modifiedCalendar );
1137 remote->addIncidence( inL->clone() ); 1137 remote->addIncidence( inL->clone() );
1138 } 1138 }
1139 } 1139 }
1140 } 1140 }
1141 } 1141 }
1142 } 1142 }
1143 inL = el.next(); 1143 inL = el.next();
1144 } 1144 }
1145 int delFut = 0; 1145 int delFut = 0;
1146 if ( KOPrefs::instance()->mWriteBackInFuture ) { 1146 if ( KOPrefs::instance()->mWriteBackInFuture ) {
1147 er = remote->rawIncidences(); 1147 er = remote->rawIncidences();
1148 inR = er.first(); 1148 inR = er.first();
1149 QDateTime dt; 1149 QDateTime dt;
1150 QDateTime cur = QDateTime::currentDateTime().addDays( -7 ); 1150 QDateTime cur = QDateTime::currentDateTime().addDays( -7 );
1151 QDateTime end = cur.addDays( (KOPrefs::instance()->mWriteBackInFuture +1 ) *7 ); 1151 QDateTime end = cur.addDays( (KOPrefs::instance()->mWriteBackInFuture +1 ) *7 );
1152 while ( inR ) { 1152 while ( inR ) {
1153 if ( inR->type() == "Todo" ) { 1153 if ( inR->type() == "Todo" ) {
1154 Todo * t = (Todo*)inR; 1154 Todo * t = (Todo*)inR;
1155 if ( t->hasDueDate() ) 1155 if ( t->hasDueDate() )
1156 dt = t->dtDue(); 1156 dt = t->dtDue();
1157 else 1157 else
1158 dt = cur.addSecs( 62 ); 1158 dt = cur.addSecs( 62 );
1159 } 1159 }
1160 else if (inR->type() == "Event" ) { 1160 else if (inR->type() == "Event" ) {
1161 bool ok; 1161 bool ok;
1162 dt = inR->getNextOccurence( cur, &ok ); 1162 dt = inR->getNextOccurence( cur, &ok );
1163 if ( !ok ) 1163 if ( !ok )
1164 dt = cur.addSecs( -62 ); 1164 dt = cur.addSecs( -62 );
1165 } 1165 }
1166 else 1166 else
1167 dt = inR->dtStart(); 1167 dt = inR->dtStart();
1168 if ( dt < cur || dt > end ) { 1168 if ( dt < cur || dt > end ) {
1169 remote->deleteIncidence( inR ); 1169 remote->deleteIncidence( inR );
1170 ++delFut; 1170 ++delFut;
1171 } 1171 }
1172 inR = er.next(); 1172 inR = er.next();
1173 } 1173 }
1174 } 1174 }
1175 bar.hide(); 1175 bar.hide();
1176 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 ); 1176 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 );
1177 eventLSync->setReadOnly( false ); 1177 eventLSync->setReadOnly( false );
1178 eventLSync->setDtStart( mLastCalendarSync ); 1178 eventLSync->setDtStart( mLastCalendarSync );
1179 eventRSync->setDtStart( mLastCalendarSync ); 1179 eventRSync->setDtStart( mLastCalendarSync );
1180 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1180 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1181 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1181 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1182 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; 1182 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ;
1183 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); 1183 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName );
1184 eventLSync->setReadOnly( true ); 1184 eventLSync->setReadOnly( true );
1185 if ( mGlobalSyncMode == SYNC_MODE_NORMAL) 1185 if ( mGlobalSyncMode == SYNC_MODE_NORMAL)
1186 remote->addEvent( eventRSync ); 1186 remote->addEvent( eventRSync );
1187 QString mes; 1187 QString mes;
1188 mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n"),addedEvent, addedEventR, changedLocal, changedRemote, deletedEventL, deletedEventR ); 1188 mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n"),addedEvent, addedEventR, changedLocal, changedRemote, deletedEventL, deletedEventR );
1189 QString delmess; 1189 QString delmess;
1190 if ( delFut ) { 1190 if ( delFut ) {
1191 delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are in the past or\nmore than %d weeks in the future.\n"),delFut, KOPrefs::instance()->mWriteBackInFuture ); 1191 delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are in the past or\nmore than %d weeks in the future.\n"),delFut, KOPrefs::instance()->mWriteBackInFuture );
1192 mes += delmess; 1192 mes += delmess;
1193 } 1193 }
1194 if ( KOPrefs::instance()->mShowSyncSummary ) { 1194 if ( KOPrefs::instance()->mShowSyncSummary ) {
1195 KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") ); 1195 KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") );
1196 } 1196 }
1197 qDebug( mes ); 1197 qDebug( mes );
1198 mCalendar->checkAlarmForIncidence( 0, true ); 1198 mCalendar->checkAlarmForIncidence( 0, true );
1199 return syncOK; 1199 return syncOK;
1200} 1200}
1201 1201
1202void CalendarView::setSyncDevice( QString s ) 1202void CalendarView::setSyncDevice( QString s )
1203{ 1203{
1204 mCurrentSyncDevice= s; 1204 mCurrentSyncDevice= s;
1205} 1205}
1206void CalendarView::setSyncName( QString s ) 1206void CalendarView::setSyncName( QString s )
1207{ 1207{
1208 mCurrentSyncName= s; 1208 mCurrentSyncName= s;
1209} 1209}
1210bool CalendarView::syncCalendar(QString filename, int mode) 1210bool CalendarView::syncCalendar(QString filename, int mode)
1211{ 1211{
1212 mGlobalSyncMode = SYNC_MODE_NORMAL; 1212 mGlobalSyncMode = SYNC_MODE_NORMAL;
1213 CalendarLocal* calendar = new CalendarLocal(); 1213 CalendarLocal* calendar = new CalendarLocal();
1214 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 1214 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
1215 FileStorage* storage = new FileStorage( calendar ); 1215 FileStorage* storage = new FileStorage( calendar );
1216 bool syncOK = false; 1216 bool syncOK = false;
1217 storage->setFileName( filename ); 1217 storage->setFileName( filename );
1218 // qDebug("loading ... "); 1218 // qDebug("loading ... ");
1219 if ( storage->load() ) { 1219 if ( storage->load() ) {
1220 getEventViewerDialog()->setSyncMode( true ); 1220 getEventViewerDialog()->setSyncMode( true );
1221 syncOK = synchronizeCalendar( mCalendar, calendar, mode ); 1221 syncOK = synchronizeCalendar( mCalendar, calendar, mode );
1222 getEventViewerDialog()->setSyncMode( false ); 1222 getEventViewerDialog()->setSyncMode( false );
1223 if ( syncOK ) { 1223 if ( syncOK ) {
1224 if ( KOPrefs::instance()->mWriteBackFile ) 1224 if ( KOPrefs::instance()->mWriteBackFile )
1225 { 1225 {
1226 storage->setSaveFormat( new ICalFormat() ); 1226 storage->setSaveFormat( new ICalFormat() );
1227 storage->save(); 1227 storage->save();
1228 } 1228 }
1229 } 1229 }
1230 setModified( true ); 1230 setModified( true );
1231 } 1231 }
1232 delete storage; 1232 delete storage;
1233 delete calendar; 1233 delete calendar;
1234 if ( syncOK ) 1234 if ( syncOK )
1235 updateView(); 1235 updateView();
1236 return syncOK; 1236 return syncOK;
1237} 1237}
1238void CalendarView::syncPhone() 1238void CalendarView::syncPhone()
1239{ 1239{
1240 syncExternal( 1 ); 1240 syncExternal( 1 );
1241} 1241}
1242void CalendarView::syncExternal( int mode ) 1242void CalendarView::syncExternal( int mode )
1243{ 1243{
1244 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 1244 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
1245 //mCurrentSyncDevice = "sharp-DTM"; 1245 //mCurrentSyncDevice = "sharp-DTM";
1246 if ( KOPrefs::instance()->mAskForPreferences ) 1246 if ( KOPrefs::instance()->mAskForPreferences )
1247 edit_sync_options(); 1247 edit_sync_options();
1248 qApp->processEvents(); 1248 qApp->processEvents();
1249 CalendarLocal* calendar = new CalendarLocal(); 1249 CalendarLocal* calendar = new CalendarLocal();
1250 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 1250 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
1251 bool syncOK = false; 1251 bool syncOK = false;
1252 bool loadSuccess = false; 1252 bool loadSuccess = false;
1253 PhoneFormat* phoneFormat = 0; 1253 PhoneFormat* phoneFormat = 0;
1254#ifndef DESKTOP_VERSION 1254#ifndef DESKTOP_VERSION
1255 SharpFormat* sharpFormat = 0; 1255 SharpFormat* sharpFormat = 0;
1256 if ( mode == 0 ) { // sharp 1256 if ( mode == 0 ) { // sharp
1257 sharpFormat = new SharpFormat () ; 1257 sharpFormat = new SharpFormat () ;
1258 loadSuccess = sharpFormat->load( calendar, mCalendar ); 1258 loadSuccess = sharpFormat->load( calendar, mCalendar );
1259 1259
1260 } else 1260 } else
1261#endif 1261#endif
1262 if ( mode == 1 ) { // phone 1262 if ( mode == 1 ) { // phone
1263 phoneFormat = new PhoneFormat (mCurrentSyncDevice, 1263 phoneFormat = new PhoneFormat (mCurrentSyncDevice,
1264 KOPrefs::instance()->mPhoneDevice, 1264 KOPrefs::instance()->mPhoneDevice,
1265 KOPrefs::instance()->mPhoneConnection, 1265 KOPrefs::instance()->mPhoneConnection,
1266 KOPrefs::instance()->mPhoneModel); 1266 KOPrefs::instance()->mPhoneModel);
1267 loadSuccess = phoneFormat->load( calendar,mCalendar); 1267 loadSuccess = phoneFormat->load( calendar,mCalendar);
1268 1268
1269 } else 1269 } else
1270 return; 1270 return;
1271 if ( loadSuccess ) { 1271 if ( loadSuccess ) {
1272 getEventViewerDialog()->setSyncMode( true ); 1272 getEventViewerDialog()->setSyncMode( true );
1273 syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs ); 1273 syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs );
1274 getEventViewerDialog()->setSyncMode( false ); 1274 getEventViewerDialog()->setSyncMode( false );
1275 qApp->processEvents(); 1275 qApp->processEvents();
1276 if ( syncOK ) { 1276 if ( syncOK ) {
1277 if ( KOPrefs::instance()->mWriteBackFile ) 1277 if ( KOPrefs::instance()->mWriteBackFile )
1278 { 1278 {
1279 QPtrList<Incidence> iL = mCalendar->rawIncidences(); 1279 QPtrList<Incidence> iL = mCalendar->rawIncidences();
1280 Incidence* inc = iL.first(); 1280 Incidence* inc = iL.first();
1281 if ( phoneFormat ) { 1281 if ( phoneFormat ) {
1282 while ( inc ) { 1282 while ( inc ) {
1283 inc->removeID(mCurrentSyncDevice); 1283 inc->removeID(mCurrentSyncDevice);
1284 inc = iL.next(); 1284 inc = iL.next();
1285 } 1285 }
1286 } 1286 }
1287#ifndef DESKTOP_VERSION 1287#ifndef DESKTOP_VERSION
1288 if ( sharpFormat ) 1288 if ( sharpFormat )
1289 sharpFormat->save(calendar); 1289 sharpFormat->save(calendar);
1290#endif 1290#endif
1291 if ( phoneFormat ) 1291 if ( phoneFormat )
1292 phoneFormat->save(calendar); 1292 phoneFormat->save(calendar);
1293 iL = calendar->rawIncidences(); 1293 iL = calendar->rawIncidences();
1294 inc = iL.first(); 1294 inc = iL.first();
1295 Incidence* loc; 1295 Incidence* loc;
1296 while ( inc ) { 1296 while ( inc ) {
1297 if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) { 1297 if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) {
1298 loc = mCalendar->incidence(inc->uid() ); 1298 loc = mCalendar->incidence(inc->uid() );
1299 if ( loc ) { 1299 if ( loc ) {
1300 loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) ); 1300 loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) );
1301 loc->setCsum( mCurrentSyncDevice, inc->getCsum(mCurrentSyncDevice) ); 1301 loc->setCsum( mCurrentSyncDevice, inc->getCsum(mCurrentSyncDevice) );
1302 } 1302 }
1303 } 1303 }
1304 inc = iL.next(); 1304 inc = iL.next();
1305 } 1305 }
1306 Incidence* lse = getLastSyncEvent(); 1306 Incidence* lse = getLastSyncEvent();
1307 if ( lse ) { 1307 if ( lse ) {
1308 lse->setReadOnly( false ); 1308 lse->setReadOnly( false );
1309 lse->setDescription( "" ); 1309 lse->setDescription( "" );
1310 lse->setReadOnly( true ); 1310 lse->setReadOnly( true );
1311 } 1311 }
1312 } 1312 }
1313 } 1313 }
1314 setModified( true ); 1314 setModified( true );
1315 } else { 1315 } else {
1316 QString question = i18n("Sorry, the database access\ncommand failed!\n\nNothing synced!\n") ; 1316 QString question = i18n("Sorry, the database access\ncommand failed!\n\nNothing synced!\n") ;
1317 QMessageBox::information( 0, i18n("KO/Pi Import - ERROR"), 1317 QMessageBox::information( 0, i18n("KO/Pi Import - ERROR"),
1318 question, i18n("Ok")) ; 1318 question, i18n("Ok")) ;
1319 1319
1320 } 1320 }
1321 delete calendar; 1321 delete calendar;
1322 updateView(); 1322 updateView();
1323 return ;//syncOK; 1323 return ;//syncOK;
1324 1324
1325} 1325}
1326void CalendarView::syncSharp() 1326void CalendarView::syncSharp()
1327{ 1327{
1328 syncExternal( 0 ); 1328 syncExternal( 0 );
1329 1329
1330} 1330}
1331 1331
1332 1332
1333//#include <kabc/stdaddressbook.h> 1333//#include <kabc/stdaddressbook.h>
1334bool CalendarView::importBday() 1334bool CalendarView::importBday()
1335{ 1335{
1336#ifndef KORG_NOKABC 1336#ifndef KORG_NOKABC
1337 1337
1338#ifdef DESKTOP_VERSION 1338#ifdef DESKTOP_VERSION
1339 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true ); 1339 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true );
1340 KABC::AddressBook::Iterator it; 1340 KABC::AddressBook::Iterator it;
1341 int count = 0; 1341 int count = 0;
1342 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { 1342 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) {
1343 ++count; 1343 ++count;
1344 } 1344 }
1345 QProgressBar bar(count,0 ); 1345 QProgressBar bar(count,0 );
1346 int w = 300; 1346 int w = 300;
1347 if ( QApplication::desktop()->width() < 320 ) 1347 if ( QApplication::desktop()->width() < 320 )
1348 w = 220; 1348 w = 220;
1349 int h = bar.sizeHint().height() ; 1349 int h = bar.sizeHint().height() ;
1350 int dw = QApplication::desktop()->width(); 1350 int dw = QApplication::desktop()->width();
1351 int dh = QApplication::desktop()->height(); 1351 int dh = QApplication::desktop()->height();
1352 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1352 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1353 bar.show(); 1353 bar.show();
1354 bar.setCaption (i18n("Reading addressbook - close to abort!") ); 1354 bar.setCaption (i18n("Reading addressbook - close to abort!") );
1355 qApp->processEvents(); 1355 qApp->processEvents();
1356 count = 0; 1356 count = 0;
1357 int addCount = 0; 1357 int addCount = 0;
1358 KCal::Attendee* a = 0; 1358 KCal::Attendee* a = 0;
1359 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { 1359 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) {
1360 if ( ! bar.isVisible() ) 1360 if ( ! bar.isVisible() )
1361 return false; 1361 return false;
1362 bar.setProgress( count++ ); 1362 bar.setProgress( count++ );
1363 qApp->processEvents(); 1363 qApp->processEvents();
1364 //qDebug("add BDay %s %s", (*it).realName().latin1(),(*it).birthday().date().toString().latin1() ); 1364 //qDebug("add BDay %s %s", (*it).realName().latin1(),(*it).birthday().date().toString().latin1() );
1365 if ( (*it).birthday().date().isValid() ){ 1365 if ( (*it).birthday().date().isValid() ){
1366 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ; 1366 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ;
1367 if ( addAnniversary( (*it).birthday().date(), (*it).assembledName(), a, true ) ) 1367 if ( addAnniversary( (*it).birthday().date(), (*it).assembledName(), a, true ) )
1368 ++addCount; 1368 ++addCount;
1369 } 1369 }
1370 QDate anni = KGlobal::locale()->readDate( (*it).custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); 1370 QDate anni = KGlobal::locale()->readDate( (*it).custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d");
1371 if ( anni.isValid() ){ 1371 if ( anni.isValid() ){
1372 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ; 1372 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ;
1373 if ( addAnniversary( anni, (*it).assembledName(), a, false ) ) 1373 if ( addAnniversary( anni, (*it).assembledName(), a, false ) )
1374 ++addCount; 1374 ++addCount;
1375 } 1375 }
1376 } 1376 }
1377 updateView(); 1377 updateView();
1378 topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!")); 1378 topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!"));
1379#else //DESKTOP_VERSION 1379#else //DESKTOP_VERSION
1380 1380
1381 ExternalAppHandler::instance()->requestBirthdayListFromKAPI("QPE/Application/kopi", this->name() /* name is here the unique uid*/); 1381 ExternalAppHandler::instance()->requestBirthdayListFromKAPI("QPE/Application/kopi", this->name() /* name is here the unique uid*/);
1382 // the result should now arrive through method insertBirthdays 1382 // the result should now arrive through method insertBirthdays
1383 1383
1384#endif //DESKTOP_VERSION 1384#endif //DESKTOP_VERSION
1385 1385
1386#endif //KORG_NOKABC 1386#endif //KORG_NOKABC
1387 1387
1388 1388
1389 return true; 1389 return true;
1390} 1390}
1391 1391
1392// This method will be called from Ka/Pi as a response to requestBirthdayListFromKAPI 1392// This method will be called from Ka/Pi as a response to requestBirthdayListFromKAPI
1393void CalendarView::insertBirthdays(const QString& uid, const QStringList& birthdayList, 1393void CalendarView::insertBirthdays(const QString& uid, const QStringList& birthdayList,
1394 const QStringList& anniversaryList, const QStringList& realNameList, 1394 const QStringList& anniversaryList, const QStringList& realNameList,
1395 const QStringList& emailList, const QStringList& assembledNameList, 1395 const QStringList& emailList, const QStringList& assembledNameList,
1396 const QStringList& uidList) 1396 const QStringList& uidList)
1397{ 1397{
1398 qDebug("CalendarView::insertBirthdays"); 1398 qDebug("CalendarView::insertBirthdays");
1399 if (uid == this->name()) 1399 if (uid == this->name())
1400 { 1400 {
1401 int count = birthdayList.count(); 1401 int count = birthdayList.count();
1402 int addCount = 0; 1402 int addCount = 0;
1403 KCal::Attendee* a = 0; 1403 KCal::Attendee* a = 0;
1404 1404
1405 qDebug("CalView 1 %i", count); 1405 qDebug("CalView 1 %i", count);
1406 1406
1407 QProgressBar bar(count,0 ); 1407 QProgressBar bar(count,0 );
1408 int w = 300; 1408 int w = 300;
1409 if ( QApplication::desktop()->width() < 320 ) 1409 if ( QApplication::desktop()->width() < 320 )
1410 w = 220; 1410 w = 220;
1411 int h = bar.sizeHint().height() ; 1411 int h = bar.sizeHint().height() ;
1412 int dw = QApplication::desktop()->width(); 1412 int dw = QApplication::desktop()->width();
1413 int dh = QApplication::desktop()->height(); 1413 int dh = QApplication::desktop()->height();
1414 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1414 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1415 bar.show(); 1415 bar.show();
1416 bar.setCaption (i18n("inserting birthdays - close to abort!") ); 1416 bar.setCaption (i18n("inserting birthdays - close to abort!") );
1417 qApp->processEvents(); 1417 qApp->processEvents();
1418 1418
1419 QDate birthday; 1419 QDate birthday;
1420 QDate anniversary; 1420 QDate anniversary;
1421 QString realName; 1421 QString realName;
1422 QString email; 1422 QString email;
1423 QString assembledName; 1423 QString assembledName;
1424 QString uid; 1424 QString uid;
1425 bool ok = true; 1425 bool ok = true;
1426 for ( int i = 0; i < count; i++) 1426 for ( int i = 0; i < count; i++)
1427 { 1427 {
1428 if ( ! bar.isVisible() ) 1428 if ( ! bar.isVisible() )
1429 return; 1429 return;
1430 bar.setProgress( i ); 1430 bar.setProgress( i );
1431 qApp->processEvents(); 1431 qApp->processEvents();
1432
1433 qDebug("insert birthday in KO/Pi: %s,%s,%s,%s: %s, %s", realName.latin1(), email.latin1(), assembledName.latin1(), uid.latin1(), birthdayList[i].latin1(), anniversaryList[i].latin1() );
1434
1435 birthday = KGlobal::locale()->readDate(birthdayList[i], KLocale::ISODate, &ok);
1436 if (!ok)
1437 qDebug("CalendarView::insertBirthdays found invalid birthday: %s",birthdayList[i].latin1());
1438
1439 anniversary = KGlobal::locale()->readDate(anniversaryList[i], KLocale::ISODate, &ok);
1440 if (!ok)
1441 qDebug("CalendarView::insertBirthdays found invalid anniversary: %s",anniversaryList[i].latin1());
1442 realName = realNameList[i];
1443 email = emailList[i];
1444 assembledName = assembledNameList[i];
1445 uid = uidList[i];
1446 1432
1447 if ( birthday.isValid() ){ 1433 birthday = KGlobal::locale()->readDate(birthdayList[i], KLocale::ISODate, &ok);
1448 a = new KCal::Attendee( realName, email,false,KCal::Attendee::NeedsAction, 1434 if (!ok) {
1449 KCal::Attendee::ReqParticipant,uid) ; 1435 ; //qDebug("CalendarView::insertBirthdays found invalid birthday: %s",birthdayList[i].latin1());
1450 if ( addAnniversary( birthday, assembledName, a, true ) ) 1436 }
1451 ++addCount;
1452 }
1453 1437
1454 if ( anniversary.isValid() ){ 1438 anniversary = KGlobal::locale()->readDate(anniversaryList[i], KLocale::ISODate, &ok);
1455 a = new KCal::Attendee( realName, email,false,KCal::Attendee::NeedsAction, 1439 if (!ok) {
1456 KCal::Attendee::ReqParticipant,uid) ; 1440 ;// qDebug("CalendarView::insertBirthdays found invalid anniversary: %s",anniversaryList[i].latin1());
1457 if ( addAnniversary( anniversary, assembledName, a, false ) ) 1441 }
1458 ++addCount; 1442 realName = realNameList[i];
1443 email = emailList[i];
1444 assembledName = assembledNameList[i];
1445 uid = uidList[i];
1446 //qDebug("insert birthday in KO/Pi: %s,%s,%s,%s: %s, %s", realName.latin1(), email.latin1(), assembledName.latin1(), uid.latin1(), birthdayList[i].latin1(), anniversaryList[i].latin1() );
1447
1448 if ( birthday.isValid() ){
1449 a = new KCal::Attendee( realName, email,false,KCal::Attendee::NeedsAction,
1450 KCal::Attendee::ReqParticipant,uid) ;
1451 if ( addAnniversary( birthday, assembledName, a, true ) )
1452 ++addCount;
1453 }
1454
1455 if ( anniversary.isValid() ){
1456 a = new KCal::Attendee( realName, email,false,KCal::Attendee::NeedsAction,
1457 KCal::Attendee::ReqParticipant,uid) ;
1458 if ( addAnniversary( anniversary, assembledName, a, false ) )
1459 ++addCount;
1460 }
1459 } 1461 }
1460 }
1461 1462
1462 updateView(); 1463 updateView();
1463 topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!")); 1464 topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!"));
1464 1465
1465 } 1466 }
1466 1467
1467} 1468}
1468 1469
1469 1470
1470 1471
1471bool CalendarView::addAnniversary( QDate date, QString name, KCal::Attendee* a, bool birthday) 1472bool CalendarView::addAnniversary( QDate date, QString name, KCal::Attendee* a, bool birthday)
1472{ 1473{
1473 //qDebug("addAnni "); 1474 //qDebug("addAnni ");
1474 Event * ev = new Event(); 1475 Event * ev = new Event();
1475 if ( a ) { 1476 if ( a ) {
1476 ev->addAttendee( a ); 1477 ev->addAttendee( a );
1477 } 1478 }
1478 QString kind; 1479 QString kind;
1479 if ( birthday ) 1480 if ( birthday )
1480 kind = i18n( "Birthday" ); 1481 kind = i18n( "Birthday" );
1481 else 1482 else
1482 kind = i18n( "Anniversary" ); 1483 kind = i18n( "Anniversary" );
1483 ev->setSummary( name + " - " + kind ); 1484 ev->setSummary( name + " - " + kind );
1484 ev->setOrganizer( "nobody@nowhere" ); 1485 ev->setOrganizer( "nobody@nowhere" );
1485 ev->setCategories( kind ); 1486 ev->setCategories( kind );
1486 ev->setDtStart( QDateTime(date) ); 1487 ev->setDtStart( QDateTime(date) );
1487 ev->setDtEnd( QDateTime(date) ); 1488 ev->setDtEnd( QDateTime(date) );
1488 ev->setFloats( true ); 1489 ev->setFloats( true );
1489 Recurrence * rec = ev->recurrence(); 1490 Recurrence * rec = ev->recurrence();
1490 rec->setYearly(Recurrence::rYearlyMonth,1,-1); 1491 rec->setYearly(Recurrence::rYearlyMonth,1,-1);
1491 rec->addYearlyNum( date.month() ); 1492 rec->addYearlyNum( date.month() );
1492 if ( !mCalendar->addAnniversaryNoDup( ev ) ) { 1493 if ( !mCalendar->addAnniversaryNoDup( ev ) ) {
1493 delete ev; 1494 delete ev;
1494 return false; 1495 return false;
1495 } 1496 }
1496 return true; 1497 return true;
1497 1498
1498} 1499}
1499bool CalendarView::importQtopia( const QString &categories, 1500bool CalendarView::importQtopia( const QString &categories,
1500 const QString &datebook, 1501 const QString &datebook,
1501 const QString &todolist ) 1502 const QString &todolist )
1502{ 1503{
1503 1504
1504 QtopiaFormat qtopiaFormat; 1505 QtopiaFormat qtopiaFormat;
1505 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories)); 1506 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories));
1506 if ( !categories.isEmpty() ) qtopiaFormat.load( mCalendar, categories ); 1507 if ( !categories.isEmpty() ) qtopiaFormat.load( mCalendar, categories );
1507 if ( !datebook.isEmpty() ) qtopiaFormat.load( mCalendar, datebook ); 1508 if ( !datebook.isEmpty() ) qtopiaFormat.load( mCalendar, datebook );
1508 if ( !todolist.isEmpty() ) qtopiaFormat.load( mCalendar, todolist ); 1509 if ( !todolist.isEmpty() ) qtopiaFormat.load( mCalendar, todolist );
1509 1510
1510 updateView(); 1511 updateView();
1511 return true; 1512 return true;
1512 1513
1513#if 0 1514#if 0
1514 mGlobalSyncMode = SYNC_MODE_QTOPIA; 1515 mGlobalSyncMode = SYNC_MODE_QTOPIA;
1515 mCurrentSyncDevice = "qtopia-XML"; 1516 mCurrentSyncDevice = "qtopia-XML";
1516 if ( KOPrefs::instance()->mAskForPreferences ) 1517 if ( KOPrefs::instance()->mAskForPreferences )
1517 edit_sync_options(); 1518 edit_sync_options();
1518 qApp->processEvents(); 1519 qApp->processEvents();
1519 CalendarLocal* calendar = new CalendarLocal(); 1520 CalendarLocal* calendar = new CalendarLocal();
1520 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 1521 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
1521 bool syncOK = false; 1522 bool syncOK = false;
1522 QtopiaFormat qtopiaFormat; 1523 QtopiaFormat qtopiaFormat;
1523 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories)); 1524 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories));
1524 bool loadOk = true; 1525 bool loadOk = true;
1525 if ( !categories.isEmpty() ) 1526 if ( !categories.isEmpty() )
1526 loadOk = qtopiaFormat.load( calendar, categories ); 1527 loadOk = qtopiaFormat.load( calendar, categories );
1527 if ( loadOk && !datebook.isEmpty() ) 1528 if ( loadOk && !datebook.isEmpty() )
1528 loadOk = qtopiaFormat.load( calendar, datebook ); 1529 loadOk = qtopiaFormat.load( calendar, datebook );
1529 if ( loadOk && !todolist.isEmpty() ) 1530 if ( loadOk && !todolist.isEmpty() )
1530 loadOk = qtopiaFormat.load( calendar, todolist ); 1531 loadOk = qtopiaFormat.load( calendar, todolist );
1531 1532
1532 if ( loadOk ) { 1533 if ( loadOk ) {
1533 getEventViewerDialog()->setSyncMode( true ); 1534 getEventViewerDialog()->setSyncMode( true );
1534 syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs ); 1535 syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs );
1535 getEventViewerDialog()->setSyncMode( false ); 1536 getEventViewerDialog()->setSyncMode( false );
1536 qApp->processEvents(); 1537 qApp->processEvents();
1537 if ( syncOK ) { 1538 if ( syncOK ) {
1538 if ( KOPrefs::instance()->mWriteBackFile ) 1539 if ( KOPrefs::instance()->mWriteBackFile )
1539 { 1540 {
1540 // write back XML file 1541 // write back XML file
1541 1542
1542 } 1543 }
1543 setModified( true ); 1544 setModified( true );
1544 } 1545 }
1545 } else { 1546 } else {
1546 QString question = i18n("Sorry, the file loading\ncommand failed!\n\nNothing synced!\n") ; 1547 QString question = i18n("Sorry, the file loading\ncommand failed!\n\nNothing synced!\n") ;
1547 QMessageBox::information( 0, i18n("KO/Pi Sync - ERROR"), 1548 QMessageBox::information( 0, i18n("KO/Pi Sync - ERROR"),
1548 question, i18n("Ok")) ; 1549 question, i18n("Ok")) ;
1549 } 1550 }
1550 delete calendar; 1551 delete calendar;
1551 updateView(); 1552 updateView();
1552 return syncOK; 1553 return syncOK;
1553 1554
1554 1555
1555#endif 1556#endif
1556 1557
1557} 1558}
1558 1559
1559void CalendarView::setSyncEventsReadOnly() 1560void CalendarView::setSyncEventsReadOnly()
1560{ 1561{
1561 Event * ev; 1562 Event * ev;
1562 QPtrList<Event> eL = mCalendar->rawEvents(); 1563 QPtrList<Event> eL = mCalendar->rawEvents();
1563 ev = eL.first(); 1564 ev = eL.first();
1564 while ( ev ) { 1565 while ( ev ) {
1565 if ( ev->uid().left(15) == QString("last-syncEvent-") ) 1566 if ( ev->uid().left(15) == QString("last-syncEvent-") )
1566 ev->setReadOnly( true ); 1567 ev->setReadOnly( true );
1567 ev = eL.next(); 1568 ev = eL.next();
1568 } 1569 }
1569} 1570}
1570bool CalendarView::openCalendar(QString filename, bool merge) 1571bool CalendarView::openCalendar(QString filename, bool merge)
1571{ 1572{
1572 1573
1573 if (filename.isEmpty()) { 1574 if (filename.isEmpty()) {
1574 return false; 1575 return false;
1575 } 1576 }
1576 1577
1577 if (!QFile::exists(filename)) { 1578 if (!QFile::exists(filename)) {
1578 KMessageBox::error(this,i18n("File does not exist:\n '%1'.").arg(filename)); 1579 KMessageBox::error(this,i18n("File does not exist:\n '%1'.").arg(filename));
1579 return false; 1580 return false;
1580 } 1581 }
1581 1582
1582 globalFlagBlockAgenda = 1; 1583 globalFlagBlockAgenda = 1;
1583 if (!merge) mCalendar->close(); 1584 if (!merge) mCalendar->close();
1584 1585
1585 mStorage->setFileName( filename ); 1586 mStorage->setFileName( filename );
1586 1587
1587 if ( mStorage->load() ) { 1588 if ( mStorage->load() ) {
1588 if ( merge ) ;//setModified( true ); 1589 if ( merge ) ;//setModified( true );
1589 else { 1590 else {
1590 //setModified( true ); 1591 //setModified( true );
1591 mViewManager->setDocumentId( filename ); 1592 mViewManager->setDocumentId( filename );
1592 mDialogManager->setDocumentId( filename ); 1593 mDialogManager->setDocumentId( filename );
1593 mTodoList->setDocumentId( filename ); 1594 mTodoList->setDocumentId( filename );
1594 } 1595 }
1595 globalFlagBlockAgenda = 2; 1596 globalFlagBlockAgenda = 2;
1596 // if ( getLastSyncEvent() ) 1597 // if ( getLastSyncEvent() )
1597 // getLastSyncEvent()->setReadOnly( true ); 1598 // getLastSyncEvent()->setReadOnly( true );
1598 mCalendar->reInitAlarmSettings(); 1599 mCalendar->reInitAlarmSettings();
1599 setSyncEventsReadOnly(); 1600 setSyncEventsReadOnly();
1600 updateUnmanagedViews(); 1601 updateUnmanagedViews();
1601 updateView(); 1602 updateView();
1602 setLoadedFileVersion( QDateTime::currentDateTime().addSecs( -1 )); 1603 setLoadedFileVersion( QDateTime::currentDateTime().addSecs( -1 ));
1603 if ( filename != MainWindow::defaultFileName() ) { 1604 if ( filename != MainWindow::defaultFileName() ) {
1604 saveCalendar( MainWindow::defaultFileName() ); 1605 saveCalendar( MainWindow::defaultFileName() );
1605 watchSavedFile(); 1606 watchSavedFile();
1606 } 1607 }
1607 return true; 1608 return true;
1608 } else { 1609 } else {
1609 // while failing to load, the calendar object could 1610 // while failing to load, the calendar object could
1610 // have become partially populated. Clear it out. 1611 // have become partially populated. Clear it out.
1611 if ( !merge ) { 1612 if ( !merge ) {
1612 mCalendar->close(); 1613 mCalendar->close();
1613 mViewManager->setDocumentId( filename ); 1614 mViewManager->setDocumentId( filename );
1614 mDialogManager->setDocumentId( filename ); 1615 mDialogManager->setDocumentId( filename );
1615 mTodoList->setDocumentId( filename ); 1616 mTodoList->setDocumentId( filename );
1616 } 1617 }
1617 1618
1618 //KMessageBox::error(this,i18n("Couldn't load calendar\n '%1'.").arg(filename)); 1619 //KMessageBox::error(this,i18n("Couldn't load calendar\n '%1'.").arg(filename));
1619 1620
1620 QTimer::singleShot ( 1, this, SLOT ( showOpenError() ) ); 1621 QTimer::singleShot ( 1, this, SLOT ( showOpenError() ) );
1621 globalFlagBlockAgenda = 2; 1622 globalFlagBlockAgenda = 2;
1622 mCalendar->reInitAlarmSettings(); 1623 mCalendar->reInitAlarmSettings();
1623 setSyncEventsReadOnly(); 1624 setSyncEventsReadOnly();
1624 updateUnmanagedViews(); 1625 updateUnmanagedViews();
1625 updateView(); 1626 updateView();
1626 } 1627 }
1627 return false; 1628 return false;
1628} 1629}
1629void CalendarView::showOpenError() 1630void CalendarView::showOpenError()
1630{ 1631{
1631 KMessageBox::error(this,i18n("Couldn't load calendar\n.")); 1632 KMessageBox::error(this,i18n("Couldn't load calendar\n."));
1632} 1633}
1633void CalendarView::setLoadedFileVersion(QDateTime dt) 1634void CalendarView::setLoadedFileVersion(QDateTime dt)
1634{ 1635{
1635 loadedFileVersion = dt; 1636 loadedFileVersion = dt;
1636} 1637}
1637bool CalendarView::checkFileChanged(QString fn) 1638bool CalendarView::checkFileChanged(QString fn)
1638{ 1639{
1639 QFileInfo finf ( fn ); 1640 QFileInfo finf ( fn );
1640 if ( !finf.exists() ) 1641 if ( !finf.exists() )
1641 return true; 1642 return true;
1642 QDateTime dt = finf.lastModified (); 1643 QDateTime dt = finf.lastModified ();
1643 if ( dt <= loadedFileVersion ) 1644 if ( dt <= loadedFileVersion )
1644 return false; 1645 return false;
1645 return true; 1646 return true;
1646 1647
1647} 1648}
1648void CalendarView::watchSavedFile() 1649void CalendarView::watchSavedFile()
1649{ 1650{
1650 QFileInfo finf ( MainWindow::defaultFileName()); 1651 QFileInfo finf ( MainWindow::defaultFileName());
1651 if ( !finf.exists() ) 1652 if ( !finf.exists() )
1652 return; 1653 return;
1653 QDateTime dt = finf.lastModified (); 1654 QDateTime dt = finf.lastModified ();
1654 if ( dt < loadedFileVersion ) { 1655 if ( dt < loadedFileVersion ) {
1655 //qDebug("watch %s %s ", dt.toString().latin1(), loadedFileVersion.toString().latin1()); 1656 //qDebug("watch %s %s ", dt.toString().latin1(), loadedFileVersion.toString().latin1());
1656 QTimer::singleShot( 1000 , this, SLOT ( watchSavedFile() ) ); 1657 QTimer::singleShot( 1000 , this, SLOT ( watchSavedFile() ) );
1657 return; 1658 return;
1658 } 1659 }
1659 loadedFileVersion = dt; 1660 loadedFileVersion = dt;
1660} 1661}
1661 1662
1662bool CalendarView::checkFileVersion(QString fn) 1663bool CalendarView::checkFileVersion(QString fn)
1663{ 1664{
1664 QFileInfo finf ( fn ); 1665 QFileInfo finf ( fn );
1665 if ( !finf.exists() ) 1666 if ( !finf.exists() )
1666 return true; 1667 return true;
1667 QDateTime dt = finf.lastModified (); 1668 QDateTime dt = finf.lastModified ();
1668 //qDebug("loaded file version %s",loadedFileVersion.toString().latin1()); 1669 //qDebug("loaded file version %s",loadedFileVersion.toString().latin1());
1669 //qDebug("file on disk version %s",dt.toString().latin1()); 1670 //qDebug("file on disk version %s",dt.toString().latin1());
1670 if ( dt <= loadedFileVersion ) 1671 if ( dt <= loadedFileVersion )
1671 return true; 1672 return true;
1672 int km = KMessageBox::warningYesNoCancel(this, i18n("\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n").arg( QString::number( finf.size())).arg( KGlobal::locale()->formatDateTime(finf.lastModified (), true, true)) , 1673 int km = KMessageBox::warningYesNoCancel(this, i18n("\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n").arg( QString::number( finf.size())).arg( KGlobal::locale()->formatDateTime(finf.lastModified (), true, true)) ,
1673 i18n("KO/Pi Warning"),i18n("Overwrite"), 1674 i18n("KO/Pi Warning"),i18n("Overwrite"),
1674 i18n("Sync+save")); 1675 i18n("Sync+save"));
1675 1676
1676 if ( km == KMessageBox::Cancel ) 1677 if ( km == KMessageBox::Cancel )
1677 return false; 1678 return false;
1678 if ( km == KMessageBox::Yes ) 1679 if ( km == KMessageBox::Yes )
1679 return true; 1680 return true;
1680 1681
1681 setSyncDevice("deleteaftersync" ); 1682 setSyncDevice("deleteaftersync" );
1682 KOPrefs::instance()->mAskForPreferences = true; 1683 KOPrefs::instance()->mAskForPreferences = true;
1683 KOPrefs::instance()->mSyncAlgoPrefs = 3; 1684 KOPrefs::instance()->mSyncAlgoPrefs = 3;
1684 KOPrefs::instance()->mWriteBackFile = false; 1685 KOPrefs::instance()->mWriteBackFile = false;
1685 KOPrefs::instance()->mWriteBackExistingOnly = false; 1686 KOPrefs::instance()->mWriteBackExistingOnly = false;
1686 KOPrefs::instance()->mShowSyncSummary = false; 1687 KOPrefs::instance()->mShowSyncSummary = false;
1687 syncCalendar( fn, 3 ); 1688 syncCalendar( fn, 3 );
1688 Event * e = getLastSyncEvent(); 1689 Event * e = getLastSyncEvent();
1689 mCalendar->deleteEvent ( e ); 1690 mCalendar->deleteEvent ( e );
1690 updateView(); 1691 updateView();
1691 return true; 1692 return true;
1692} 1693}
1693 1694
1694bool CalendarView::saveCalendar( QString filename ) 1695bool CalendarView::saveCalendar( QString filename )
1695{ 1696{
1696 1697
1697 // Store back all unsaved data into calendar object 1698 // Store back all unsaved data into calendar object
1698 // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() ); 1699 // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() );
1699 if ( mViewManager->currentView() ) 1700 if ( mViewManager->currentView() )
1700 mViewManager->currentView()->flushView(); 1701 mViewManager->currentView()->flushView();
1701 1702
1702 //mStorage->setFileName( filename ); 1703 //mStorage->setFileName( filename );
1703 1704
1704 mStorage->setSaveFormat( new ICalFormat() ); 1705 mStorage->setSaveFormat( new ICalFormat() );
1705 mStorage->setFileName( filename ); 1706 mStorage->setFileName( filename );
1706 bool success; 1707 bool success;
1707 success = mStorage->save(); 1708 success = mStorage->save();
1708 if ( !success ) { 1709 if ( !success ) {
1709 return false; 1710 return false;
1710 } 1711 }
1711 1712
1712 return true; 1713 return true;
1713} 1714}
1714 1715
1715void CalendarView::closeCalendar() 1716void CalendarView::closeCalendar()
1716{ 1717{
1717 1718
1718 // child windows no longer valid 1719 // child windows no longer valid
1719 emit closingDown(); 1720 emit closingDown();
1720 1721
1721 mCalendar->close(); 1722 mCalendar->close();
1722 setModified(false); 1723 setModified(false);
1723 updateView(); 1724 updateView();
1724} 1725}
1725 1726
1726void CalendarView::archiveCalendar() 1727void CalendarView::archiveCalendar()
1727{ 1728{
1728 mDialogManager->showArchiveDialog(); 1729 mDialogManager->showArchiveDialog();
1729} 1730}
1730 1731
1731 1732
1732void CalendarView::readSettings() 1733void CalendarView::readSettings()
1733{ 1734{
1734 1735
1735 1736
1736 // mViewManager->showAgendaView(); 1737 // mViewManager->showAgendaView();
1737 QString str; 1738 QString str;
1738 //qDebug("CalendarView::readSettings() "); 1739 //qDebug("CalendarView::readSettings() ");
1739 // read settings from the KConfig, supplying reasonable 1740 // read settings from the KConfig, supplying reasonable
1740 // defaults where none are to be found 1741 // defaults where none are to be found
1741 KConfig *config = KOGlobals::config(); 1742 KConfig *config = KOGlobals::config();
1742#ifndef KORG_NOSPLITTER 1743#ifndef KORG_NOSPLITTER
1743 config->setGroup("KOrganizer Geometry"); 1744 config->setGroup("KOrganizer Geometry");
1744 1745
1745 QValueList<int> sizes = config->readIntListEntry("Separator1"); 1746 QValueList<int> sizes = config->readIntListEntry("Separator1");
1746 if (sizes.count() != 2) { 1747 if (sizes.count() != 2) {
1747 sizes << mDateNavigator->minimumSizeHint().width(); 1748 sizes << mDateNavigator->minimumSizeHint().width();
1748 sizes << 300; 1749 sizes << 300;
1749 } 1750 }
1750 mPanner->setSizes(sizes); 1751 mPanner->setSizes(sizes);
1751 1752
1752 sizes = config->readIntListEntry("Separator2"); 1753 sizes = config->readIntListEntry("Separator2");
1753 if ( ( mResourceView && sizes.count() == 4 ) || 1754 if ( ( mResourceView && sizes.count() == 4 ) ||
1754 ( !mResourceView && sizes.count() == 3 ) ) { 1755 ( !mResourceView && sizes.count() == 3 ) ) {
1755 mLeftSplitter->setSizes(sizes); 1756 mLeftSplitter->setSizes(sizes);
1756 } 1757 }
1757#endif 1758#endif
1758 globalFlagBlockAgenda = 1; 1759 globalFlagBlockAgenda = 1;
1759 mViewManager->showAgendaView(); 1760 mViewManager->showAgendaView();
1760 //mViewManager->readSettings( config ); 1761 //mViewManager->readSettings( config );
1761 mTodoList->restoreLayout(config,QString("Todo Layout")); 1762 mTodoList->restoreLayout(config,QString("Todo Layout"));
1762 readFilterSettings(config); 1763 readFilterSettings(config);
1763 config->setGroup( "Views" ); 1764 config->setGroup( "Views" );
1764 int dateCount = config->readNumEntry( "ShownDatesCount", 7 ); 1765 int dateCount = config->readNumEntry( "ShownDatesCount", 7 );
1765 if ( dateCount == 5 ) mNavigator->selectWorkWeek(); 1766 if ( dateCount == 5 ) mNavigator->selectWorkWeek();
1766 else if ( dateCount == 7 ) mNavigator->selectWeek(); 1767 else if ( dateCount == 7 ) mNavigator->selectWeek();
1767 else mNavigator->selectDates( dateCount ); 1768 else mNavigator->selectDates( dateCount );
1768 // mViewManager->readSettings( config ); 1769 // mViewManager->readSettings( config );
1769 updateConfig(); 1770 updateConfig();
1770 globalFlagBlockAgenda = 2; 1771 globalFlagBlockAgenda = 2;
1771 mViewManager->readSettings( config ); 1772 mViewManager->readSettings( config );
1772#ifdef DESKTOP_VERSION 1773#ifdef DESKTOP_VERSION
1773 config->setGroup("WidgetLayout"); 1774 config->setGroup("WidgetLayout");
1774 QStringList list; 1775 QStringList list;
1775 list = config->readListEntry("MainLayout"); 1776 list = config->readListEntry("MainLayout");
1776 int x,y,w,h; 1777 int x,y,w,h;
1777 if ( ! list.isEmpty() ) { 1778 if ( ! list.isEmpty() ) {
1778 x = list[0].toInt(); 1779 x = list[0].toInt();
1779 y = list[1].toInt(); 1780 y = list[1].toInt();
1780 w = list[2].toInt(); 1781 w = list[2].toInt();
1781 h = list[3].toInt(); 1782 h = list[3].toInt();
1782 topLevelWidget()->setGeometry(x,y,w,h); 1783 topLevelWidget()->setGeometry(x,y,w,h);
1783 1784
1784 } else { 1785 } else {
1785 topLevelWidget()->setGeometry( 40 ,40 , 640, 440); 1786 topLevelWidget()->setGeometry( 40 ,40 , 640, 440);
1786 } 1787 }
1787 list = config->readListEntry("EditEventLayout"); 1788 list = config->readListEntry("EditEventLayout");
1788 if ( ! list.isEmpty() ) { 1789 if ( ! list.isEmpty() ) {
1789 x = list[0].toInt(); 1790 x = list[0].toInt();
1790 y = list[1].toInt(); 1791 y = list[1].toInt();
1791 w = list[2].toInt(); 1792 w = list[2].toInt();
1792 h = list[3].toInt(); 1793 h = list[3].toInt();
1793 mEventEditor->setGeometry(x,y,w,h); 1794 mEventEditor->setGeometry(x,y,w,h);
1794 1795
1795 } 1796 }
1796 list = config->readListEntry("EditTodoLayout"); 1797 list = config->readListEntry("EditTodoLayout");
1797 if ( ! list.isEmpty() ) { 1798 if ( ! list.isEmpty() ) {
1798 x = list[0].toInt(); 1799 x = list[0].toInt();
1799 y = list[1].toInt(); 1800 y = list[1].toInt();
1800 w = list[2].toInt(); 1801 w = list[2].toInt();
1801 h = list[3].toInt(); 1802 h = list[3].toInt();
1802 mTodoEditor->setGeometry(x,y,w,h); 1803 mTodoEditor->setGeometry(x,y,w,h);
1803 1804
1804 } 1805 }
1805 list = config->readListEntry("ViewerLayout"); 1806 list = config->readListEntry("ViewerLayout");
1806 if ( ! list.isEmpty() ) { 1807 if ( ! list.isEmpty() ) {
1807 x = list[0].toInt(); 1808 x = list[0].toInt();
1808 y = list[1].toInt(); 1809 y = list[1].toInt();
1809 w = list[2].toInt(); 1810 w = list[2].toInt();
1810 h = list[3].toInt(); 1811 h = list[3].toInt();
1811 getEventViewerDialog()->setGeometry(x,y,w,h); 1812 getEventViewerDialog()->setGeometry(x,y,w,h);
1812 } 1813 }
1813#endif 1814#endif
1814 1815
1815} 1816}
1816 1817
1817 1818
1818void CalendarView::writeSettings() 1819void CalendarView::writeSettings()
1819{ 1820{
1820 // kdDebug() << "CalendarView::writeSettings" << endl; 1821 // kdDebug() << "CalendarView::writeSettings" << endl;
1821 1822
1822 KConfig *config = KOGlobals::config(); 1823 KConfig *config = KOGlobals::config();
1823 1824
1824#ifndef KORG_NOSPLITTER 1825#ifndef KORG_NOSPLITTER
1825 config->setGroup("KOrganizer Geometry"); 1826 config->setGroup("KOrganizer Geometry");
1826 1827
1827 QValueList<int> list = mPanner->sizes(); 1828 QValueList<int> list = mPanner->sizes();
1828 config->writeEntry("Separator1",list); 1829 config->writeEntry("Separator1",list);
1829 1830
1830 list = mLeftSplitter->sizes(); 1831 list = mLeftSplitter->sizes();
1831 config->writeEntry("Separator2",list); 1832 config->writeEntry("Separator2",list);
1832#endif 1833#endif
1833 1834
1834 mViewManager->writeSettings( config ); 1835 mViewManager->writeSettings( config );
1835 mTodoList->saveLayout(config,QString("Todo Layout")); 1836 mTodoList->saveLayout(config,QString("Todo Layout"));
1836 mDialogManager->writeSettings( config ); 1837 mDialogManager->writeSettings( config );
1837 //KOPrefs::instance()->usrWriteConfig(); 1838 //KOPrefs::instance()->usrWriteConfig();
1838 KOPrefs::instance()->writeConfig(); 1839 KOPrefs::instance()->writeConfig();
1839 1840
1840 writeFilterSettings(config); 1841 writeFilterSettings(config);
1841 1842
1842 config->setGroup( "Views" ); 1843 config->setGroup( "Views" );
1843 config->writeEntry( "ShownDatesCount", mNavigator->selectedDates().count() ); 1844 config->writeEntry( "ShownDatesCount", mNavigator->selectedDates().count() );
1844 1845