summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2004-08-07 16:10:09 (UTC)
committer zautrix <zautrix>2004-08-07 16:10:09 (UTC)
commitef8a09ce74ad3f0a51484d03fdf009bd5b3677bf (patch) (unidiff)
tree7ff6c37e8ad6b7f1dbd672d28de6fcea916caf8f /korganizer
parenta9a774e19c02f03de948b6064804b913abd4f08b (diff)
downloadkdepimpi-ef8a09ce74ad3f0a51484d03fdf009bd5b3677bf.zip
kdepimpi-ef8a09ce74ad3f0a51484d03fdf009bd5b3677bf.tar.gz
kdepimpi-ef8a09ce74ad3f0a51484d03fdf009bd5b3677bf.tar.bz2
Fix of the syncprofiles
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp4
-rw-r--r--korganizer/calendarview.h1
-rw-r--r--korganizer/koprefs.h3
-rw-r--r--korganizer/mainwindow.cpp16
-rw-r--r--korganizer/mainwindow.h1
5 files changed, 24 insertions, 1 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index f859b90..689618d 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -984,384 +984,388 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
984 bar.setCaption (i18n("Syncing - close to abort!") ); 984 bar.setCaption (i18n("Syncing - close to abort!") );
985 985
986 int w = 300; 986 int w = 300;
987 if ( QApplication::desktop()->width() < 320 ) 987 if ( QApplication::desktop()->width() < 320 )
988 w = 220; 988 w = 220;
989 int h = bar.sizeHint().height() ; 989 int h = bar.sizeHint().height() ;
990 int dw = QApplication::desktop()->width(); 990 int dw = QApplication::desktop()->width();
991 int dh = QApplication::desktop()->height(); 991 int dh = QApplication::desktop()->height();
992 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 992 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
993 bar.show(); 993 bar.show();
994 int modulo = (er.count()/10)+1; 994 int modulo = (er.count()/10)+1;
995 int incCounter = 0; 995 int incCounter = 0;
996 while ( inR ) { 996 while ( inR ) {
997 if ( ! bar.isVisible() ) 997 if ( ! bar.isVisible() )
998 return false; 998 return false;
999 if ( incCounter % modulo == 0 ) 999 if ( incCounter % modulo == 0 )
1000 bar.setProgress( incCounter ); 1000 bar.setProgress( incCounter );
1001 ++incCounter; 1001 ++incCounter;
1002 uid = inR->uid(); 1002 uid = inR->uid();
1003 bool skipIncidence = false; 1003 bool skipIncidence = false;
1004 if ( uid.left(15) == QString("last-syncEvent-") ) 1004 if ( uid.left(15) == QString("last-syncEvent-") )
1005 skipIncidence = true; 1005 skipIncidence = true;
1006 1006
1007 qApp->processEvents(); 1007 qApp->processEvents();
1008 if ( !skipIncidence ) { 1008 if ( !skipIncidence ) {
1009 inL = local->incidence( uid ); 1009 inL = local->incidence( uid );
1010 if ( inL ) { // maybe conflict - same uid in both calendars 1010 if ( inL ) { // maybe conflict - same uid in both calendars
1011 int maxrev = inL->revision(); 1011 int maxrev = inL->revision();
1012 if ( maxrev < inR->revision() ) 1012 if ( maxrev < inR->revision() )
1013 maxrev = inR->revision(); 1013 maxrev = inR->revision();
1014 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) { 1014 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) {
1015 //qDebug("take %d %s ", take, inL->summary().latin1()); 1015 //qDebug("take %d %s ", take, inL->summary().latin1());
1016 if ( take == 3 ) 1016 if ( take == 3 )
1017 return false; 1017 return false;
1018 if ( take == 1 ) {// take local 1018 if ( take == 1 ) {// take local
1019 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1019 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1020 remote->deleteIncidence( inR ); 1020 remote->deleteIncidence( inR );
1021 if ( inL->revision() < maxrev ) 1021 if ( inL->revision() < maxrev )
1022 inL->setRevision( maxrev ); 1022 inL->setRevision( maxrev );
1023 remote->addIncidence( inL->clone() ); 1023 remote->addIncidence( inL->clone() );
1024 ++changedRemote; 1024 ++changedRemote;
1025 } else { 1025 } else {
1026 if ( inR->revision() < maxrev ) 1026 if ( inR->revision() < maxrev )
1027 inR->setRevision( maxrev ); 1027 inR->setRevision( maxrev );
1028 local->deleteIncidence( inL ); 1028 local->deleteIncidence( inL );
1029 local->addIncidence( inR->clone() ); 1029 local->addIncidence( inR->clone() );
1030 ++changedLocal; 1030 ++changedLocal;
1031 } 1031 }
1032 } 1032 }
1033 } else { // no conflict 1033 } else { // no conflict
1034 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1034 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1035 QString des = eventLSync->description(); 1035 QString des = eventLSync->description();
1036 QString pref = "e"; 1036 QString pref = "e";
1037 if ( inR->type() == "Todo" ) 1037 if ( inR->type() == "Todo" )
1038 pref = "t"; 1038 pref = "t";
1039 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it 1039 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it
1040 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); 1040 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE );
1041 //remote->deleteIncidence( inR ); 1041 //remote->deleteIncidence( inR );
1042 ++deletedEventR; 1042 ++deletedEventR;
1043 } else { 1043 } else {
1044 inR->setLastModified( modifiedCalendar ); 1044 inR->setLastModified( modifiedCalendar );
1045 local->addIncidence( inR->clone() ); 1045 local->addIncidence( inR->clone() );
1046 ++addedEvent; 1046 ++addedEvent;
1047 } 1047 }
1048 } else { 1048 } else {
1049 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { 1049 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) {
1050 inR->setLastModified( modifiedCalendar ); 1050 inR->setLastModified( modifiedCalendar );
1051 local->addIncidence( inR->clone() ); 1051 local->addIncidence( inR->clone() );
1052 ++addedEvent; 1052 ++addedEvent;
1053 } else { 1053 } else {
1054 checkExternSyncEvent(eventRSyncSharp, inR); 1054 checkExternSyncEvent(eventRSyncSharp, inR);
1055 remote->deleteIncidence( inR ); 1055 remote->deleteIncidence( inR );
1056 ++deletedEventR; 1056 ++deletedEventR;
1057 } 1057 }
1058 } 1058 }
1059 } 1059 }
1060 } 1060 }
1061 inR = er.next(); 1061 inR = er.next();
1062 } 1062 }
1063 QPtrList<Incidence> el = local->rawIncidences(); 1063 QPtrList<Incidence> el = local->rawIncidences();
1064 inL = el.first(); 1064 inL = el.first();
1065 modulo = (el.count()/10)+1; 1065 modulo = (el.count()/10)+1;
1066 bar.setCaption (i18n("Add / remove events") ); 1066 bar.setCaption (i18n("Add / remove events") );
1067 bar.setTotalSteps ( el.count() ) ; 1067 bar.setTotalSteps ( el.count() ) ;
1068 bar.show(); 1068 bar.show();
1069 incCounter = 0; 1069 incCounter = 0;
1070 1070
1071 while ( inL ) { 1071 while ( inL ) {
1072 1072
1073 qApp->processEvents(); 1073 qApp->processEvents();
1074 if ( ! bar.isVisible() ) 1074 if ( ! bar.isVisible() )
1075 return false; 1075 return false;
1076 if ( incCounter % modulo == 0 ) 1076 if ( incCounter % modulo == 0 )
1077 bar.setProgress( incCounter ); 1077 bar.setProgress( incCounter );
1078 ++incCounter; 1078 ++incCounter;
1079 uid = inL->uid(); 1079 uid = inL->uid();
1080 bool skipIncidence = false; 1080 bool skipIncidence = false;
1081 if ( uid.left(15) == QString("last-syncEvent-") ) 1081 if ( uid.left(15) == QString("last-syncEvent-") )
1082 skipIncidence = true; 1082 skipIncidence = true;
1083 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" ) 1083 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" )
1084 skipIncidence = true; 1084 skipIncidence = true;
1085 if ( !skipIncidence ) { 1085 if ( !skipIncidence ) {
1086 inR = remote->incidence( uid ); 1086 inR = remote->incidence( uid );
1087 if ( ! inR ) { 1087 if ( ! inR ) {
1088 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1088 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1089 if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { 1089 if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) {
1090 local->deleteIncidence( inL ); 1090 local->deleteIncidence( inL );
1091 ++deletedEventL; 1091 ++deletedEventL;
1092 } else { 1092 } else {
1093 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { 1093 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) {
1094 inL->removeID(mCurrentSyncDevice ); 1094 inL->removeID(mCurrentSyncDevice );
1095 ++addedEventR; 1095 ++addedEventR;
1096 inL->setLastModified( modifiedCalendar ); 1096 inL->setLastModified( modifiedCalendar );
1097 remote->addIncidence( inL->clone() ); 1097 remote->addIncidence( inL->clone() );
1098 } 1098 }
1099 } 1099 }
1100 } else { 1100 } else {
1101 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { 1101 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) {
1102 checkExternSyncEvent(eventLSyncSharp, inL); 1102 checkExternSyncEvent(eventLSyncSharp, inL);
1103 local->deleteIncidence( inL ); 1103 local->deleteIncidence( inL );
1104 ++deletedEventL; 1104 ++deletedEventL;
1105 } else { 1105 } else {
1106 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { 1106 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) {
1107 ++addedEventR; 1107 ++addedEventR;
1108 inL->setLastModified( modifiedCalendar ); 1108 inL->setLastModified( modifiedCalendar );
1109 remote->addIncidence( inL->clone() ); 1109 remote->addIncidence( inL->clone() );
1110 } 1110 }
1111 } 1111 }
1112 } 1112 }
1113 } 1113 }
1114 } 1114 }
1115 inL = el.next(); 1115 inL = el.next();
1116 } 1116 }
1117 1117
1118 bar.hide(); 1118 bar.hide();
1119 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 ); 1119 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 );
1120 eventLSync->setReadOnly( false ); 1120 eventLSync->setReadOnly( false );
1121 eventLSync->setDtStart( mLastCalendarSync ); 1121 eventLSync->setDtStart( mLastCalendarSync );
1122 eventRSync->setDtStart( mLastCalendarSync ); 1122 eventRSync->setDtStart( mLastCalendarSync );
1123 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1123 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1124 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1124 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1125 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; 1125 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ;
1126 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); 1126 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName );
1127 eventLSync->setReadOnly( true ); 1127 eventLSync->setReadOnly( true );
1128 if ( mGlobalSyncMode == SYNC_MODE_NORMAL) 1128 if ( mGlobalSyncMode == SYNC_MODE_NORMAL)
1129 remote->addEvent( eventRSync ); 1129 remote->addEvent( eventRSync );
1130 QString mes; 1130 QString mes;
1131 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 ); 1131 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 );
1132 if ( KOPrefs::instance()->mShowSyncSummary ) { 1132 if ( KOPrefs::instance()->mShowSyncSummary ) {
1133 KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") ); 1133 KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") );
1134 } 1134 }
1135 qDebug( mes ); 1135 qDebug( mes );
1136 mCalendar->checkAlarmForIncidence( 0, true ); 1136 mCalendar->checkAlarmForIncidence( 0, true );
1137 return syncOK; 1137 return syncOK;
1138} 1138}
1139 1139
1140void CalendarView::setSyncDevice( QString s ) 1140void CalendarView::setSyncDevice( QString s )
1141{ 1141{
1142 mCurrentSyncDevice= s; 1142 mCurrentSyncDevice= s;
1143} 1143}
1144void CalendarView::setSyncName( QString s ) 1144void CalendarView::setSyncName( QString s )
1145{ 1145{
1146 mCurrentSyncName= s; 1146 mCurrentSyncName= s;
1147} 1147}
1148bool CalendarView::syncCalendar(QString filename, int mode) 1148bool CalendarView::syncCalendar(QString filename, int mode)
1149{ 1149{
1150 mGlobalSyncMode = SYNC_MODE_NORMAL; 1150 mGlobalSyncMode = SYNC_MODE_NORMAL;
1151 CalendarLocal* calendar = new CalendarLocal(); 1151 CalendarLocal* calendar = new CalendarLocal();
1152 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 1152 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
1153 FileStorage* storage = new FileStorage( calendar ); 1153 FileStorage* storage = new FileStorage( calendar );
1154 bool syncOK = false; 1154 bool syncOK = false;
1155 storage->setFileName( filename ); 1155 storage->setFileName( filename );
1156 // qDebug("loading ... "); 1156 // qDebug("loading ... ");
1157 if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) { 1157 if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) {
1158 getEventViewerDialog()->setSyncMode( true ); 1158 getEventViewerDialog()->setSyncMode( true );
1159 syncOK = synchronizeCalendar( mCalendar, calendar, mode ); 1159 syncOK = synchronizeCalendar( mCalendar, calendar, mode );
1160 getEventViewerDialog()->setSyncMode( false ); 1160 getEventViewerDialog()->setSyncMode( false );
1161 if ( syncOK ) { 1161 if ( syncOK ) {
1162 if ( KOPrefs::instance()->mWriteBackFile ) 1162 if ( KOPrefs::instance()->mWriteBackFile )
1163 { 1163 {
1164 storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); 1164 storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) );
1165 storage->save(); 1165 storage->save();
1166 } 1166 }
1167 } 1167 }
1168 setModified( true ); 1168 setModified( true );
1169 } 1169 }
1170 delete storage; 1170 delete storage;
1171 delete calendar; 1171 delete calendar;
1172 if ( syncOK ) 1172 if ( syncOK )
1173 updateView(); 1173 updateView();
1174 return syncOK; 1174 return syncOK;
1175} 1175}
1176void CalendarView::syncPhone()
1177{
1178 qDebug("CalendarView::syncPhone() ");
1179}
1176void CalendarView::syncSharp() 1180void CalendarView::syncSharp()
1177{ 1181{
1178#ifndef DESKTOP_VERSION 1182#ifndef DESKTOP_VERSION
1179 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 1183 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
1180 //mCurrentSyncDevice = "sharp-DTM"; 1184 //mCurrentSyncDevice = "sharp-DTM";
1181 if ( KOPrefs::instance()->mAskForPreferences ) 1185 if ( KOPrefs::instance()->mAskForPreferences )
1182 edit_sync_options(); 1186 edit_sync_options();
1183 qApp->processEvents(); 1187 qApp->processEvents();
1184 CalendarLocal* calendar = new CalendarLocal(); 1188 CalendarLocal* calendar = new CalendarLocal();
1185 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 1189 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
1186 bool syncOK = false; 1190 bool syncOK = false;
1187 SharpFormat sharpFormat; 1191 SharpFormat sharpFormat;
1188 if ( sharpFormat.load( calendar, mCalendar ) ) { 1192 if ( sharpFormat.load( calendar, mCalendar ) ) {
1189 getEventViewerDialog()->setSyncMode( true ); 1193 getEventViewerDialog()->setSyncMode( true );
1190 syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs ); 1194 syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs );
1191 getEventViewerDialog()->setSyncMode( false ); 1195 getEventViewerDialog()->setSyncMode( false );
1192 qApp->processEvents(); 1196 qApp->processEvents();
1193 if ( syncOK ) { 1197 if ( syncOK ) {
1194 if ( KOPrefs::instance()->mWriteBackFile ) 1198 if ( KOPrefs::instance()->mWriteBackFile )
1195 { 1199 {
1196 QPtrList<Incidence> iL = mCalendar->rawIncidences(); 1200 QPtrList<Incidence> iL = mCalendar->rawIncidences();
1197 Incidence* inc = iL.first(); 1201 Incidence* inc = iL.first();
1198 /* obsolete 1202 /* obsolete
1199 while ( inc ) { 1203 while ( inc ) {
1200 inc->setZaurusStat( inc->revision () ); 1204 inc->setZaurusStat( inc->revision () );
1201 inc = iL.next(); 1205 inc = iL.next();
1202 } 1206 }
1203 */ 1207 */
1204 // pending: clean last sync event description 1208 // pending: clean last sync event description
1205 sharpFormat.save(calendar); 1209 sharpFormat.save(calendar);
1206 iL = calendar->rawIncidences(); 1210 iL = calendar->rawIncidences();
1207 inc = iL.first(); 1211 inc = iL.first();
1208 Incidence* loc; 1212 Incidence* loc;
1209 while ( inc ) { 1213 while ( inc ) {
1210 if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) { 1214 if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) {
1211 loc = mCalendar->incidence(inc->uid() ); 1215 loc = mCalendar->incidence(inc->uid() );
1212 if ( loc ) { 1216 if ( loc ) {
1213 loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) ); 1217 loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) );
1214 loc->setCsum( mCurrentSyncDevice, inc->getCsum(mCurrentSyncDevice) ); 1218 loc->setCsum( mCurrentSyncDevice, inc->getCsum(mCurrentSyncDevice) );
1215 } 1219 }
1216 } 1220 }
1217 inc = iL.next(); 1221 inc = iL.next();
1218 } 1222 }
1219 Incidence* lse = getLastSyncEvent(); 1223 Incidence* lse = getLastSyncEvent();
1220 if ( lse ) { 1224 if ( lse ) {
1221 lse->setReadOnly( false ); 1225 lse->setReadOnly( false );
1222 lse->setDescription( "" ); 1226 lse->setDescription( "" );
1223 lse->setReadOnly( true ); 1227 lse->setReadOnly( true );
1224 } 1228 }
1225 } 1229 }
1226 } 1230 }
1227 setModified( true ); 1231 setModified( true );
1228 } else { 1232 } else {
1229 QString question = i18n("Sorry, the database access\ncommand failed!\n\nNothing synced!\n") ; 1233 QString question = i18n("Sorry, the database access\ncommand failed!\n\nNothing synced!\n") ;
1230 QMessageBox::information( 0, i18n("KO/Pi Import - ERROR"), 1234 QMessageBox::information( 0, i18n("KO/Pi Import - ERROR"),
1231 question, i18n("Ok")) ; 1235 question, i18n("Ok")) ;
1232 1236
1233 } 1237 }
1234 delete calendar; 1238 delete calendar;
1235 updateView(); 1239 updateView();
1236 return ;//syncOK; 1240 return ;//syncOK;
1237#endif 1241#endif
1238} 1242}
1239 1243
1240 1244
1241#include <kabc/stdaddressbook.h> 1245#include <kabc/stdaddressbook.h>
1242bool CalendarView::importBday() 1246bool CalendarView::importBday()
1243{ 1247{
1244 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true ); 1248 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true );
1245 KABC::AddressBook::Iterator it; 1249 KABC::AddressBook::Iterator it;
1246 int count = 0; 1250 int count = 0;
1247 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { 1251 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) {
1248 ++count; 1252 ++count;
1249 } 1253 }
1250 QProgressBar bar(count,0 ); 1254 QProgressBar bar(count,0 );
1251 int w = 300; 1255 int w = 300;
1252 if ( QApplication::desktop()->width() < 320 ) 1256 if ( QApplication::desktop()->width() < 320 )
1253 w = 220; 1257 w = 220;
1254 int h = bar.sizeHint().height() ; 1258 int h = bar.sizeHint().height() ;
1255 int dw = QApplication::desktop()->width(); 1259 int dw = QApplication::desktop()->width();
1256 int dh = QApplication::desktop()->height(); 1260 int dh = QApplication::desktop()->height();
1257 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1261 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1258 bar.show(); 1262 bar.show();
1259 bar.setCaption (i18n("Reading addressbook - close to abort!") ); 1263 bar.setCaption (i18n("Reading addressbook - close to abort!") );
1260 qApp->processEvents(); 1264 qApp->processEvents();
1261 count = 0; 1265 count = 0;
1262 int addCount = 0; 1266 int addCount = 0;
1263 KCal::Attendee* a = 0; 1267 KCal::Attendee* a = 0;
1264 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { 1268 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) {
1265 if ( ! bar.isVisible() ) 1269 if ( ! bar.isVisible() )
1266 return false; 1270 return false;
1267 bar.setProgress( count++ ); 1271 bar.setProgress( count++ );
1268 qApp->processEvents(); 1272 qApp->processEvents();
1269 //qDebug("add BDay %s %s", (*it).realName().latin1(),(*it).birthday().date().toString().latin1() ); 1273 //qDebug("add BDay %s %s", (*it).realName().latin1(),(*it).birthday().date().toString().latin1() );
1270 if ( (*it).birthday().date().isValid() ){ 1274 if ( (*it).birthday().date().isValid() ){
1271 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ; 1275 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ;
1272 if ( addAnniversary( (*it).birthday().date(), (*it).assembledName(), a, true ) ) 1276 if ( addAnniversary( (*it).birthday().date(), (*it).assembledName(), a, true ) )
1273 ++addCount; 1277 ++addCount;
1274 } 1278 }
1275 QDate anni = KGlobal::locale()->readDate( (*it).custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); 1279 QDate anni = KGlobal::locale()->readDate( (*it).custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d");
1276 if ( anni.isValid() ){ 1280 if ( anni.isValid() ){
1277 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ; 1281 a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ;
1278 if ( addAnniversary( anni, (*it).assembledName(), a, false ) ) 1282 if ( addAnniversary( anni, (*it).assembledName(), a, false ) )
1279 ++addCount; 1283 ++addCount;
1280 } 1284 }
1281 } 1285 }
1282 updateView(); 1286 updateView();
1283 topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!")); 1287 topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!"));
1284 return true; 1288 return true;
1285} 1289}
1286 1290
1287bool CalendarView::addAnniversary( QDate date, QString name, KCal::Attendee* a, bool birthday) 1291bool CalendarView::addAnniversary( QDate date, QString name, KCal::Attendee* a, bool birthday)
1288{ 1292{
1289 //qDebug("addAnni "); 1293 //qDebug("addAnni ");
1290 Event * ev = new Event(); 1294 Event * ev = new Event();
1291 if ( a ) { 1295 if ( a ) {
1292 ev->addAttendee( a ); 1296 ev->addAttendee( a );
1293 } 1297 }
1294 QString kind; 1298 QString kind;
1295 if ( birthday ) 1299 if ( birthday )
1296 kind = i18n( "Birthday" ); 1300 kind = i18n( "Birthday" );
1297 else 1301 else
1298 kind = i18n( "Anniversary" ); 1302 kind = i18n( "Anniversary" );
1299 ev->setSummary( name + " - " + kind ); 1303 ev->setSummary( name + " - " + kind );
1300 ev->setOrganizer( "nobody@nowhere" ); 1304 ev->setOrganizer( "nobody@nowhere" );
1301 ev->setCategories( kind ); 1305 ev->setCategories( kind );
1302 ev->setDtStart( QDateTime(date) ); 1306 ev->setDtStart( QDateTime(date) );
1303 ev->setDtEnd( QDateTime(date) ); 1307 ev->setDtEnd( QDateTime(date) );
1304 ev->setFloats( true ); 1308 ev->setFloats( true );
1305 Recurrence * rec = ev->recurrence(); 1309 Recurrence * rec = ev->recurrence();
1306 rec->setYearly(Recurrence::rYearlyMonth,1,-1); 1310 rec->setYearly(Recurrence::rYearlyMonth,1,-1);
1307 rec->addYearlyNum( date.month() ); 1311 rec->addYearlyNum( date.month() );
1308 if ( !mCalendar->addAnniversaryNoDup( ev ) ) { 1312 if ( !mCalendar->addAnniversaryNoDup( ev ) ) {
1309 delete ev; 1313 delete ev;
1310 return false; 1314 return false;
1311 } 1315 }
1312 return true; 1316 return true;
1313 1317
1314} 1318}
1315bool CalendarView::importQtopia( const QString &categories, 1319bool CalendarView::importQtopia( const QString &categories,
1316 const QString &datebook, 1320 const QString &datebook,
1317 const QString &todolist ) 1321 const QString &todolist )
1318{ 1322{
1319 1323
1320 QtopiaFormat qtopiaFormat; 1324 QtopiaFormat qtopiaFormat;
1321 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories)); 1325 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories));
1322 if ( !categories.isEmpty() ) qtopiaFormat.load( mCalendar, categories ); 1326 if ( !categories.isEmpty() ) qtopiaFormat.load( mCalendar, categories );
1323 if ( !datebook.isEmpty() ) qtopiaFormat.load( mCalendar, datebook ); 1327 if ( !datebook.isEmpty() ) qtopiaFormat.load( mCalendar, datebook );
1324 if ( !todolist.isEmpty() ) qtopiaFormat.load( mCalendar, todolist ); 1328 if ( !todolist.isEmpty() ) qtopiaFormat.load( mCalendar, todolist );
1325 1329
1326 updateView(); 1330 updateView();
1327 return true; 1331 return true;
1328 1332
1329#if 0 1333#if 0
1330 mGlobalSyncMode = SYNC_MODE_QTOPIA; 1334 mGlobalSyncMode = SYNC_MODE_QTOPIA;
1331 mCurrentSyncDevice = "qtopia-XML"; 1335 mCurrentSyncDevice = "qtopia-XML";
1332 if ( KOPrefs::instance()->mAskForPreferences ) 1336 if ( KOPrefs::instance()->mAskForPreferences )
1333 edit_sync_options(); 1337 edit_sync_options();
1334 qApp->processEvents(); 1338 qApp->processEvents();
1335 CalendarLocal* calendar = new CalendarLocal(); 1339 CalendarLocal* calendar = new CalendarLocal();
1336 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 1340 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
1337 bool syncOK = false; 1341 bool syncOK = false;
1338 QtopiaFormat qtopiaFormat; 1342 QtopiaFormat qtopiaFormat;
1339 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories)); 1343 qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories));
1340 bool loadOk = true; 1344 bool loadOk = true;
1341 if ( !categories.isEmpty() ) 1345 if ( !categories.isEmpty() )
1342 loadOk = qtopiaFormat.load( calendar, categories ); 1346 loadOk = qtopiaFormat.load( calendar, categories );
1343 if ( loadOk && !datebook.isEmpty() ) 1347 if ( loadOk && !datebook.isEmpty() )
1344 loadOk = qtopiaFormat.load( calendar, datebook ); 1348 loadOk = qtopiaFormat.load( calendar, datebook );
1345 if ( loadOk && !todolist.isEmpty() ) 1349 if ( loadOk && !todolist.isEmpty() )
1346 loadOk = qtopiaFormat.load( calendar, todolist ); 1350 loadOk = qtopiaFormat.load( calendar, todolist );
1347 1351
1348 if ( loadOk ) { 1352 if ( loadOk ) {
1349 getEventViewerDialog()->setSyncMode( true ); 1353 getEventViewerDialog()->setSyncMode( true );
1350 syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs ); 1354 syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs );
1351 getEventViewerDialog()->setSyncMode( false ); 1355 getEventViewerDialog()->setSyncMode( false );
1352 qApp->processEvents(); 1356 qApp->processEvents();
1353 if ( syncOK ) { 1357 if ( syncOK ) {
1354 if ( KOPrefs::instance()->mWriteBackFile ) 1358 if ( KOPrefs::instance()->mWriteBackFile )
1355 { 1359 {
1356 // write back XML file 1360 // write back XML file
1357 1361
1358 } 1362 }
1359 setModified( true ); 1363 setModified( true );
1360 } 1364 }
1361 } else { 1365 } else {
1362 QString question = i18n("Sorry, the file loading\ncommand failed!\n\nNothing synced!\n") ; 1366 QString question = i18n("Sorry, the file loading\ncommand failed!\n\nNothing synced!\n") ;
1363 QMessageBox::information( 0, i18n("KO/Pi Sync - ERROR"), 1367 QMessageBox::information( 0, i18n("KO/Pi Sync - ERROR"),
1364 question, i18n("Ok")) ; 1368 question, i18n("Ok")) ;
1365 } 1369 }
1366 delete calendar; 1370 delete calendar;
1367 updateView(); 1371 updateView();
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h
index d564473..b2838db 100644
--- a/korganizer/calendarview.h
+++ b/korganizer/calendarview.h
@@ -236,353 +236,354 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
236 found. */ 236 found. */
237 bool deleteEvent(const QString &uid); 237 bool deleteEvent(const QString &uid);
238 /** Create a read-only viewer dialog for the supplied event. */ 238 /** Create a read-only viewer dialog for the supplied event. */
239 void showEvent(Event *); 239 void showEvent(Event *);
240 240
241 void editJournal(Journal *); 241 void editJournal(Journal *);
242 void showJournal(Journal *); 242 void showJournal(Journal *);
243 void deleteJournal(Journal *); 243 void deleteJournal(Journal *);
244 /** Create an editor dialog for a todo */ 244 /** Create an editor dialog for a todo */
245 void editTodo(Todo *); 245 void editTodo(Todo *);
246 /** Create a read-only viewer dialog for the supplied todo */ 246 /** Create a read-only viewer dialog for the supplied todo */
247 void showTodo(Todo *); 247 void showTodo(Todo *);
248 /** create new todo */ 248 /** create new todo */
249 void newTodo(); 249 void newTodo();
250 /** create new todo with a parent todo */ 250 /** create new todo with a parent todo */
251 void newSubTodo(); 251 void newSubTodo();
252 /** create new todo with a parent todo */ 252 /** create new todo with a parent todo */
253 void newSubTodo(Todo *); 253 void newSubTodo(Todo *);
254 /** Delete todo */ 254 /** Delete todo */
255 void deleteTodo(Todo *); 255 void deleteTodo(Todo *);
256 256
257 257
258 /** Check if clipboard contains vCalendar event. The signal pasteEnabled() is 258 /** Check if clipboard contains vCalendar event. The signal pasteEnabled() is
259 * emitted as result. */ 259 * emitted as result. */
260 void checkClipboard(); 260 void checkClipboard();
261 261
262 /** using the KConfig associated with the kapp variable, read in the 262 /** using the KConfig associated with the kapp variable, read in the
263 * settings from the config file. 263 * settings from the config file.
264 */ 264 */
265 void readSettings(); 265 void readSettings();
266 266
267 /** write current state to config file. */ 267 /** write current state to config file. */
268 void writeSettings(); 268 void writeSettings();
269 269
270 /** read settings for calendar filters */ 270 /** read settings for calendar filters */
271 void readFilterSettings(KConfig *config); 271 void readFilterSettings(KConfig *config);
272 272
273 /** write settings for calendar filters */ 273 /** write settings for calendar filters */
274 void writeFilterSettings(KConfig *config); 274 void writeFilterSettings(KConfig *config);
275 275
276 /** passes on the message that an event has changed to the currently 276 /** passes on the message that an event has changed to the currently
277 * activated view so that it can make appropriate display changes. */ 277 * activated view so that it can make appropriate display changes. */
278 void changeEventDisplay(Event *, int); 278 void changeEventDisplay(Event *, int);
279 void changeIncidenceDisplay(Incidence *, int); 279 void changeIncidenceDisplay(Incidence *, int);
280 void changeTodoDisplay(Todo *, int); 280 void changeTodoDisplay(Todo *, int);
281 281
282 void eventAdded(Event *); 282 void eventAdded(Event *);
283 void eventChanged(Event *); 283 void eventChanged(Event *);
284 void eventToBeDeleted(Event *); 284 void eventToBeDeleted(Event *);
285 void eventDeleted(); 285 void eventDeleted();
286 286
287 void todoAdded(Todo *); 287 void todoAdded(Todo *);
288 void todoChanged(Todo *); 288 void todoChanged(Todo *);
289 void todoToBeDeleted(Todo *); 289 void todoToBeDeleted(Todo *);
290 void todoDeleted(); 290 void todoDeleted();
291 291
292 void updateView(const QDate &start, const QDate &end); 292 void updateView(const QDate &start, const QDate &end);
293 void updateView(); 293 void updateView();
294 294
295 /** Full update of visible todo views */ 295 /** Full update of visible todo views */
296 void updateTodoViews(); 296 void updateTodoViews();
297 297
298 void updateUnmanagedViews(); 298 void updateUnmanagedViews();
299 299
300 /** cut the current appointment to the clipboard */ 300 /** cut the current appointment to the clipboard */
301 void edit_cut(); 301 void edit_cut();
302 302
303 /** copy the current appointment(s) to the clipboard */ 303 /** copy the current appointment(s) to the clipboard */
304 void edit_copy(); 304 void edit_copy();
305 305
306 /** paste the current vobject(s) in the clipboard buffer into calendar */ 306 /** paste the current vobject(s) in the clipboard buffer into calendar */
307 void edit_paste(); 307 void edit_paste();
308 308
309 /** edit viewing and configuration options. */ 309 /** edit viewing and configuration options. */
310 void edit_options(); 310 void edit_options();
311 void edit_sync_options(); 311 void edit_sync_options();
312 /** 312 /**
313 Functions for printing, previewing a print, and setting up printing 313 Functions for printing, previewing a print, and setting up printing
314 parameters. 314 parameters.
315 */ 315 */
316 void print(); 316 void print();
317 void printSetup(); 317 void printSetup();
318 void printPreview(); 318 void printPreview();
319 319
320 /** Export as iCalendar file */ 320 /** Export as iCalendar file */
321 void exportICalendar(); 321 void exportICalendar();
322 322
323 /** Export as vCalendar file */ 323 /** Export as vCalendar file */
324 bool exportVCalendar( QString fn); 324 bool exportVCalendar( QString fn);
325 325
326 /** pop up a dialog to show an existing appointment. */ 326 /** pop up a dialog to show an existing appointment. */
327 void appointment_show(); 327 void appointment_show();
328 /** 328 /**
329 * pop up an Appointment Dialog to edit an existing appointment.Get 329 * pop up an Appointment Dialog to edit an existing appointment.Get
330 * information on the appointment from the list of unique IDs that is 330 * information on the appointment from the list of unique IDs that is
331 * currently in the View, called currIds. 331 * currently in the View, called currIds.
332 */ 332 */
333 void appointment_edit(); 333 void appointment_edit();
334 /** 334 /**
335 * pop up dialog confirming deletion of currently selected event in the 335 * pop up dialog confirming deletion of currently selected event in the
336 * View. 336 * View.
337 */ 337 */
338 void appointment_delete(); 338 void appointment_delete();
339 339
340 /** mails the currently selected event to a particular user as a vCalendar 340 /** mails the currently selected event to a particular user as a vCalendar
341 attachment. */ 341 attachment. */
342 void action_mail(); 342 void action_mail();
343 343
344 /* frees a subtodo from it's relation */ 344 /* frees a subtodo from it's relation */
345 void todo_unsub( Todo * ); 345 void todo_unsub( Todo * );
346 346
347 /** Take ownership of selected event. */ 347 /** Take ownership of selected event. */
348 void takeOverEvent(); 348 void takeOverEvent();
349 349
350 /** Take ownership of all events in calendar. */ 350 /** Take ownership of all events in calendar. */
351 void takeOverCalendar(); 351 void takeOverCalendar();
352 352
353 /** query whether or not the calendar is "dirty". */ 353 /** query whether or not the calendar is "dirty". */
354 bool isModified(); 354 bool isModified();
355 /** set the state of calendar. Modified means "dirty", i.e. needing a save. */ 355 /** set the state of calendar. Modified means "dirty", i.e. needing a save. */
356 void setModified(bool modified=true); 356 void setModified(bool modified=true);
357 357
358 /** query if the calendar is read-only. */ 358 /** query if the calendar is read-only. */
359 bool isReadOnly(); 359 bool isReadOnly();
360 /** set state of calendar to read-only */ 360 /** set state of calendar to read-only */
361 void setReadOnly(bool readOnly=true); 361 void setReadOnly(bool readOnly=true);
362 362
363 void eventUpdated(Incidence *); 363 void eventUpdated(Incidence *);
364 364
365 /* iTIP scheduling actions */ 365 /* iTIP scheduling actions */
366 void schedule_publish(Incidence *incidence = 0); 366 void schedule_publish(Incidence *incidence = 0);
367 void schedule_request(Incidence *incidence = 0); 367 void schedule_request(Incidence *incidence = 0);
368 void schedule_refresh(Incidence *incidence = 0); 368 void schedule_refresh(Incidence *incidence = 0);
369 void schedule_cancel(Incidence *incidence = 0); 369 void schedule_cancel(Incidence *incidence = 0);
370 void schedule_add(Incidence *incidence = 0); 370 void schedule_add(Incidence *incidence = 0);
371 void schedule_reply(Incidence *incidence = 0); 371 void schedule_reply(Incidence *incidence = 0);
372 void schedule_counter(Incidence *incidence = 0); 372 void schedule_counter(Incidence *incidence = 0);
373 void schedule_declinecounter(Incidence *incidence = 0); 373 void schedule_declinecounter(Incidence *incidence = 0);
374 void schedule_publish_freebusy(int daysToPublish = 30); 374 void schedule_publish_freebusy(int daysToPublish = 30);
375 375
376 void openAddressbook(); 376 void openAddressbook();
377 377
378 void editFilters(); 378 void editFilters();
379 void toggleFilerEnabled(); 379 void toggleFilerEnabled();
380 QPtrList<CalFilter> filters(); 380 QPtrList<CalFilter> filters();
381 void toggleFilter(); 381 void toggleFilter();
382 void showFilter(bool visible); 382 void showFilter(bool visible);
383 void updateFilter(); 383 void updateFilter();
384 void filterEdited(); 384 void filterEdited();
385 void selectFilter( int ); 385 void selectFilter( int );
386 KOFilterView *filterView(); 386 KOFilterView *filterView();
387 387
388 void showIntro(); 388 void showIntro();
389 389
390 /** Move the curdatepient view date to today */ 390 /** Move the curdatepient view date to today */
391 void goToday(); 391 void goToday();
392 392
393 /** Move to the next date(s) in the current view */ 393 /** Move to the next date(s) in the current view */
394 void goNext(); 394 void goNext();
395 395
396 /** Move to the previous date(s) in the current view */ 396 /** Move to the previous date(s) in the current view */
397 void goPrevious(); 397 void goPrevious();
398 /** Move to the next date(s) in the current view */ 398 /** Move to the next date(s) in the current view */
399 void goNextMonth(); 399 void goNextMonth();
400 400
401 /** Move to the previous date(s) in the current view */ 401 /** Move to the previous date(s) in the current view */
402 void goPreviousMonth(); 402 void goPreviousMonth();
403 403
404 void toggleExpand(); 404 void toggleExpand();
405 void toggleDateNavigatorWidget(); 405 void toggleDateNavigatorWidget();
406 void toggleAllDaySize(); 406 void toggleAllDaySize();
407 void dialogClosing(Incidence *); 407 void dialogClosing(Incidence *);
408 408
409 /** Look for new messages in the inbox */ 409 /** Look for new messages in the inbox */
410 void lookForIncomingMessages(); 410 void lookForIncomingMessages();
411 /** Look for new messages in the outbox */ 411 /** Look for new messages in the outbox */
412 void lookForOutgoingMessages(); 412 void lookForOutgoingMessages();
413 413
414 void processMainViewSelection( Incidence * ); 414 void processMainViewSelection( Incidence * );
415 void processTodoListSelection( Incidence * ); 415 void processTodoListSelection( Incidence * );
416 416
417 void processIncidenceSelection( Incidence * ); 417 void processIncidenceSelection( Incidence * );
418 418
419 void purgeCompleted(); 419 void purgeCompleted();
420 bool removeCompletedSubTodos( Todo* ); 420 bool removeCompletedSubTodos( Todo* );
421 void slotCalendarChanged(); 421 void slotCalendarChanged();
422 bool importBday(); 422 bool importBday();
423 bool addAnniversary( QDate data, QString name, KCal::Attendee* a , bool birthday ); 423 bool addAnniversary( QDate data, QString name, KCal::Attendee* a , bool birthday );
424 bool importQtopia( const QString &categoriesFile, 424 bool importQtopia( const QString &categoriesFile,
425 const QString &datebookFile, 425 const QString &datebookFile,
426 const QString &tasklistFile ); 426 const QString &tasklistFile );
427 void syncSharp( ); 427 void syncSharp( );
428 void syncPhone( );
428 void slotSelectPickerDate( QDate ) ; 429 void slotSelectPickerDate( QDate ) ;
429 void showDatePicker( ) ; 430 void showDatePicker( ) ;
430 void moveIncidence(Incidence *) ; 431 void moveIncidence(Incidence *) ;
431 void beamIncidence(Incidence *) ; 432 void beamIncidence(Incidence *) ;
432 void beamCalendar() ; 433 void beamCalendar() ;
433 void beamFilteredCalendar() ; 434 void beamFilteredCalendar() ;
434 void beamIncidenceList(QPtrList<Incidence>) ; 435 void beamIncidenceList(QPtrList<Incidence>) ;
435 void manageCategories(); 436 void manageCategories();
436 int addCategories(); 437 int addCategories();
437 void removeCategories(); 438 void removeCategories();
438 void setSyncDevice( QString ); 439 void setSyncDevice( QString );
439 void setSyncName( QString ); 440 void setSyncName( QString );
440 protected slots: 441 protected slots:
441 void timerAlarm(); 442 void timerAlarm();
442 void suspendAlarm(); 443 void suspendAlarm();
443 void beamDone( Ir *ir ); 444 void beamDone( Ir *ir );
444 /** Select a view or adapt the current view to display the specified dates. */ 445 /** Select a view or adapt the current view to display the specified dates. */
445 void showDates( const KCal::DateList & ); 446 void showDates( const KCal::DateList & );
446 void selectWeekNum ( int ); 447 void selectWeekNum ( int );
447 448
448 public: 449 public:
449 // show a standard warning 450 // show a standard warning
450 // returns KMsgBox::yesNoCancel() 451 // returns KMsgBox::yesNoCancel()
451 int msgCalModified(); 452 int msgCalModified();
452 void confSync(); 453 void confSync();
453 void setLoadedFileVersion(QDateTime); 454 void setLoadedFileVersion(QDateTime);
454 bool checkFileVersion(QString fn); 455 bool checkFileVersion(QString fn);
455 bool checkFileChanged(QString fn); 456 bool checkFileChanged(QString fn);
456 Event* getLastSyncEvent(); 457 Event* getLastSyncEvent();
457 /** Adapt navigation units correpsonding to step size of navigation of the 458 /** Adapt navigation units correpsonding to step size of navigation of the
458 * current view. 459 * current view.
459 */ 460 */
460 void adaptNavigationUnits(); 461 void adaptNavigationUnits();
461 bool synchronizeCalendar( Calendar* local, Calendar* remote, int mode ); 462 bool synchronizeCalendar( Calendar* local, Calendar* remote, int mode );
462 int takeEvent( Incidence* local, Incidence* remote, int mode, bool full = false ); 463 int takeEvent( Incidence* local, Incidence* remote, int mode, bool full = false );
463 //Attendee* getYourAttendee(Event *event); 464 //Attendee* getYourAttendee(Event *event);
464 protected: 465 protected:
465 void schedule(Scheduler::Method, Incidence *incidence = 0); 466 void schedule(Scheduler::Method, Incidence *incidence = 0);
466 467
467 // returns KMsgBox::OKCandel() 468 // returns KMsgBox::OKCandel()
468 int msgItemDelete(); 469 int msgItemDelete();
469 void showEventEditor(); 470 void showEventEditor();
470 void showTodoEditor(); 471 void showTodoEditor();
471 void writeLocale(); 472 void writeLocale();
472 Todo *selectedTodo(); 473 Todo *selectedTodo();
473 474
474 private: 475 private:
475 AlarmDialog * mAlarmDialog; 476 AlarmDialog * mAlarmDialog;
476 QString mAlarmNotification; 477 QString mAlarmNotification;
477 QString mSuspendAlarmNotification; 478 QString mSuspendAlarmNotification;
478 QTimer* mSuspendTimer; 479 QTimer* mSuspendTimer;
479 QTimer* mAlarmTimer; 480 QTimer* mAlarmTimer;
480 QTimer* mRecheckAlarmTimer; 481 QTimer* mRecheckAlarmTimer;
481 void computeAlarm( QString ); 482 void computeAlarm( QString );
482 void startAlarm( QString, QString ); 483 void startAlarm( QString, QString );
483 void setSyncEventsReadOnly(); 484 void setSyncEventsReadOnly();
484 485
485 QDateTime loadedFileVersion; 486 QDateTime loadedFileVersion;
486 void checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ); 487 void checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete );
487 void checkExternalId( Incidence * inc ); 488 void checkExternalId( Incidence * inc );
488 int mGlobalSyncMode; 489 int mGlobalSyncMode;
489 QString mCurrentSyncDevice; 490 QString mCurrentSyncDevice;
490 QString mCurrentSyncName; 491 QString mCurrentSyncName;
491 KOBeamPrefs* beamDialog; 492 KOBeamPrefs* beamDialog;
492 void init(); 493 void init();
493 int mDatePickerMode; 494 int mDatePickerMode;
494 bool mFlagEditDescription; 495 bool mFlagEditDescription;
495 QDateTime mLastCalendarSync; 496 QDateTime mLastCalendarSync;
496 void createPrinter(); 497 void createPrinter();
497 498
498 void calendarModified( bool, Calendar * ); 499 void calendarModified( bool, Calendar * );
499 500
500 CalPrinter *mCalPrinter; 501 CalPrinter *mCalPrinter;
501 502
502 QSplitter *mPanner; 503 QSplitter *mPanner;
503 QSplitter *mLeftSplitter; 504 QSplitter *mLeftSplitter;
504 QWidget *mLeftFrame; 505 QWidget *mLeftFrame;
505 QWidgetStack *mRightFrame; 506 QWidgetStack *mRightFrame;
506 507
507 KDatePicker* mDatePicker; 508 KDatePicker* mDatePicker;
508 QVBox* mDateFrame; 509 QVBox* mDateFrame;
509 NavigatorBar *mNavigatorBar; 510 NavigatorBar *mNavigatorBar;
510 511
511 KDateNavigator *mDateNavigator; // widget showing small month view. 512 KDateNavigator *mDateNavigator; // widget showing small month view.
512 513
513 KOFilterView *mFilterView; 514 KOFilterView *mFilterView;
514 515
515 ResourceView *mResourceView; 516 ResourceView *mResourceView;
516 517
517 // calendar object for this viewing instance 518 // calendar object for this viewing instance
518 Calendar *mCalendar; 519 Calendar *mCalendar;
519 520
520 CalendarResourceManager *mResourceManager; 521 CalendarResourceManager *mResourceManager;
521 522
522 FileStorage *mStorage; 523 FileStorage *mStorage;
523 524
524 DateNavigator *mNavigator; 525 DateNavigator *mNavigator;
525 526
526 KOViewManager *mViewManager; 527 KOViewManager *mViewManager;
527 KODialogManager *mDialogManager; 528 KODialogManager *mDialogManager;
528 529
529 // Calendar filters 530 // Calendar filters
530 QPtrList<CalFilter> mFilters; 531 QPtrList<CalFilter> mFilters;
531 532
532 // various housekeeping variables. 533 // various housekeeping variables.
533 bool mModified; // flag indicating if calendar is modified 534 bool mModified; // flag indicating if calendar is modified
534 bool mReadOnly; // flag indicating if calendar is read-only 535 bool mReadOnly; // flag indicating if calendar is read-only
535 QDate mSaveSingleDate; 536 QDate mSaveSingleDate;
536 537
537 Incidence *mSelectedIncidence; 538 Incidence *mSelectedIncidence;
538 Incidence *mMoveIncidence; 539 Incidence *mMoveIncidence;
539 QPtrList<Event> mExternLastSyncEvent; 540 QPtrList<Event> mExternLastSyncEvent;
540 KOTodoView *mTodoList; 541 KOTodoView *mTodoList;
541 KOEventEditor * mEventEditor; 542 KOEventEditor * mEventEditor;
542 KOTodoEditor * mTodoEditor; 543 KOTodoEditor * mTodoEditor;
543 KOEventViewerDialog * mEventViewerDialog; 544 KOEventViewerDialog * mEventViewerDialog;
544 void keyPressEvent ( QKeyEvent *e) ; 545 void keyPressEvent ( QKeyEvent *e) ;
545 //QMap<Incidence*,KOIncidenceEditor*> mDialogList; 546 //QMap<Incidence*,KOIncidenceEditor*> mDialogList;
546}; 547};
547 548
548 549
549class CalendarViewVisitor : public Incidence::Visitor 550class CalendarViewVisitor : public Incidence::Visitor
550{ 551{
551 public: 552 public:
552 CalendarViewVisitor() : mView( 0 ) {} 553 CalendarViewVisitor() : mView( 0 ) {}
553 554
554 bool act( Incidence *incidence, CalendarView *view ) 555 bool act( Incidence *incidence, CalendarView *view )
555 { 556 {
556 mView = view; 557 mView = view;
557 return incidence->accept( *this ); 558 return incidence->accept( *this );
558 } 559 }
559 560
560 protected: 561 protected:
561 CalendarView *mView; 562 CalendarView *mView;
562}; 563};
563 564
564class ShowIncidenceVisitor : public CalendarViewVisitor 565class ShowIncidenceVisitor : public CalendarViewVisitor
565{ 566{
566 protected: 567 protected:
567 bool visit( Event *event ) { mView->showEvent( event ); return true; } 568 bool visit( Event *event ) { mView->showEvent( event ); return true; }
568 bool visit( Todo *todo ) { mView->showTodo( todo ); return true; } 569 bool visit( Todo *todo ) { mView->showTodo( todo ); return true; }
569 bool visit( Journal * j ) { mView->showJournal( j );return true; } 570 bool visit( Journal * j ) { mView->showJournal( j );return true; }
570}; 571};
571 572
572class EditIncidenceVisitor : public CalendarViewVisitor 573class EditIncidenceVisitor : public CalendarViewVisitor
573{ 574{
574 protected: 575 protected:
575 bool visit( Event *event ) { mView->editEvent( event ); return true; } 576 bool visit( Event *event ) { mView->editEvent( event ); return true; }
576 bool visit( Todo *todo ) { mView->editTodo( todo ); return true; } 577 bool visit( Todo *todo ) { mView->editTodo( todo ); return true; }
577 bool visit( Journal *j ) { mView->editJournal( j); return true; } 578 bool visit( Journal *j ) { mView->editJournal( j); return true; }
578}; 579};
579 580
580class DeleteIncidenceVisitor : public CalendarViewVisitor 581class DeleteIncidenceVisitor : public CalendarViewVisitor
581{ 582{
582 protected: 583 protected:
583 bool visit( Event *event ) { mView->deleteEvent( event ); return true; } 584 bool visit( Event *event ) { mView->deleteEvent( event ); return true; }
584 bool visit( Todo *todo ) { mView->deleteTodo( todo ); return true; } 585 bool visit( Todo *todo ) { mView->deleteTodo( todo ); return true; }
585 bool visit( Journal * j) {mView->deleteJournal( j ); return true; } 586 bool visit( Journal * j) {mView->deleteJournal( j ); return true; }
586}; 587};
587 588
588#endif 589#endif
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index 424fa98..446fe2e 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -21,280 +21,283 @@
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23#ifndef KOPREFS_H 23#ifndef KOPREFS_H
24#define KOPREFS_H 24#define KOPREFS_H
25 25
26#include <qdict.h> 26#include <qdict.h>
27 27
28#include <libkdepim/kpimprefs.h> 28#include <libkdepim/kpimprefs.h>
29 29
30class KConfig; 30class KConfig;
31class QFont; 31class QFont;
32class QColor; 32class QColor;
33class QStringList; 33class QStringList;
34 34
35class KOPrefs : public KPimPrefs 35class KOPrefs : public KPimPrefs
36{ 36{
37 public: 37 public:
38 enum { FormatVCalendar, FormatICalendar }; 38 enum { FormatVCalendar, FormatICalendar };
39 enum { MailClientKMail, MailClientSendmail }; 39 enum { MailClientKMail, MailClientSendmail };
40 enum { IMIPDummy, IMIPKMail }; 40 enum { IMIPDummy, IMIPKMail };
41 enum { IMIPOutbox, IMIPdirectsend }; 41 enum { IMIPOutbox, IMIPdirectsend };
42 enum { neverAuto, addressbookAuto, selectedAuto }; 42 enum { neverAuto, addressbookAuto, selectedAuto };
43 enum { standardDestination, askDestination }; 43 enum { standardDestination, askDestination };
44 44
45 virtual ~KOPrefs(); 45 virtual ~KOPrefs();
46 46
47 /** Get instance of KOPrefs. It is made sure that there is only one 47 /** Get instance of KOPrefs. It is made sure that there is only one
48 instance. */ 48 instance. */
49 static KOPrefs *instance(); 49 static KOPrefs *instance();
50 50
51 /** Set preferences to default values */ 51 /** Set preferences to default values */
52 void usrSetDefaults(); 52 void usrSetDefaults();
53 53
54 /** Read preferences from config file */ 54 /** Read preferences from config file */
55 void usrReadConfig(); 55 void usrReadConfig();
56 56
57 /** Write preferences to config file */ 57 /** Write preferences to config file */
58 void usrWriteConfig(); 58 void usrWriteConfig();
59 void setCategoryDefaults(); 59 void setCategoryDefaults();
60 60
61 protected: 61 protected:
62 void setTimeZoneIdDefault(); 62 void setTimeZoneIdDefault();
63 63
64 /** Fill empty mail fields with default values. */ 64 /** Fill empty mail fields with default values. */
65 void fillMailDefaults(); 65 void fillMailDefaults();
66 66
67 private: 67 private:
68 /** Constructor disabled for public. Use instance() to create a KOPrefs 68 /** Constructor disabled for public. Use instance() to create a KOPrefs
69 object. */ 69 object. */
70 KOPrefs(); 70 KOPrefs();
71 71
72 static KOPrefs *mInstance; 72 static KOPrefs *mInstance;
73 QDict<QString> *mLocaleDict; 73 QDict<QString> *mLocaleDict;
74 QStringList getDefaultList(); 74 QStringList getDefaultList();
75 public: 75 public:
76 // preferences data 76 // preferences data
77 KConfig* getConfig(); 77 KConfig* getConfig();
78 void setFullName(const QString &); 78 void setFullName(const QString &);
79 QString fullName(); 79 QString fullName();
80 void setEmail(const QString &); 80 void setEmail(const QString &);
81 QString email(); 81 QString email();
82 82
83 QString mAdditional; 83 QString mAdditional;
84 84
85 bool mEmailControlCenter; 85 bool mEmailControlCenter;
86 86
87 bool mBcc; 87 bool mBcc;
88 bool mAutoSave; 88 bool mAutoSave;
89 int mAutoSaveInterval; 89 int mAutoSaveInterval;
90 bool mConfirm; 90 bool mConfirm;
91 91
92 bool mEnableGroupScheduling; 92 bool mEnableGroupScheduling;
93 bool mEnableProjectView; 93 bool mEnableProjectView;
94 94
95 int mDefaultFormat; 95 int mDefaultFormat;
96 int mMailClient; 96 int mMailClient;
97 97
98 QString mTimeZone; 98 QString mTimeZone;
99 QString mTimeZoneId; 99 QString mTimeZoneId;
100 //QString mTimeZoneName; // e.g. +00:04:00 Indian/Mauritius 100 //QString mTimeZoneName; // e.g. +00:04:00 Indian/Mauritius
101 //int mTimeZoneOffset; // e.g. -240 min 101 //int mTimeZoneOffset; // e.g. -240 min
102 bool mUseDaylightsaving; 102 bool mUseDaylightsaving;
103 int mDaylightsavingStart; 103 int mDaylightsavingStart;
104 int mDaylightsavingEnd; 104 int mDaylightsavingEnd;
105 int mStartTime; 105 int mStartTime;
106 int mDefaultDuration; 106 int mDefaultDuration;
107 int mAlarmTime; 107 int mAlarmTime;
108 int mDaylightSavings; 108 int mDaylightSavings;
109 109
110 int mWorkingHoursStart; 110 int mWorkingHoursStart;
111 int mWorkingHoursEnd; 111 int mWorkingHoursEnd;
112 bool mExcludeHolidays; 112 bool mExcludeHolidays;
113 bool mExcludeSaturdays; 113 bool mExcludeSaturdays;
114 bool mMarcusBainsShowSeconds; 114 bool mMarcusBainsShowSeconds;
115 115
116 QFont mTimeBarFont; 116 QFont mTimeBarFont;
117 QFont mMonthViewFont; 117 QFont mMonthViewFont;
118 QFont mAgendaViewFont; 118 QFont mAgendaViewFont;
119 QFont mMarcusBainsFont; 119 QFont mMarcusBainsFont;
120 QFont mTimeLabelsFont; 120 QFont mTimeLabelsFont;
121 QFont mTodoViewFont; 121 QFont mTodoViewFont;
122 QFont mListViewFont; 122 QFont mListViewFont;
123 QFont mDateNavigatorFont; 123 QFont mDateNavigatorFont;
124 QFont mEditBoxFont; 124 QFont mEditBoxFont;
125 QFont mJornalViewFont; 125 QFont mJornalViewFont;
126 QFont mWhatsNextFont; 126 QFont mWhatsNextFont;
127 QFont mEventViewFont; 127 QFont mEventViewFont;
128 128
129 129
130 130
131 131
132 QColor mHolidayColor; 132 QColor mHolidayColor;
133 QColor mHighlightColor; 133 QColor mHighlightColor;
134 QColor mEventColor; 134 QColor mEventColor;
135 QColor mAgendaBgColor; 135 QColor mAgendaBgColor;
136 QColor mWorkingHoursColor; 136 QColor mWorkingHoursColor;
137 QColor mTodoDueTodayColor; 137 QColor mTodoDueTodayColor;
138 QColor mTodoOverdueColor; 138 QColor mTodoOverdueColor;
139 QColor mMonthViewEvenColor; 139 QColor mMonthViewEvenColor;
140 QColor mMonthViewOddColor; 140 QColor mMonthViewOddColor;
141 QColor mMonthViewHolidayColor; 141 QColor mMonthViewHolidayColor;
142 bool mMonthViewUsesDayColors; 142 bool mMonthViewUsesDayColors;
143 bool mMonthViewSatSunTog; 143 bool mMonthViewSatSunTog;
144 QColor mAppColor1; 144 QColor mAppColor1;
145 QColor mAppColor2; 145 QColor mAppColor2;
146 bool mUseAppColors; 146 bool mUseAppColors;
147 147
148 int mDayBegins; 148 int mDayBegins;
149 int mHourSize; 149 int mHourSize;
150 int mAllDaySize; 150 int mAllDaySize;
151 bool mShowFullMenu; 151 bool mShowFullMenu;
152 bool mDailyRecur; 152 bool mDailyRecur;
153 bool mWeeklyRecur; 153 bool mWeeklyRecur;
154 bool mMonthDailyRecur; 154 bool mMonthDailyRecur;
155 bool mMonthWeeklyRecur; 155 bool mMonthWeeklyRecur;
156 bool mMonthShowIcons; 156 bool mMonthShowIcons;
157 bool mMonthShowShort; 157 bool mMonthShowShort;
158 bool mEnableToolTips; 158 bool mEnableToolTips;
159 bool mEnableMonthScroll; 159 bool mEnableMonthScroll;
160 bool mFullViewMonth; 160 bool mFullViewMonth;
161 bool mMonthViewUsesCategoryColor; 161 bool mMonthViewUsesCategoryColor;
162 bool mFullViewTodo; 162 bool mFullViewTodo;
163 bool mShowCompletedTodo; 163 bool mShowCompletedTodo;
164 bool mMarcusBainsEnabled; 164 bool mMarcusBainsEnabled;
165 int mNextXDays; 165 int mNextXDays;
166 int mWhatsNextDays; 166 int mWhatsNextDays;
167 int mWhatsNextPrios; 167 int mWhatsNextPrios;
168 bool mEnableQuickTodo; 168 bool mEnableQuickTodo;
169 bool mLanguageChanged; 169 bool mLanguageChanged;
170 170
171 bool mCompactDialogs; 171 bool mCompactDialogs;
172 bool mVerticalScreen; 172 bool mVerticalScreen;
173 173
174 bool mShowIconNewTodo; 174 bool mShowIconNewTodo;
175 bool mShowIconNewEvent; 175 bool mShowIconNewEvent;
176 bool mShowIconSearch; 176 bool mShowIconSearch;
177 bool mShowIconList; 177 bool mShowIconList;
178 bool mShowIconDay1; 178 bool mShowIconDay1;
179 bool mShowIconDay5; 179 bool mShowIconDay5;
180 bool mShowIconDay7; 180 bool mShowIconDay7;
181 bool mShowIconMonth; 181 bool mShowIconMonth;
182 bool mShowIconTodoview; 182 bool mShowIconTodoview;
183 bool mShowIconBackFast; 183 bool mShowIconBackFast;
184 bool mShowIconBack; 184 bool mShowIconBack;
185 bool mShowIconToday; 185 bool mShowIconToday;
186 bool mShowIconForward; 186 bool mShowIconForward;
187 bool mShowIconForwardFast; 187 bool mShowIconForwardFast;
188 bool mShowIconWhatsThis; 188 bool mShowIconWhatsThis;
189 bool mShowIconNextDays; 189 bool mShowIconNextDays;
190 bool mShowIconNext; 190 bool mShowIconNext;
191 bool mShowIconJournal; 191 bool mShowIconJournal;
192 192
193 bool mShowIconStretch; 193 bool mShowIconStretch;
194 194
195 bool mToolBarHor; 195 bool mToolBarHor;
196 bool mToolBarUp; 196 bool mToolBarUp;
197 bool mToolBarMiniIcons; 197 bool mToolBarMiniIcons;
198 198
199 bool mAskForQuit; 199 bool mAskForQuit;
200 bool mUsePassWd; 200 bool mUsePassWd;
201 bool mWriteBackFile; 201 bool mWriteBackFile;
202 bool mAskForPreferences; 202 bool mAskForPreferences;
203 bool mShowSyncSummary; 203 bool mShowSyncSummary;
204 bool mShowSyncEvents; 204 bool mShowSyncEvents;
205 bool mShowTodoInAgenda; 205 bool mShowTodoInAgenda;
206 bool mWriteBackExistingOnly; 206 bool mWriteBackExistingOnly;
207 207
208 QString mRemoteIP; 208 QString mRemoteIP;
209 QString mRemoteUser; 209 QString mRemoteUser;
210 QString mRemotePassWd; 210 QString mRemotePassWd;
211 QString mRemoteFile; 211 QString mRemoteFile;
212 QString mLocalTempFile; 212 QString mLocalTempFile;
213 QString mPhoneDevice;
214 QString mPhoneConnection;
215 QString mPhoneModel;
213 216
214 int mLastSyncTime; 217 int mLastSyncTime;
215 int mSyncAlgoPrefs; 218 int mSyncAlgoPrefs;
216 int mRingSyncAlgoPrefs; 219 int mRingSyncAlgoPrefs;
217 QStringList mSyncProfileNames; 220 QStringList mSyncProfileNames;
218 QStringList mExternSyncProfiles; 221 QStringList mExternSyncProfiles;
219 QString mLocalMachineName; 222 QString mLocalMachineName;
220 void setCategoryColor(QString cat,const QColor & color); 223 void setCategoryColor(QString cat,const QColor & color);
221 QColor *categoryColor(QString cat); 224 QColor *categoryColor(QString cat);
222 225
223 QString mArchiveFile; 226 QString mArchiveFile;
224 QString mHtmlExportFile; 227 QString mHtmlExportFile;
225 bool mHtmlWithSave; 228 bool mHtmlWithSave;
226 229
227 QStringList mSelectedPlugins; 230 QStringList mSelectedPlugins;
228 231
229 QString mLastImportFile; 232 QString mLastImportFile;
230 QString mLastVcalFile; 233 QString mLastVcalFile;
231 QString mLastSaveFile; 234 QString mLastSaveFile;
232 QString mLastLoadFile; 235 QString mLastLoadFile;
233 QString mLastSyncedLocalFile; 236 QString mLastSyncedLocalFile;
234 237
235 238
236 QString mDefaultAlarmFile; 239 QString mDefaultAlarmFile;
237 int mIMIPScheduler; 240 int mIMIPScheduler;
238 int mIMIPSend; 241 int mIMIPSend;
239 QStringList mAdditionalMails; 242 QStringList mAdditionalMails;
240 int mIMIPAutoRefresh; 243 int mIMIPAutoRefresh;
241 int mIMIPAutoInsertReply; 244 int mIMIPAutoInsertReply;
242 int mIMIPAutoInsertRequest; 245 int mIMIPAutoInsertRequest;
243 int mIMIPAutoFreeBusy; 246 int mIMIPAutoFreeBusy;
244 int mIMIPAutoFreeBusyReply; 247 int mIMIPAutoFreeBusyReply;
245 248
246 QStringList mTodoTemplates; 249 QStringList mTodoTemplates;
247 QStringList mEventTemplates; 250 QStringList mEventTemplates;
248 251
249 int mDestination; 252 int mDestination;
250 253
251 254
252 bool mEditOnDoubleClick; 255 bool mEditOnDoubleClick;
253 bool mViewChangeHoldFullscreen; 256 bool mViewChangeHoldFullscreen;
254 bool mViewChangeHoldNonFullscreen; 257 bool mViewChangeHoldNonFullscreen;
255 bool mCenterOnCurrentTime; 258 bool mCenterOnCurrentTime;
256 bool mSetTimeToDayStartAt; 259 bool mSetTimeToDayStartAt;
257 bool mHighlightCurrentDay; 260 bool mHighlightCurrentDay;
258 bool mUseHighlightLightColor; 261 bool mUseHighlightLightColor;
259 bool mListViewMonthTimespan; 262 bool mListViewMonthTimespan;
260 bool mWNViewShowsParents; 263 bool mWNViewShowsParents;
261 bool mWNViewShowLocation; 264 bool mWNViewShowLocation;
262 bool mTodoViewShowsPercentage; 265 bool mTodoViewShowsPercentage;
263 bool mTodoViewUsesCatColors; 266 bool mTodoViewUsesCatColors;
264 bool mTodoViewUsesSmallFont; 267 bool mTodoViewUsesSmallFont;
265 bool mTodoViewUsesForegroundColor; 268 bool mTodoViewUsesForegroundColor;
266 bool mMonthViewUsesForegroundColor; 269 bool mMonthViewUsesForegroundColor;
267 270
268 bool mHightlightDateTimeEdit; 271 bool mHightlightDateTimeEdit;
269 int mPreferredLanguage; 272 int mPreferredLanguage;
270 bool mUseQuicksave; 273 bool mUseQuicksave;
271 int mPreferredTime; 274 int mPreferredTime;
272 int mPreferredDate; 275 int mPreferredDate;
273 bool mWeekStartsOnSunday; 276 bool mWeekStartsOnSunday;
274 bool mShortDateInViewer; 277 bool mShortDateInViewer;
275 QString mUserDateFormatLong; 278 QString mUserDateFormatLong;
276 QString mUserDateFormatShort; 279 QString mUserDateFormatShort;
277 280
278 QStringList mLocationDefaults; 281 QStringList mLocationDefaults;
279 QStringList mEventSummaryUser; 282 QStringList mEventSummaryUser;
280 QStringList mTodoSummaryUser; 283 QStringList mTodoSummaryUser;
281 284
282 bool mUseInternalAlarmNotification; 285 bool mUseInternalAlarmNotification;
283 int mAlarmPlayBeeps; 286 int mAlarmPlayBeeps;
284 int mAlarmSuspendTime; 287 int mAlarmSuspendTime;
285 int mAlarmSuspendCount; 288 int mAlarmSuspendCount;
286 int mAlarmBeepInterval; 289 int mAlarmBeepInterval;
287 290
288 private: 291 private:
289 QDict<QColor> mCategoryColors; 292 QDict<QColor> mCategoryColors;
290 QColor mDefaultCategoryColor; 293 QColor mDefaultCategoryColor;
291 294
292 QFont mDefaultTimeBarFont; 295 QFont mDefaultTimeBarFont;
293 QFont mDefaultViewFont; 296 QFont mDefaultViewFont;
294 QFont mDefaultMonthViewFont; 297 QFont mDefaultMonthViewFont;
295 298
296 QString mName; 299 QString mName;
297 QString mEmail; 300 QString mEmail;
298}; 301};
299 302
300#endif 303#endif
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index c3c4c26..062c95f 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -708,385 +708,391 @@ void MainWindow::initActions()
708 // ****************************************************** 708 // ******************************************************
709 // menubar icons 709 // menubar icons
710 710
711 711
712 iconToolBar->setHorizontalStretchable (true ); 712 iconToolBar->setHorizontalStretchable (true );
713 //menuBar->insertItem( iconToolBar ); 713 //menuBar->insertItem( iconToolBar );
714 //xdays_action 714 //xdays_action
715 if (p-> mShowIconNewEvent) 715 if (p-> mShowIconNewEvent)
716 ne_action->addTo( iconToolBar ); 716 ne_action->addTo( iconToolBar );
717 if (p->mShowIconNewTodo ) 717 if (p->mShowIconNewTodo )
718 nt_action->addTo( iconToolBar ); 718 nt_action->addTo( iconToolBar );
719 if (p-> mShowIconSearch) 719 if (p-> mShowIconSearch)
720 search_action->addTo( iconToolBar ); 720 search_action->addTo( iconToolBar );
721 if (p-> mShowIconNext) 721 if (p-> mShowIconNext)
722 whatsnext_action->addTo( iconToolBar ); 722 whatsnext_action->addTo( iconToolBar );
723 if (p-> mShowIconNextDays) 723 if (p-> mShowIconNextDays)
724 xdays_action->addTo( iconToolBar ); 724 xdays_action->addTo( iconToolBar );
725 if (p-> mShowIconList) 725 if (p-> mShowIconList)
726 showlist_action->addTo( iconToolBar ); 726 showlist_action->addTo( iconToolBar );
727 if (p-> mShowIconDay1) 727 if (p-> mShowIconDay1)
728 day1_action->addTo( iconToolBar ); 728 day1_action->addTo( iconToolBar );
729 if (p-> mShowIconDay5) 729 if (p-> mShowIconDay5)
730 day5_action->addTo( iconToolBar ); 730 day5_action->addTo( iconToolBar );
731 if (p-> mShowIconDay7) 731 if (p-> mShowIconDay7)
732 day7_action->addTo( iconToolBar ); 732 day7_action->addTo( iconToolBar );
733 if (p-> mShowIconMonth) 733 if (p-> mShowIconMonth)
734 month_action->addTo( iconToolBar ); 734 month_action->addTo( iconToolBar );
735 if (p-> mShowIconTodoview) 735 if (p-> mShowIconTodoview)
736 todoview_action->addTo( iconToolBar ); 736 todoview_action->addTo( iconToolBar );
737 if (p-> mShowIconJournal) 737 if (p-> mShowIconJournal)
738 viewjournal_action->addTo( iconToolBar ); 738 viewjournal_action->addTo( iconToolBar );
739 icon = loadPixmap( pathString + "2leftarrowB" ); 739 icon = loadPixmap( pathString + "2leftarrowB" );
740 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14); 740 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14);
741 if (p-> mShowIconBackFast) { 741 if (p-> mShowIconBackFast) {
742 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this ); 742 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this );
743 connect( action, SIGNAL( activated() ), 743 connect( action, SIGNAL( activated() ),
744 mView, SLOT( goPreviousMonth() ) ); 744 mView, SLOT( goPreviousMonth() ) );
745 action->addTo( iconToolBar ); 745 action->addTo( iconToolBar );
746 } 746 }
747 icon = loadPixmap( pathString + "1leftarrowB" ); 747 icon = loadPixmap( pathString + "1leftarrowB" );
748 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15); 748 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15);
749 if (p-> mShowIconBack) { 749 if (p-> mShowIconBack) {
750 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this ); 750 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this );
751 connect( action, SIGNAL( activated() ), 751 connect( action, SIGNAL( activated() ),
752 mView, SLOT( goPrevious() ) ); 752 mView, SLOT( goPrevious() ) );
753 action->addTo( iconToolBar ); 753 action->addTo( iconToolBar );
754 } 754 }
755 if (p-> mShowIconToday) 755 if (p-> mShowIconToday)
756 today_action->addTo( iconToolBar ); 756 today_action->addTo( iconToolBar );
757 icon = loadPixmap( pathString + "1rightarrowB" ); 757 icon = loadPixmap( pathString + "1rightarrowB" );
758 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220); 758 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220);
759 if (p-> mShowIconForward) { 759 if (p-> mShowIconForward) {
760 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this ); 760 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this );
761 connect( action, SIGNAL( activated() ), 761 connect( action, SIGNAL( activated() ),
762 mView, SLOT( goNext() ) ); 762 mView, SLOT( goNext() ) );
763 action->addTo( iconToolBar ); 763 action->addTo( iconToolBar );
764 } 764 }
765 icon = loadPixmap( pathString + "2rightarrowB" ); 765 icon = loadPixmap( pathString + "2rightarrowB" );
766 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230); 766 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230);
767 if (p-> mShowIconForwardFast) { 767 if (p-> mShowIconForwardFast) {
768 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this ); 768 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this );
769 connect( action, SIGNAL( activated() ), 769 connect( action, SIGNAL( activated() ),
770 mView, SLOT( goNextMonth() ) ); 770 mView, SLOT( goNextMonth() ) );
771 action->addTo( iconToolBar ); 771 action->addTo( iconToolBar );
772 } 772 }
773 773
774 774
775 configureToolBarMenu->insertItem(i18n("What's This?"), 300); 775 configureToolBarMenu->insertItem(i18n("What's This?"), 300);
776 776
777 if (p-> mShowIconNewEvent) 777 if (p-> mShowIconNewEvent)
778 configureToolBarMenu->setItemChecked( 10, true ); 778 configureToolBarMenu->setItemChecked( 10, true );
779 if (p->mShowIconNewTodo ) 779 if (p->mShowIconNewTodo )
780 configureToolBarMenu->setItemChecked( 20, true ); 780 configureToolBarMenu->setItemChecked( 20, true );
781 if (p-> mShowIconSearch) 781 if (p-> mShowIconSearch)
782 configureToolBarMenu->setItemChecked( 120, true ); 782 configureToolBarMenu->setItemChecked( 120, true );
783 if (p-> mShowIconList) 783 if (p-> mShowIconList)
784 configureToolBarMenu->setItemChecked( 30, true ); 784 configureToolBarMenu->setItemChecked( 30, true );
785 if (p-> mShowIconDay1) 785 if (p-> mShowIconDay1)
786 configureToolBarMenu->setItemChecked( 40, true ); 786 configureToolBarMenu->setItemChecked( 40, true );
787 if (p-> mShowIconDay5) 787 if (p-> mShowIconDay5)
788 configureToolBarMenu->setItemChecked( 50, true ); 788 configureToolBarMenu->setItemChecked( 50, true );
789 if (p-> mShowIconDay7) 789 if (p-> mShowIconDay7)
790 configureToolBarMenu->setItemChecked( 60, true ); 790 configureToolBarMenu->setItemChecked( 60, true );
791 if (p-> mShowIconMonth) 791 if (p-> mShowIconMonth)
792 configureToolBarMenu->setItemChecked( 70, true ); 792 configureToolBarMenu->setItemChecked( 70, true );
793 if (p-> mShowIconTodoview) 793 if (p-> mShowIconTodoview)
794 configureToolBarMenu->setItemChecked( 80, true ); 794 configureToolBarMenu->setItemChecked( 80, true );
795 if (p-> mShowIconBackFast) 795 if (p-> mShowIconBackFast)
796 configureToolBarMenu->setItemChecked( 200, true ); 796 configureToolBarMenu->setItemChecked( 200, true );
797 if (p-> mShowIconBack) 797 if (p-> mShowIconBack)
798 configureToolBarMenu->setItemChecked( 210, true ); 798 configureToolBarMenu->setItemChecked( 210, true );
799 if (p-> mShowIconToday) 799 if (p-> mShowIconToday)
800 configureToolBarMenu->setItemChecked( 130, true ); 800 configureToolBarMenu->setItemChecked( 130, true );
801 if (p-> mShowIconForward) 801 if (p-> mShowIconForward)
802 configureToolBarMenu->setItemChecked( 220, true ); 802 configureToolBarMenu->setItemChecked( 220, true );
803 if (p-> mShowIconForwardFast) 803 if (p-> mShowIconForwardFast)
804 configureToolBarMenu->setItemChecked( 230, true ); 804 configureToolBarMenu->setItemChecked( 230, true );
805 if (p-> mShowIconNextDays) 805 if (p-> mShowIconNextDays)
806 configureToolBarMenu->setItemChecked( 100, true ); 806 configureToolBarMenu->setItemChecked( 100, true );
807 if (p-> mShowIconNext) 807 if (p-> mShowIconNext)
808 configureToolBarMenu->setItemChecked( 110, true ); 808 configureToolBarMenu->setItemChecked( 110, true );
809 if (p-> mShowIconJournal) 809 if (p-> mShowIconJournal)
810 configureToolBarMenu->setItemChecked( 90, true ); 810 configureToolBarMenu->setItemChecked( 90, true );
811 if (p-> mShowIconWhatsThis) 811 if (p-> mShowIconWhatsThis)
812 configureToolBarMenu->setItemChecked( 300, true ); 812 configureToolBarMenu->setItemChecked( 300, true );
813 813
814 QLabel* dummy = new QLabel( iconToolBar ); 814 QLabel* dummy = new QLabel( iconToolBar );
815 dummy->setBackgroundColor( iconToolBar->backgroundColor() ); 815 dummy->setBackgroundColor( iconToolBar->backgroundColor() );
816 if (!p-> mShowIconStretch) 816 if (!p-> mShowIconStretch)
817 iconToolBar->setStretchableWidget ( dummy ) ; 817 iconToolBar->setStretchableWidget ( dummy ) ;
818 else 818 else
819 configureToolBarMenu->setItemChecked( 5, true ); 819 configureToolBarMenu->setItemChecked( 5, true );
820 if (p-> mShowIconWhatsThis) 820 if (p-> mShowIconWhatsThis)
821 QWhatsThis::whatsThisButton ( iconToolBar ); 821 QWhatsThis::whatsThisButton ( iconToolBar );
822 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) ); 822 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) );
823 configureAgenda( p->mHourSize ); 823 configureAgenda( p->mHourSize );
824 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); 824 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) );
825} 825}
826void MainWindow::fillSyncMenu() 826void MainWindow::fillSyncMenu()
827{ 827{
828 syncMenu->clear(); 828 syncMenu->clear();
829 syncMenu->insertItem( i18n("Configure..."), 0 ); 829 syncMenu->insertItem( i18n("Configure..."), 0 );
830 syncMenu->insertSeparator(); 830 syncMenu->insertSeparator();
831 syncMenu->insertItem( i18n("Multiple sync"), 1 ); 831 syncMenu->insertItem( i18n("Multiple sync"), 1 );
832 syncMenu->insertSeparator(); 832 syncMenu->insertSeparator();
833 KConfig config ( locateLocal( "config","syncprofilesrc" ) ); 833 KConfig config ( locateLocal( "config","syncprofilesrc" ) );
834 config.setGroup("General"); 834 config.setGroup("General");
835 QStringList prof = config.readListEntry("SyncProfileNames"); 835 QStringList prof = config.readListEntry("SyncProfileNames");
836 KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined"); 836 KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined");
837 if ( prof.count() < 3 ) { 837 if ( prof.count() < 3 ) {
838 prof.clear(); 838 prof.clear();
839 prof << i18n("Sharp_DTM"); 839 prof << i18n("Sharp_DTM");
840 prof << i18n("Local_file"); 840 prof << i18n("Local_file");
841 prof << i18n("Last_file"); 841 prof << i18n("Last_file");
842 KSyncProfile* temp = new KSyncProfile (); 842 KSyncProfile* temp = new KSyncProfile ();
843 temp->setName( prof[0] ); 843 temp->setName( prof[0] );
844 temp->writeConfig(&config); 844 temp->writeConfig(&config);
845 temp->setName( prof[1] ); 845 temp->setName( prof[1] );
846 temp->writeConfig(&config); 846 temp->writeConfig(&config);
847 temp->setName( prof[2] ); 847 temp->setName( prof[2] );
848 temp->writeConfig(&config); 848 temp->writeConfig(&config);
849 config.setGroup("General"); 849 config.setGroup("General");
850 config.writeEntry("SyncProfileNames",prof); 850 config.writeEntry("SyncProfileNames",prof);
851 config.writeEntry("ExternSyncProfiles","Sharp_DTM"); 851 config.writeEntry("ExternSyncProfiles","Sharp_DTM");
852 config.sync(); 852 config.sync();
853 delete temp; 853 delete temp;
854 } 854 }
855 KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); 855 KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles");
856 KOPrefs::instance()->mSyncProfileNames = prof; 856 KOPrefs::instance()->mSyncProfileNames = prof;
857 int i; 857 int i;
858 for ( i = 0; i < prof.count(); ++i ) { 858 for ( i = 0; i < prof.count(); ++i ) {
859 859
860 syncMenu->insertItem( prof[i], 1000+i ); 860 syncMenu->insertItem( prof[i], 1000+i );
861 if ( i == 2 ) 861 if ( i == 2 )
862 syncMenu->insertSeparator(); 862 syncMenu->insertSeparator();
863 } 863 }
864 QDir app_dir; 864 QDir app_dir;
865 if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { 865 if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) {
866 syncMenu->setItemEnabled( false , 1000 ); 866 syncMenu->setItemEnabled( false , 1000 );
867 } 867 }
868 mView->setupExternSyncProfiles(); 868 mView->setupExternSyncProfiles();
869} 869}
870 870
871int MainWindow::ringSync() 871int MainWindow::ringSync()
872{ 872{
873 int syncedProfiles = 0; 873 int syncedProfiles = 0;
874 int i; 874 int i;
875 QTime timer; 875 QTime timer;
876 KConfig config ( locateLocal( "config","syncprofilesrc" ) ); 876 KConfig config ( locateLocal( "config","syncprofilesrc" ) );
877 QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames; 877 QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames;
878 KSyncProfile* temp = new KSyncProfile (); 878 KSyncProfile* temp = new KSyncProfile ();
879 KOPrefs::instance()->mAskForPreferences = false; 879 KOPrefs::instance()->mAskForPreferences = false;
880 for ( i = 0; i < syncProfileNames.count(); ++i ) { 880 for ( i = 0; i < syncProfileNames.count(); ++i ) {
881 mCurrentSyncProfile = i; 881 mCurrentSyncProfile = i;
882 temp->setName(syncProfileNames[mCurrentSyncProfile]); 882 temp->setName(syncProfileNames[mCurrentSyncProfile]);
883 temp->readConfig(&config); 883 temp->readConfig(&config);
884 if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) { 884 if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) {
885 setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); 885 setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... "));
886 ++syncedProfiles; 886 ++syncedProfiles;
887 // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 887 // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
888 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 888 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
889 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 889 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
890 KOPrefs::instance()->mShowSyncSummary = false; 890 KOPrefs::instance()->mShowSyncSummary = false;
891 mView->setSyncDevice(syncProfileNames[i] ); 891 mView->setSyncDevice(syncProfileNames[i] );
892 mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); 892 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
893 if ( i == 0 ) { 893 if ( i == 0 ) {
894 syncSharp(); 894 syncSharp();
895 } else { 895 } else {
896 if ( temp->getIsLocalFileSync() ) { 896 if ( temp->getIsLocalFileSync() ) {
897 if ( syncWithFile( temp->getRemoteFileName( ), true ) ) 897 if ( syncWithFile( temp->getRemoteFileName( ), true ) )
898 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); 898 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName();
899 } else { 899 } else {
900 syncRemote( temp, false ); 900 if ( temp->getIsPhoneSync() ) {
901 KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ;
902 KOPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( );
903 KOPrefs::instance()->mPhoneModel = temp->getPhoneModel( );
904 syncPhone();
905 } else
906 syncRemote( temp, false );
901 907
902 } 908 }
903 } 909 }
904 timer.start(); 910 timer.start();
905 setCaption(i18n("Multiple sync in progress ... please wait!") ); 911 setCaption(i18n("Multiple sync in progress ... please wait!") );
906 while ( timer.elapsed () < 2000 ) { 912 while ( timer.elapsed () < 2000 ) {
907 qApp->processEvents(); 913 qApp->processEvents();
908#ifndef _WIN32_ 914#ifndef _WIN32_
909 sleep (1); 915 sleep (1);
910#endif 916#endif
911 } 917 }
912 918
913 } 919 }
914 920
915 } 921 }
916 delete temp; 922 delete temp;
917 return syncedProfiles; 923 return syncedProfiles;
918} 924}
919 925
920void MainWindow::multiSync( bool askforPrefs ) 926void MainWindow::multiSync( bool askforPrefs )
921{ 927{
922 if (mBlockSaveFlag) 928 if (mBlockSaveFlag)
923 return; 929 return;
924 mBlockSaveFlag = true; 930 mBlockSaveFlag = true;
925 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); 931 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!");
926 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 932 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
927 question, 933 question,
928 i18n("Yes"), i18n("No"), 934 i18n("Yes"), i18n("No"),
929 0, 0 ) != 0 ) { 935 0, 0 ) != 0 ) {
930 mBlockSaveFlag = false; 936 mBlockSaveFlag = false;
931 setCaption(i18n("Aborted! Nothing synced!")); 937 setCaption(i18n("Aborted! Nothing synced!"));
932 return; 938 return;
933 } 939 }
934 mView->setSyncDevice(i18n("Multiple profiles") ); 940 mView->setSyncDevice(i18n("Multiple profiles") );
935 KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs; 941 KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs;
936 if ( askforPrefs ) { 942 if ( askforPrefs ) {
937 mView->edit_sync_options(); 943 mView->edit_sync_options();
938 KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs; 944 KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs;
939 } 945 }
940 setCaption(i18n("Multiple sync started.") ); 946 setCaption(i18n("Multiple sync started.") );
941 qApp->processEvents(); 947 qApp->processEvents();
942 int num = ringSync() ; 948 int num = ringSync() ;
943 if ( num > 1 ) 949 if ( num > 1 )
944 ringSync(); 950 ringSync();
945 mBlockSaveFlag = false; 951 mBlockSaveFlag = false;
946 if ( num ) 952 if ( num )
947 save(); 953 save();
948 if ( num ) 954 if ( num )
949 setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); 955 setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) );
950 else 956 else
951 setCaption(i18n("Nothing synced! No profiles defined for multisync!")); 957 setCaption(i18n("Nothing synced! No profiles defined for multisync!"));
952 return; 958 return;
953} 959}
954void MainWindow::slotSyncMenu( int action ) 960void MainWindow::slotSyncMenu( int action )
955{ 961{
956 //qDebug("syncaction %d ", action); 962 //qDebug("syncaction %d ", action);
957 if ( action == 0 ) { 963 if ( action == 0 ) {
958 964
959 confSync(); 965 confSync();
960 966
961 return; 967 return;
962 } 968 }
963 if ( action == 1 ) { 969 if ( action == 1 ) {
964 multiSync( true ); 970 multiSync( true );
965 return; 971 return;
966 } 972 }
967 973
968 if (mBlockSaveFlag) 974 if (mBlockSaveFlag)
969 return; 975 return;
970 mBlockSaveFlag = true; 976 mBlockSaveFlag = true;
971 mCurrentSyncProfile = action - 1000 ; 977 mCurrentSyncProfile = action - 1000 ;
972 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); 978 mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] );
973 mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); 979 mView->setSyncName( KOPrefs::instance()->mLocalMachineName );
974 KConfig config ( locateLocal( "config","syncprofilesrc" ) ); 980 KConfig config ( locateLocal( "config","syncprofilesrc" ) );
975 KSyncProfile* temp = new KSyncProfile (); 981 KSyncProfile* temp = new KSyncProfile ();
976 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 982 temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
977 temp->readConfig(&config); 983 temp->readConfig(&config);
978 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); 984 KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences();
979 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); 985 KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs();
980 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); 986 KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
981 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); 987 KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
982 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); 988 KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync();
983 if ( action == 1000 ) { 989 if ( action == 1000 ) {
984 syncSharp(); 990 syncSharp();
985 991
986 } else if ( action == 1001 ) { 992 } else if ( action == 1001 ) {
987 syncLocalFile(); 993 syncLocalFile();
988 994
989 } else if ( action == 1002 ) { 995 } else if ( action == 1002 ) {
990 quickSyncLocalFile(); 996 quickSyncLocalFile();
991 997
992 } else if ( action >= 1003 ) { 998 } else if ( action >= 1003 ) {
993 if ( temp->getIsLocalFileSync() ) { 999 if ( temp->getIsLocalFileSync() ) {
994 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 1000 if ( syncWithFile( temp->getRemoteFileName( ), false ) )
995 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); 1001 KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName();
996 } else { 1002 } else {
997 syncRemote( temp ); 1003 syncRemote( temp );
998 1004
999 } 1005 }
1000 } 1006 }
1001 delete temp; 1007 delete temp;
1002 mBlockSaveFlag = false; 1008 mBlockSaveFlag = false;
1003} 1009}
1004void MainWindow::setDefaultPreferences() 1010void MainWindow::setDefaultPreferences()
1005{ 1011{
1006 KOPrefs *p = KOPrefs::instance(); 1012 KOPrefs *p = KOPrefs::instance();
1007 1013
1008 p->mCompactDialogs = true; 1014 p->mCompactDialogs = true;
1009 p->mConfirm = true; 1015 p->mConfirm = true;
1010 // p->mEnableQuickTodo = false; 1016 // p->mEnableQuickTodo = false;
1011} 1017}
1012 1018
1013QString MainWindow::resourcePath() 1019QString MainWindow::resourcePath()
1014{ 1020{
1015 return KGlobal::iconLoader()->iconPath(); 1021 return KGlobal::iconLoader()->iconPath();
1016} 1022}
1017 1023
1018void MainWindow::displayText( QString text ,QString cap ) 1024void MainWindow::displayText( QString text ,QString cap )
1019{ 1025{
1020 QDialog dia( this, "name", true ); ; 1026 QDialog dia( this, "name", true ); ;
1021 dia.setCaption( cap ); 1027 dia.setCaption( cap );
1022 QVBoxLayout* lay = new QVBoxLayout( &dia ); 1028 QVBoxLayout* lay = new QVBoxLayout( &dia );
1023 lay->setSpacing( 3 ); 1029 lay->setSpacing( 3 );
1024 lay->setMargin( 3 ); 1030 lay->setMargin( 3 );
1025 QTextBrowser tb ( &dia ); 1031 QTextBrowser tb ( &dia );
1026 lay->addWidget( &tb ); 1032 lay->addWidget( &tb );
1027 tb.setText( text ); 1033 tb.setText( text );
1028#ifdef DESKTOP_VERSION 1034#ifdef DESKTOP_VERSION
1029 dia.resize( 640, 480); 1035 dia.resize( 640, 480);
1030#else 1036#else
1031 dia.showMaximized(); 1037 dia.showMaximized();
1032#endif 1038#endif
1033 dia.exec(); 1039 dia.exec();
1034} 1040}
1035void MainWindow::displayFile( QString fn, QString cap ) 1041void MainWindow::displayFile( QString fn, QString cap )
1036{ 1042{
1037 QString fileName = resourcePath() + fn; 1043 QString fileName = resourcePath() + fn;
1038 QString text; 1044 QString text;
1039 QFile file( fileName ); 1045 QFile file( fileName );
1040 if (!file.open( IO_ReadOnly ) ) { 1046 if (!file.open( IO_ReadOnly ) ) {
1041 return ; 1047 return ;
1042 1048
1043 } 1049 }
1044 QTextStream ts( &file ); 1050 QTextStream ts( &file );
1045 text = ts.read(); 1051 text = ts.read();
1046 file.close(); 1052 file.close();
1047 displayText( text, cap); 1053 displayText( text, cap);
1048} 1054}
1049void MainWindow::features() 1055void MainWindow::features()
1050{ 1056{
1051 1057
1052 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") ); 1058 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") );
1053} 1059}
1054 1060
1055void MainWindow::usertrans() 1061void MainWindow::usertrans()
1056{ 1062{
1057 1063
1058 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") ); 1064 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") );
1059} 1065}
1060void MainWindow::synchowto() 1066void MainWindow::synchowto()
1061{ 1067{
1062 1068
1063 displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") ); 1069 displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") );
1064} 1070}
1065void MainWindow::faq() 1071void MainWindow::faq()
1066{ 1072{
1067 displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") ); 1073 displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") );
1068 1074
1069} 1075}
1070void MainWindow::whatsNew() 1076void MainWindow::whatsNew()
1071{ 1077{
1072 displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") ); 1078 displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") );
1073 1079
1074} 1080}
1075void MainWindow::licence() 1081void MainWindow::licence()
1076{ 1082{
1077 KApplication::showLicence(); 1083 KApplication::showLicence();
1078 1084
1079} 1085}
1080void MainWindow::about() 1086void MainWindow::about()
1081{ 1087{
1082 QString version; 1088 QString version;
1083#include <../version> 1089#include <../version>
1084 QMessageBox::about( this, i18n("About KOrganizer/Pi"), 1090 QMessageBox::about( this, i18n("About KOrganizer/Pi"),
1085 i18n("KOrganizer/Platform-independent\n") + 1091 i18n("KOrganizer/Platform-independent\n") +
1086 "(KO/Pi) " + version + " - " + 1092 "(KO/Pi) " + version + " - " +
1087 1093
1088#ifdef DESKTOP_VERSION 1094#ifdef DESKTOP_VERSION
1089 i18n("Desktop Edition\n") + 1095 i18n("Desktop Edition\n") +
1090#else 1096#else
1091 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") + 1097 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") +
1092#endif 1098#endif
@@ -1848,202 +1854,210 @@ void MainWindow::quickSyncLocalFile()
1848// e->setLocation( i18n("Quick with file: ")+ KOPrefs::instance()->mLastSyncedLocalFile); 1854// e->setLocation( i18n("Quick with file: ")+ KOPrefs::instance()->mLastSyncedLocalFile);
1849// e->setReadOnly( true ); 1855// e->setReadOnly( true );
1850 1856
1851 } 1857 }
1852} 1858}
1853 1859
1854void MainWindow::confSync() 1860void MainWindow::confSync()
1855{ 1861{
1856 mView->confSync(); 1862 mView->confSync();
1857 fillSyncMenu(); 1863 fillSyncMenu();
1858 //mView->writeSettings(); 1864 //mView->writeSettings();
1859 1865
1860 1866
1861} 1867}
1862void MainWindow::syncRemote( KSyncProfile* prof, bool ask) 1868void MainWindow::syncRemote( KSyncProfile* prof, bool ask)
1863{ 1869{
1864 QString question; 1870 QString question;
1865 if ( ask ) { 1871 if ( ask ) {
1866 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n"; 1872 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n";
1867 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 1873 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
1868 question, 1874 question,
1869 i18n("Yes"), i18n("No"), 1875 i18n("Yes"), i18n("No"),
1870 0, 0 ) != 0 ) 1876 0, 0 ) != 0 )
1871 return; 1877 return;
1872 } 1878 }
1873 QString command = prof->getPreSyncCommand(); 1879 QString command = prof->getPreSyncCommand();
1874 int fi; 1880 int fi;
1875 if ( (fi = command.find("$PWD$")) > 0 ) { 1881 if ( (fi = command.find("$PWD$")) > 0 ) {
1876 QString pwd = getPassword(); 1882 QString pwd = getPassword();
1877 command = command.left( fi )+ pwd + command.mid( fi+5 ); 1883 command = command.left( fi )+ pwd + command.mid( fi+5 );
1878 1884
1879 } 1885 }
1880 int maxlen = 30; 1886 int maxlen = 30;
1881 if ( QApplication::desktop()->width() > 320 ) 1887 if ( QApplication::desktop()->width() > 320 )
1882 maxlen += 25; 1888 maxlen += 25;
1883 setCaption ( i18n( "Copy remote file to local machine..." ) ); 1889 setCaption ( i18n( "Copy remote file to local machine..." ) );
1884 int fileSize = 0; 1890 int fileSize = 0;
1885 int result = system ( command ); 1891 int result = system ( command );
1886 // 0 : okay 1892 // 0 : okay
1887 // 256: no such file or dir 1893 // 256: no such file or dir
1888 // 1894 //
1889 qDebug("KO: Remote copy result(0 = okay): %d ",result ); 1895 qDebug("KO: Remote copy result(0 = okay): %d ",result );
1890 if ( result != 0 ) { 1896 if ( result != 0 ) {
1891 int len = maxlen; 1897 int len = maxlen;
1892 while ( len < command.length() ) { 1898 while ( len < command.length() ) {
1893 command.insert( len , "\n" ); 1899 command.insert( len , "\n" );
1894 len += maxlen +2; 1900 len += maxlen +2;
1895 } 1901 }
1896 question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ; 1902 question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ;
1897 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), 1903 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"),
1898 question, 1904 question,
1899 i18n("Okay!")) ; 1905 i18n("Okay!")) ;
1900 setCaption ("KO/Pi"); 1906 setCaption ("KO/Pi");
1901 return; 1907 return;
1902 } 1908 }
1903 setCaption ( i18n( "Copying succeed." ) ); 1909 setCaption ( i18n( "Copying succeed." ) );
1904 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); 1910 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() );
1905 if ( syncWithFile( prof->getLocalTempFile(), true ) ) { 1911 if ( syncWithFile( prof->getLocalTempFile(), true ) ) {
1906// Event* e = mView->getLastSyncEvent(); 1912// Event* e = mView->getLastSyncEvent();
1907// e->setReadOnly( false ); 1913// e->setReadOnly( false );
1908// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 1914// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
1909// e->setReadOnly( true ); 1915// e->setReadOnly( true );
1910 if ( KOPrefs::instance()->mWriteBackFile ) { 1916 if ( KOPrefs::instance()->mWriteBackFile ) {
1911 command = prof->getPostSyncCommand(); 1917 command = prof->getPostSyncCommand();
1912 setCaption ( i18n( "Writing back file ..." ) ); 1918 setCaption ( i18n( "Writing back file ..." ) );
1913 result = system ( command ); 1919 result = system ( command );
1914 qDebug("KO: Writing back file result: %d ", result); 1920 qDebug("KO: Writing back file result: %d ", result);
1915 if ( result != 0 ) { 1921 if ( result != 0 ) {
1916 setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); 1922 setCaption ( i18n( "Writing back file result: " )+QString::number( result ) );
1917 return; 1923 return;
1918 } else { 1924 } else {
1919 setCaption ( i18n( "Syncronization sucessfully completed" ) ); 1925 setCaption ( i18n( "Syncronization sucessfully completed" ) );
1920 } 1926 }
1921 } 1927 }
1922 } 1928 }
1923 return; 1929 return;
1924} 1930}
1925void MainWindow::syncSSH() 1931void MainWindow::syncSSH()
1926{ 1932{
1927 // not used anymore 1933 // not used anymore
1928 QTime timer; 1934 QTime timer;
1929 timer.start(); 1935 timer.start();
1930 //qDebug("MainWindow::syncssh() "); 1936 //qDebug("MainWindow::syncssh() ");
1931 KOPrefs *p = KOPrefs::instance(); 1937 KOPrefs *p = KOPrefs::instance();
1932 QString localFile = p->mLocalTempFile; 1938 QString localFile = p->mLocalTempFile;
1933 QString remoteIP = p->mRemoteIP; 1939 QString remoteIP = p->mRemoteIP;
1934 QString remoteUser = p->mRemoteUser; 1940 QString remoteUser = p->mRemoteUser;
1935 QString remoteFile = p->mRemoteFile; 1941 QString remoteFile = p->mRemoteFile;
1936 if ( p->mUsePassWd && p->mRemotePassWd.length() > 0 ) 1942 if ( p->mUsePassWd && p->mRemotePassWd.length() > 0 )
1937 remoteUser += ":" + p->mRemotePassWd; 1943 remoteUser += ":" + p->mRemotePassWd;
1938 1944
1939 QString question = i18n("Do you really want\nto remote sync?\n \n") + 1945 QString question = i18n("Do you really want\nto remote sync?\n \n") +
1940 i18n("IP: " ) +remoteIP +"\n" + 1946 i18n("IP: " ) +remoteIP +"\n" +
1941 i18n("User: " ) + remoteUser +"\n" ; 1947 i18n("User: " ) + remoteUser +"\n" ;
1942 int maxlen = 30; 1948 int maxlen = 30;
1943 if ( QApplication::desktop()->width() > 320 ) 1949 if ( QApplication::desktop()->width() > 320 )
1944 maxlen += 25; 1950 maxlen += 25;
1945 if ( remoteFile.length() > maxlen ) 1951 if ( remoteFile.length() > maxlen )
1946 question += i18n("Remote file:\n..." ) + remoteFile.right(maxlen) +"\n"; 1952 question += i18n("Remote file:\n..." ) + remoteFile.right(maxlen) +"\n";
1947 else 1953 else
1948 question += i18n("Remote file:\n " ) + remoteFile +"\n"; 1954 question += i18n("Remote file:\n " ) + remoteFile +"\n";
1949 if ( localFile.length() > maxlen ) 1955 if ( localFile.length() > maxlen )
1950 question += i18n("Local temp file:\n..." ) + localFile.right(maxlen) +"\n"; 1956 question += i18n("Local temp file:\n..." ) + localFile.right(maxlen) +"\n";
1951 else 1957 else
1952 question += i18n("Local temp file:\n " ) + localFile +"\n"; 1958 question += i18n("Local temp file:\n " ) + localFile +"\n";
1953 1959
1954 if ( QMessageBox::information( this, i18n("KO/Pi Sync"), 1960 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
1955 question, 1961 question,
1956 i18n("Yes"), i18n("No"), 1962 i18n("Yes"), i18n("No"),
1957 0, 0 ) != 0 ) 1963 0, 0 ) != 0 )
1958 return; 1964 return;
1959 // if ( !p->mUsePassWd ) { 1965 // if ( !p->mUsePassWd ) {
1960 // QString pass = getPassword(); 1966 // QString pass = getPassword();
1961 // if ( pass.length() > 0 ) 1967 // if ( pass.length() > 0 )
1962 // remoteUser += ":" + pass; 1968 // remoteUser += ":" + pass;
1963 // } 1969 // }
1964 QString command = "scp " + remoteUser + "@" + remoteIP +":" + remoteFile +" " +localFile; 1970 QString command = "scp " + remoteUser + "@" + remoteIP +":" + remoteFile +" " +localFile;
1965 setCaption ( i18n( "Copy remote file to local machine..." ) ); 1971 setCaption ( i18n( "Copy remote file to local machine..." ) );
1966 int fileSize = 0; 1972 int fileSize = 0;
1967 int result = system ( command ); 1973 int result = system ( command );
1968 // 0 : okay 1974 // 0 : okay
1969 // 256: no such file or dir 1975 // 256: no such file or dir
1970 // 1976 //
1971 qDebug("KO: Remote copy result(0 = okay): %d ",result ); 1977 qDebug("KO: Remote copy result(0 = okay): %d ",result );
1972 if ( result != 0 ) { 1978 if ( result != 0 ) {
1973 int len = maxlen; 1979 int len = maxlen;
1974 while ( len < command.length() ) { 1980 while ( len < command.length() ) {
1975 command.insert( len , "\n" ); 1981 command.insert( len , "\n" );
1976 len += maxlen +2; 1982 len += maxlen +2;
1977 } 1983 }
1978 question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ; 1984 question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ;
1979 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), 1985 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"),
1980 question, 1986 question,
1981 i18n("Okay!")) ; 1987 i18n("Okay!")) ;
1982 setCaption ("KO/Pi"); 1988 setCaption ("KO/Pi");
1983 return; 1989 return;
1984 } 1990 }
1985 1991
1986 1992
1987 setCaption ( i18n( "Copying succeed." ) ); 1993 setCaption ( i18n( "Copying succeed." ) );
1988 //mView->setSyncDevice("ssh-scp" ); 1994 //mView->setSyncDevice("ssh-scp" );
1989 if ( syncWithFile(localFile , true ) ) { 1995 if ( syncWithFile(localFile , true ) ) {
1990// Event* e = mView->getLastSyncEvent(); 1996// Event* e = mView->getLastSyncEvent();
1991// e->setReadOnly( false ); 1997// e->setReadOnly( false );
1992// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 1998// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
1993// e->setReadOnly( true ); 1999// e->setReadOnly( true );
1994 if ( KOPrefs::instance()->mWriteBackFile ) { 2000 if ( KOPrefs::instance()->mWriteBackFile ) {
1995 command = "scp " + localFile +" " +remoteUser + "@" + remoteIP +":" + remoteFile ; 2001 command = "scp " + localFile +" " +remoteUser + "@" + remoteIP +":" + remoteFile ;
1996 setCaption ( i18n( "Writing back file ..." ) ); 2002 setCaption ( i18n( "Writing back file ..." ) );
1997 result = system ( command ); 2003 result = system ( command );
1998 if ( result != 0 ) { 2004 if ( result != 0 ) {
1999 int len = maxlen; 2005 int len = maxlen;
2000 while ( len < command.length() ) { 2006 while ( len < command.length() ) {
2001 command.insert( len , "\n" ); 2007 command.insert( len , "\n" );
2002 len += maxlen +2; 2008 len += maxlen +2;
2003 } 2009 }
2004 question = i18n("Sorry, the copy back command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ; 2010 question = i18n("Sorry, the copy back command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ;
2005 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), 2011 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"),
2006 question, 2012 question,
2007 i18n("Okay!")) ; 2013 i18n("Okay!")) ;
2008 setCaption ("KO/Pi"); 2014 setCaption ("KO/Pi");
2009 return; 2015 return;
2010 } else { 2016 } else {
2011 setCaption ( i18n( "Syncronization sucessfully completed" ) ); 2017 setCaption ( i18n( "Syncronization sucessfully completed" ) );
2012 } 2018 }
2013 } 2019 }
2014 } 2020 }
2015 return; 2021 return;
2016#if 0 2022#if 0
2017 system ("scp zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics /home/polo/Applications/korganizer/z_sync.ics"); 2023 system ("scp zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics /home/polo/Applications/korganizer/z_sync.ics");
2018 while ( timer.elapsed() < 5000 ) 2024 while ( timer.elapsed() < 5000 )
2019 qApp->processEvents(); 2025 qApp->processEvents();
2020 2026
2021 qDebug("MainWindow::merging) "); 2027 qDebug("MainWindow::merging) ");
2022 mView->syncCalendar( "/home/polo/Applications/korganizer/z_sync.ics", 0 ); 2028 mView->syncCalendar( "/home/polo/Applications/korganizer/z_sync.ics", 0 );
2023 while ( mBlockSaveFlag ) 2029 while ( mBlockSaveFlag )
2024 qApp->processEvents(); 2030 qApp->processEvents();
2025 save(); 2031 save();
2026 system ("scp /home/polo/Applications/korganizer/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics"); 2032 system ("scp /home/polo/Applications/korganizer/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics");
2027#endif 2033#endif
2028 2034
2029} 2035}
2030 2036
2031 2037
2032void MainWindow::syncSharp() 2038void MainWindow::syncSharp()
2033{ 2039{
2034 if ( mCalendarModifiedFlag ) 2040 if ( mCalendarModifiedFlag )
2035 save(); 2041 save();
2036 mView->syncSharp(); 2042 mView->syncSharp();
2037 slotModifiedChanged( true ); 2043 slotModifiedChanged( true );
2038 2044
2039} 2045}
2046void MainWindow::syncPhone()
2047{
2048 if ( mCalendarModifiedFlag )
2049 save();
2050 mView->syncPhone();
2051 slotModifiedChanged( true );
2052
2053}
2040 2054
2041void MainWindow::printSel( ) 2055void MainWindow::printSel( )
2042{ 2056{
2043 mView->viewManager()->agendaView()->agenda()->printSelection(); 2057 mView->viewManager()->agendaView()->agenda()->printSelection();
2044} 2058}
2045 2059
2046void MainWindow::printCal() 2060void MainWindow::printCal()
2047{ 2061{
2048 mView->print();//mCp->showDialog(); 2062 mView->print();//mCp->showDialog();
2049} 2063}
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index fba8c52..1d87db0 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -1,120 +1,121 @@
1#ifndef KORGE_MAINWINDOW_H 1#ifndef KORGE_MAINWINDOW_H
2#define KORGE_MAINWINDOW_H 2#define KORGE_MAINWINDOW_H
3 3
4#include <qmainwindow.h> 4#include <qmainwindow.h>
5#include <qtimer.h> 5#include <qtimer.h>
6#include <qdict.h> 6#include <qdict.h>
7 7
8#include <libkcal/incidence.h> 8#include <libkcal/incidence.h>
9#include "simplealarmclient.h" 9#include "simplealarmclient.h"
10 10
11class QAction; 11class QAction;
12class CalendarView; 12class CalendarView;
13class KSyncProfile; 13class KSyncProfile;
14#ifdef DESKTOP_VERSION 14#ifdef DESKTOP_VERSION
15 15
16#define QPEToolBar QToolBar 16#define QPEToolBar QToolBar
17#define QPEMenuBar QMenuBar 17#define QPEMenuBar QMenuBar
18#endif 18#endif
19class QPEToolBar; 19class QPEToolBar;
20 20
21namespace KCal { 21namespace KCal {
22class CalendarLocal; 22class CalendarLocal;
23} 23}
24 24
25using namespace KCal; 25using namespace KCal;
26 26
27class MainWindow : public QMainWindow 27class MainWindow : public QMainWindow
28{ 28{
29 Q_OBJECT 29 Q_OBJECT
30 public: 30 public:
31 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); 31 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = "");
32 ~MainWindow(); 32 ~MainWindow();
33 public slots: 33 public slots:
34 void configureAgenda( int ); 34 void configureAgenda( int );
35 void recieve( const QCString& msg, const QByteArray& data ); 35 void recieve( const QCString& msg, const QByteArray& data );
36 static QString defaultFileName(); 36 static QString defaultFileName();
37 static QString resourcePath(); 37 static QString resourcePath();
38 protected slots: 38 protected slots:
39 void setCaptionToDates(); 39 void setCaptionToDates();
40 int ringSync(); 40 int ringSync();
41 void multiSync( bool askforPrefs = false ); 41 void multiSync( bool askforPrefs = false );
42 void about(); 42 void about();
43 void licence(); 43 void licence();
44 void faq(); 44 void faq();
45 void usertrans(); 45 void usertrans();
46 void features(); 46 void features();
47 void synchowto(); 47 void synchowto();
48 void whatsNew(); 48 void whatsNew();
49 void keyBindings(); 49 void keyBindings();
50 void aboutAutoSaving();; 50 void aboutAutoSaving();;
51 void aboutKnownBugs(); 51 void aboutKnownBugs();
52 52
53 void processIncidenceSelection( Incidence * ); 53 void processIncidenceSelection( Incidence * );
54 54
55 void importQtopia(); 55 void importQtopia();
56 void importBday(); 56 void importBday();
57 void importOL(); 57 void importOL();
58 void importIcal(); 58 void importIcal();
59 void importFile( QString, bool ); 59 void importFile( QString, bool );
60 void quickImportIcal(); 60 void quickImportIcal();
61 61
62 void slotModifiedChanged( bool ); 62 void slotModifiedChanged( bool );
63 63
64 void save(); 64 void save();
65 void configureToolBar( int ); 65 void configureToolBar( int );
66 void printSel(); 66 void printSel();
67 void printCal(); 67 void printCal();
68 void saveCalendar(); 68 void saveCalendar();
69 void loadCalendar(); 69 void loadCalendar();
70 void exportVCalendar(); 70 void exportVCalendar();
71 void fillFilterMenu(); 71 void fillFilterMenu();
72 void selectFilter( int ); 72 void selectFilter( int );
73 73
74 void slotSyncMenu( int ); 74 void slotSyncMenu( int );
75 void syncSSH(); 75 void syncSSH();
76 void confSync(); 76 void confSync();
77 void syncSharp(); 77 void syncSharp();
78 void syncPhone();
78 void syncLocalFile(); 79 void syncLocalFile();
79 bool syncWithFile( QString, bool ); 80 bool syncWithFile( QString, bool );
80 void quickSyncLocalFile(); 81 void quickSyncLocalFile();
81 82
82 83
83 protected: 84 protected:
84 void displayText( QString, QString); 85 void displayText( QString, QString);
85 void displayFile( QString, QString); 86 void displayFile( QString, QString);
86 87
87 void enableIncidenceActions( bool ); 88 void enableIncidenceActions( bool );
88 89
89 private: 90 private:
90 void saveOnClose(); 91 void saveOnClose();
91 int mCurrentSyncProfile; 92 int mCurrentSyncProfile;
92 void syncRemote( KSyncProfile* , bool ask = true); 93 void syncRemote( KSyncProfile* , bool ask = true);
93 void fillSyncMenu(); 94 void fillSyncMenu();
94 bool mFlagKeyPressed; 95 bool mFlagKeyPressed;
95 bool mBlockAtStartup; 96 bool mBlockAtStartup;
96 QPEToolBar *iconToolBar; 97 QPEToolBar *iconToolBar;
97 void initActions(); 98 void initActions();
98 void setDefaultPreferences(); 99 void setDefaultPreferences();
99 void keyPressEvent ( QKeyEvent * ) ; 100 void keyPressEvent ( QKeyEvent * ) ;
100 void keyReleaseEvent ( QKeyEvent * ) ; 101 void keyReleaseEvent ( QKeyEvent * ) ;
101 QPopupMenu *configureToolBarMenu; 102 QPopupMenu *configureToolBarMenu;
102 QPopupMenu *selectFilterMenu; 103 QPopupMenu *selectFilterMenu;
103 QPopupMenu *configureAgendaMenu, *syncMenu; 104 QPopupMenu *configureAgendaMenu, *syncMenu;
104 CalendarLocal *mCalendar; 105 CalendarLocal *mCalendar;
105 CalendarView *mView; 106 CalendarView *mView;
106 QString getPassword(); 107 QString getPassword();
107 QAction *mNewSubTodoAction; 108 QAction *mNewSubTodoAction;
108 109
109 QAction *mShowAction; 110 QAction *mShowAction;
110 QAction *mEditAction; 111 QAction *mEditAction;
111 QAction *mDeleteAction; 112 QAction *mDeleteAction;
112 void closeEvent( QCloseEvent* ce ); 113 void closeEvent( QCloseEvent* ce );
113 SimpleAlarmClient mAlarmClient; 114 SimpleAlarmClient mAlarmClient;
114 QTimer mSaveTimer; 115 QTimer mSaveTimer;
115 bool mBlockSaveFlag; 116 bool mBlockSaveFlag;
116 bool mCalendarModifiedFlag; 117 bool mCalendarModifiedFlag;
117 QPixmap loadPixmap( QString ); 118 QPixmap loadPixmap( QString );
118}; 119};
119 120
120#endif 121#endif