summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp20
-rw-r--r--korganizer/koprefs.cpp1
-rw-r--r--korganizer/koprefs.h1
-rw-r--r--korganizer/mainwindow.cpp115
-rw-r--r--korganizer/mainwindow.h2
5 files changed, 13 insertions, 126 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index eaea040..fecc7e2 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -1192,72 +1192,72 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
1192 QString mes; 1192 QString mes;
1193 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 ); 1193 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 );
1194 QString delmess; 1194 QString delmess;
1195 if ( delFut ) { 1195 if ( delFut ) {
1196 delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are in the past or\nmore than %d weeks in the future.\n"),delFut, KOPrefs::instance()->mWriteBackInFuture ); 1196 delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are in the past or\nmore than %d weeks in the future.\n"),delFut, KOPrefs::instance()->mWriteBackInFuture );
1197 mes += delmess; 1197 mes += delmess;
1198 } 1198 }
1199 if ( KOPrefs::instance()->mShowSyncSummary ) { 1199 if ( KOPrefs::instance()->mShowSyncSummary ) {
1200 KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") ); 1200 KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") );
1201 } 1201 }
1202 qDebug( mes ); 1202 qDebug( mes );
1203 mCalendar->checkAlarmForIncidence( 0, true ); 1203 mCalendar->checkAlarmForIncidence( 0, true );
1204 return syncOK; 1204 return syncOK;
1205} 1205}
1206 1206
1207void CalendarView::setSyncDevice( QString s ) 1207void CalendarView::setSyncDevice( QString s )
1208{ 1208{
1209 mCurrentSyncDevice= s; 1209 mCurrentSyncDevice= s;
1210} 1210}
1211void CalendarView::setSyncName( QString s ) 1211void CalendarView::setSyncName( QString s )
1212{ 1212{
1213 mCurrentSyncName= s; 1213 mCurrentSyncName= s;
1214} 1214}
1215bool CalendarView::syncCalendar(QString filename, int mode) 1215bool CalendarView::syncCalendar(QString filename, int mode)
1216{ 1216{
1217 mGlobalSyncMode = SYNC_MODE_NORMAL; 1217 mGlobalSyncMode = SYNC_MODE_NORMAL;
1218 CalendarLocal* calendar = new CalendarLocal(); 1218 CalendarLocal* calendar = new CalendarLocal();
1219 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 1219 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
1220 FileStorage* storage = new FileStorage( calendar ); 1220 FileStorage* storage = new FileStorage( calendar );
1221 bool syncOK = false; 1221 bool syncOK = false;
1222 storage->setFileName( filename ); 1222 storage->setFileName( filename );
1223 // qDebug("loading ... "); 1223 // qDebug("loading ... ");
1224 if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) { 1224 if ( storage->load() ) {
1225 getEventViewerDialog()->setSyncMode( true ); 1225 getEventViewerDialog()->setSyncMode( true );
1226 syncOK = synchronizeCalendar( mCalendar, calendar, mode ); 1226 syncOK = synchronizeCalendar( mCalendar, calendar, mode );
1227 getEventViewerDialog()->setSyncMode( false ); 1227 getEventViewerDialog()->setSyncMode( false );
1228 if ( syncOK ) { 1228 if ( syncOK ) {
1229 if ( KOPrefs::instance()->mWriteBackFile ) 1229 if ( KOPrefs::instance()->mWriteBackFile )
1230 { 1230 {
1231 storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); 1231 storage->setSaveFormat( new ICalFormat() );
1232 storage->save(); 1232 storage->save();
1233 } 1233 }
1234 } 1234 }
1235 setModified( true ); 1235 setModified( true );
1236 } 1236 }
1237 delete storage; 1237 delete storage;
1238 delete calendar; 1238 delete calendar;
1239 if ( syncOK ) 1239 if ( syncOK )
1240 updateView(); 1240 updateView();
1241 return syncOK; 1241 return syncOK;
1242} 1242}
1243void CalendarView::syncPhone() 1243void CalendarView::syncPhone()
1244{ 1244{
1245 syncExternal( 1 ); 1245 syncExternal( 1 );
1246} 1246}
1247void CalendarView::syncExternal( int mode ) 1247void CalendarView::syncExternal( int mode )
1248{ 1248{
1249 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 1249 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
1250 //mCurrentSyncDevice = "sharp-DTM"; 1250 //mCurrentSyncDevice = "sharp-DTM";
1251 if ( KOPrefs::instance()->mAskForPreferences ) 1251 if ( KOPrefs::instance()->mAskForPreferences )
1252 edit_sync_options(); 1252 edit_sync_options();
1253 qApp->processEvents(); 1253 qApp->processEvents();
1254 CalendarLocal* calendar = new CalendarLocal(); 1254 CalendarLocal* calendar = new CalendarLocal();
1255 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 1255 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
1256 bool syncOK = false; 1256 bool syncOK = false;
1257 bool loadSuccess = false; 1257 bool loadSuccess = false;
1258 PhoneFormat* phoneFormat = 0; 1258 PhoneFormat* phoneFormat = 0;
1259#ifndef DESKTOP_VERSION 1259#ifndef DESKTOP_VERSION
1260 SharpFormat* sharpFormat = 0; 1260 SharpFormat* sharpFormat = 0;
1261 if ( mode == 0 ) { // sharp 1261 if ( mode == 0 ) { // sharp
1262 sharpFormat = new SharpFormat () ; 1262 sharpFormat = new SharpFormat () ;
1263 loadSuccess = sharpFormat->load( calendar, mCalendar ); 1263 loadSuccess = sharpFormat->load( calendar, mCalendar );
@@ -1470,82 +1470,84 @@ bool CalendarView::importQtopia( const QString &categories,
1470#endif 1470#endif
1471 1471
1472} 1472}
1473 1473
1474void CalendarView::setSyncEventsReadOnly() 1474void CalendarView::setSyncEventsReadOnly()
1475{ 1475{
1476 Event * ev; 1476 Event * ev;
1477 QPtrList<Event> eL = mCalendar->rawEvents(); 1477 QPtrList<Event> eL = mCalendar->rawEvents();
1478 ev = eL.first(); 1478 ev = eL.first();
1479 while ( ev ) { 1479 while ( ev ) {
1480 if ( ev->uid().left(15) == QString("last-syncEvent-") ) 1480 if ( ev->uid().left(15) == QString("last-syncEvent-") )
1481 ev->setReadOnly( true ); 1481 ev->setReadOnly( true );
1482 ev = eL.next(); 1482 ev = eL.next();
1483 } 1483 }
1484} 1484}
1485bool CalendarView::openCalendar(QString filename, bool merge) 1485bool CalendarView::openCalendar(QString filename, bool merge)
1486{ 1486{
1487 1487
1488 if (filename.isEmpty()) { 1488 if (filename.isEmpty()) {
1489 return false; 1489 return false;
1490 } 1490 }
1491 1491
1492 if (!QFile::exists(filename)) { 1492 if (!QFile::exists(filename)) {
1493 KMessageBox::error(this,i18n("File does not exist:\n '%1'.").arg(filename)); 1493 KMessageBox::error(this,i18n("File does not exist:\n '%1'.").arg(filename));
1494 return false; 1494 return false;
1495 } 1495 }
1496 1496
1497 globalFlagBlockAgenda = 1; 1497 globalFlagBlockAgenda = 1;
1498 if (!merge) mCalendar->close(); 1498 if (!merge) mCalendar->close();
1499 1499
1500 mStorage->setFileName( filename ); 1500 mStorage->setFileName( filename );
1501 1501
1502 if ( mStorage->load(KOPrefs::instance()->mUseQuicksave) ) { 1502 if ( mStorage->load() ) {
1503 if ( merge ) ;//setModified( true ); 1503 if ( merge ) ;//setModified( true );
1504 else { 1504 else {
1505 //setModified( true ); 1505 //setModified( true );
1506 mViewManager->setDocumentId( filename ); 1506 mViewManager->setDocumentId( filename );
1507 mDialogManager->setDocumentId( filename ); 1507 mDialogManager->setDocumentId( filename );
1508 mTodoList->setDocumentId( filename ); 1508 mTodoList->setDocumentId( filename );
1509 } 1509 }
1510 globalFlagBlockAgenda = 2; 1510 globalFlagBlockAgenda = 2;
1511 // if ( getLastSyncEvent() ) 1511 // if ( getLastSyncEvent() )
1512 // getLastSyncEvent()->setReadOnly( true ); 1512 // getLastSyncEvent()->setReadOnly( true );
1513 mCalendar->reInitAlarmSettings(); 1513 mCalendar->reInitAlarmSettings();
1514 setSyncEventsReadOnly(); 1514 setSyncEventsReadOnly();
1515 updateUnmanagedViews(); 1515 updateUnmanagedViews();
1516 updateView(); 1516 updateView();
1517 if ( filename != MainWindow::defaultFileName() )
1518 saveCalendar( MainWindow::defaultFileName() );
1519 loadedFileVersion = QDateTime::currentDateTime(); 1517 loadedFileVersion = QDateTime::currentDateTime();
1518 if ( filename != MainWindow::defaultFileName() ) {
1519 saveCalendar( MainWindow::defaultFileName() );
1520 watchSavedFile();
1521 }
1520 return true; 1522 return true;
1521 } else { 1523 } else {
1522 // while failing to load, the calendar object could 1524 // while failing to load, the calendar object could
1523 // have become partially populated. Clear it out. 1525 // have become partially populated. Clear it out.
1524 if ( !merge ) mCalendar->close(); 1526 if ( !merge ) mCalendar->close();
1525 1527
1526 KMessageBox::error(this,i18n("Couldn't load calendar\n '%1'.").arg(filename)); 1528 KMessageBox::error(this,i18n("Couldn't load calendar\n '%1'.").arg(filename));
1527 1529
1528 globalFlagBlockAgenda = 2; 1530 globalFlagBlockAgenda = 2;
1529 updateView(); 1531 updateView();
1530 } 1532 }
1531 return false; 1533 return false;
1532} 1534}
1533void CalendarView::setLoadedFileVersion(QDateTime dt) 1535void CalendarView::setLoadedFileVersion(QDateTime dt)
1534{ 1536{
1535 loadedFileVersion = dt; 1537 loadedFileVersion = dt;
1536} 1538}
1537bool CalendarView::checkFileChanged(QString fn) 1539bool CalendarView::checkFileChanged(QString fn)
1538{ 1540{
1539 QFileInfo finf ( fn ); 1541 QFileInfo finf ( fn );
1540 if ( !finf.exists() ) 1542 if ( !finf.exists() )
1541 return true; 1543 return true;
1542 QDateTime dt = finf.lastModified (); 1544 QDateTime dt = finf.lastModified ();
1543 if ( dt <= loadedFileVersion ) 1545 if ( dt <= loadedFileVersion )
1544 return false; 1546 return false;
1545 return true; 1547 return true;
1546 1548
1547} 1549}
1548void CalendarView::watchSavedFile() 1550void CalendarView::watchSavedFile()
1549{ 1551{
1550 QFileInfo finf ( MainWindow::defaultFileName()); 1552 QFileInfo finf ( MainWindow::defaultFileName());
1551 if ( !finf.exists() ) 1553 if ( !finf.exists() )
@@ -1571,65 +1573,65 @@ bool CalendarView::checkFileVersion(QString fn)
1571 int km = KMessageBox::warningYesNoCancel(this, i18n("\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n").arg( QString::number( finf.size())).arg( KGlobal::locale()->formatDateTime(finf.lastModified (), true, true)) , 1573 int km = KMessageBox::warningYesNoCancel(this, i18n("\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n").arg( QString::number( finf.size())).arg( KGlobal::locale()->formatDateTime(finf.lastModified (), true, true)) ,
1572 i18n("KO/Pi Warning"),i18n("Overwrite"), 1574 i18n("KO/Pi Warning"),i18n("Overwrite"),
1573 i18n("Sync+save")); 1575 i18n("Sync+save"));
1574 1576
1575 if ( km == KMessageBox::Cancel ) 1577 if ( km == KMessageBox::Cancel )
1576 return false; 1578 return false;
1577 if ( km == KMessageBox::Yes ) 1579 if ( km == KMessageBox::Yes )
1578 return true; 1580 return true;
1579 1581
1580 setSyncDevice("deleteaftersync" ); 1582 setSyncDevice("deleteaftersync" );
1581 KOPrefs::instance()->mAskForPreferences = true; 1583 KOPrefs::instance()->mAskForPreferences = true;
1582 KOPrefs::instance()->mSyncAlgoPrefs = 3; 1584 KOPrefs::instance()->mSyncAlgoPrefs = 3;
1583 KOPrefs::instance()->mWriteBackFile = false; 1585 KOPrefs::instance()->mWriteBackFile = false;
1584 KOPrefs::instance()->mWriteBackExistingOnly = false; 1586 KOPrefs::instance()->mWriteBackExistingOnly = false;
1585 KOPrefs::instance()->mShowSyncSummary = false; 1587 KOPrefs::instance()->mShowSyncSummary = false;
1586 syncCalendar( fn, 3 ); 1588 syncCalendar( fn, 3 );
1587 Event * e = getLastSyncEvent(); 1589 Event * e = getLastSyncEvent();
1588 mCalendar->deleteEvent ( e ); 1590 mCalendar->deleteEvent ( e );
1589 updateView(); 1591 updateView();
1590 return true; 1592 return true;
1591} 1593}
1592 1594
1593bool CalendarView::saveCalendar( QString filename ) 1595bool CalendarView::saveCalendar( QString filename )
1594{ 1596{
1595 1597
1596 // Store back all unsaved data into calendar object 1598 // Store back all unsaved data into calendar object
1597 // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() ); 1599 // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() );
1598 if ( mViewManager->currentView() ) 1600 if ( mViewManager->currentView() )
1599 mViewManager->currentView()->flushView(); 1601 mViewManager->currentView()->flushView();
1600 1602
1601 //mStorage->setFileName( filename ); 1603 //mStorage->setFileName( filename );
1602 1604
1603 mStorage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); 1605 mStorage->setSaveFormat( new ICalFormat() );
1604 mStorage->setFileName( filename ); 1606 mStorage->setFileName( filename );
1605 bool success; 1607 bool success;
1606 success = mStorage->save(); 1608 success = mStorage->save();
1607 if ( !success ) { 1609 if ( !success ) {
1608 return false; 1610 return false;
1609 } 1611 }
1610 1612
1611 return true; 1613 return true;
1612} 1614}
1613 1615
1614void CalendarView::closeCalendar() 1616void CalendarView::closeCalendar()
1615{ 1617{
1616 1618
1617 // child windows no longer valid 1619 // child windows no longer valid
1618 emit closingDown(); 1620 emit closingDown();
1619 1621
1620 mCalendar->close(); 1622 mCalendar->close();
1621 setModified(false); 1623 setModified(false);
1622 updateView(); 1624 updateView();
1623} 1625}
1624 1626
1625void CalendarView::archiveCalendar() 1627void CalendarView::archiveCalendar()
1626{ 1628{
1627 mDialogManager->showArchiveDialog(); 1629 mDialogManager->showArchiveDialog();
1628} 1630}
1629 1631
1630 1632
1631void CalendarView::readSettings() 1633void CalendarView::readSettings()
1632{ 1634{
1633 1635
1634 1636
1635 // mViewManager->showAgendaView(); 1637 // mViewManager->showAgendaView();
@@ -2272,65 +2274,65 @@ void CalendarView::beamIncidenceList(QPtrList<Incidence> delSel )
2272 return; 2274 return;
2273 2275
2274 QString fn = "/tmp/kopibeamfile"; 2276 QString fn = "/tmp/kopibeamfile";
2275 QString mes; 2277 QString mes;
2276 bool createbup = true; 2278 bool createbup = true;
2277 if ( createbup ) { 2279 if ( createbup ) {
2278 QString description = "\n"; 2280 QString description = "\n";
2279 CalendarLocal* cal = new CalendarLocal(); 2281 CalendarLocal* cal = new CalendarLocal();
2280 if ( beamDialog->beamLocal() ) 2282 if ( beamDialog->beamLocal() )
2281 cal->setLocalTime(); 2283 cal->setLocalTime();
2282 else 2284 else
2283 cal->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 2285 cal->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
2284 Incidence *incidence = delSel.first(); 2286 Incidence *incidence = delSel.first();
2285 bool addText = false; 2287 bool addText = false;
2286 if ( delSel.count() < 10 ) 2288 if ( delSel.count() < 10 )
2287 addText = true; 2289 addText = true;
2288 else { 2290 else {
2289 description.sprintf(i18n(" %d items?"),delSel.count() ); 2291 description.sprintf(i18n(" %d items?"),delSel.count() );
2290 } 2292 }
2291 while ( incidence ) { 2293 while ( incidence ) {
2292 Incidence *in = incidence->clone(); 2294 Incidence *in = incidence->clone();
2293 if ( addText ) 2295 if ( addText )
2294 description += in->summary() + "\n"; 2296 description += in->summary() + "\n";
2295 cal->addIncidence( in ); 2297 cal->addIncidence( in );
2296 incidence = delSel.next(); 2298 incidence = delSel.next();
2297 } 2299 }
2298 if ( beamDialog->beamVcal() ) { 2300 if ( beamDialog->beamVcal() ) {
2299 fn += ".vcs"; 2301 fn += ".vcs";
2300 FileStorage storage( cal, fn, new VCalFormat ); 2302 FileStorage storage( cal, fn, new VCalFormat );
2301 storage.save(); 2303 storage.save();
2302 } else { 2304 } else {
2303 fn += ".ics"; 2305 fn += ".ics";
2304 FileStorage storage( cal, fn, new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); 2306 FileStorage storage( cal, fn, new ICalFormat( ) );
2305 storage.save(); 2307 storage.save();
2306 } 2308 }
2307 delete cal; 2309 delete cal;
2308 mes = i18n("KO/Pi: Ready for beaming"); 2310 mes = i18n("KO/Pi: Ready for beaming");
2309 setCaption(mes); 2311 setCaption(mes);
2310 2312
2311#ifndef DESKTOP_VERSION 2313#ifndef DESKTOP_VERSION
2312 Ir *ir = new Ir( this ); 2314 Ir *ir = new Ir( this );
2313 connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) ); 2315 connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) );
2314 ir->send( fn, description, "text/x-vCalendar" ); 2316 ir->send( fn, description, "text/x-vCalendar" );
2315#endif 2317#endif
2316 } 2318 }
2317} 2319}
2318void CalendarView::beamDone( Ir *ir ) 2320void CalendarView::beamDone( Ir *ir )
2319{ 2321{
2320#ifndef DESKTOP_VERSION 2322#ifndef DESKTOP_VERSION
2321 delete ir; 2323 delete ir;
2322#endif 2324#endif
2323} 2325}
2324 2326
2325void CalendarView::moveIncidence(Incidence * inc ) 2327void CalendarView::moveIncidence(Incidence * inc )
2326{ 2328{
2327 if ( !inc ) return; 2329 if ( !inc ) return;
2328 // qDebug("showDatePickerForIncidence( ) "); 2330 // qDebug("showDatePickerForIncidence( ) ");
2329 if ( mDateFrame->isVisible() ) 2331 if ( mDateFrame->isVisible() )
2330 mDateFrame->hide(); 2332 mDateFrame->hide();
2331 else { 2333 else {
2332 int w =mDatePicker->sizeHint().width()+2*mDateFrame->lineWidth() ; 2334 int w =mDatePicker->sizeHint().width()+2*mDateFrame->lineWidth() ;
2333 int h = mDatePicker->sizeHint().height()+2*mDateFrame->lineWidth() ; 2335 int h = mDatePicker->sizeHint().height()+2*mDateFrame->lineWidth() ;
2334 int dw = QApplication::desktop()->width(); 2336 int dw = QApplication::desktop()->width();
2335 int dh = QApplication::desktop()->height(); 2337 int dh = QApplication::desktop()->height();
2336 mDateFrame->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2338 mDateFrame->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
@@ -2827,65 +2829,65 @@ bool CalendarView::deleteEvent(const QString &uid)
2827 } else { 2829 } else {
2828 return false; 2830 return false;
2829 } 2831 }
2830} 2832}
2831 2833
2832/*****************************************************************************/ 2834/*****************************************************************************/
2833 2835
2834void CalendarView::action_mail() 2836void CalendarView::action_mail()
2835{ 2837{
2836#ifndef KORG_NOMAIL 2838#ifndef KORG_NOMAIL
2837 KOMailClient mailClient; 2839 KOMailClient mailClient;
2838 2840
2839 Incidence *incidence = currentSelection(); 2841 Incidence *incidence = currentSelection();
2840 2842
2841 if (!incidence) { 2843 if (!incidence) {
2842 KMessageBox::sorry(this,i18n("Can't generate mail:\nNo event selected.")); 2844 KMessageBox::sorry(this,i18n("Can't generate mail:\nNo event selected."));
2843 return; 2845 return;
2844 } 2846 }
2845 if(incidence->attendeeCount() == 0 ) { 2847 if(incidence->attendeeCount() == 0 ) {
2846 KMessageBox::sorry(this, 2848 KMessageBox::sorry(this,
2847 i18n("Can't generate mail:\nNo attendees defined.\n")); 2849 i18n("Can't generate mail:\nNo attendees defined.\n"));
2848 return; 2850 return;
2849 } 2851 }
2850 2852
2851 CalendarLocal cal_tmp; 2853 CalendarLocal cal_tmp;
2852 Event *event = 0; 2854 Event *event = 0;
2853 Event *ev = 0; 2855 Event *ev = 0;
2854 if ( incidence && incidence->type() == "Event" ) { 2856 if ( incidence && incidence->type() == "Event" ) {
2855 event = static_cast<Event *>(incidence); 2857 event = static_cast<Event *>(incidence);
2856 ev = new Event(*event); 2858 ev = new Event(*event);
2857 cal_tmp.addEvent(ev); 2859 cal_tmp.addEvent(ev);
2858 } 2860 }
2859 ICalFormat mForm( KOPrefs::instance()->mUseQuicksave); 2861 ICalFormat mForm();
2860 QString attachment = mForm.toString( &cal_tmp ); 2862 QString attachment = mForm.toString( &cal_tmp );
2861 if (ev) delete(ev); 2863 if (ev) delete(ev);
2862 2864
2863 mailClient.mailAttendees(currentSelection(), attachment); 2865 mailClient.mailAttendees(currentSelection(), attachment);
2864 2866
2865#endif 2867#endif
2866 2868
2867#if 0 2869#if 0
2868 Event *anEvent = 0; 2870 Event *anEvent = 0;
2869 if (mViewManager->currentView()->isEventView()) { 2871 if (mViewManager->currentView()->isEventView()) {
2870 anEvent = dynamic_cast<Event *>((mViewManager->currentView()->selectedIncidences()).first()); 2872 anEvent = dynamic_cast<Event *>((mViewManager->currentView()->selectedIncidences()).first());
2871 } 2873 }
2872 2874
2873 if (!anEvent) { 2875 if (!anEvent) {
2874 KMessageBox::sorry(this,i18n("Can't generate mail:\nNo event selected.")); 2876 KMessageBox::sorry(this,i18n("Can't generate mail:\nNo event selected."));
2875 return; 2877 return;
2876 } 2878 }
2877 if(anEvent->attendeeCount() == 0 ) { 2879 if(anEvent->attendeeCount() == 0 ) {
2878 KMessageBox::sorry(this, 2880 KMessageBox::sorry(this,
2879 i18n("Can't generate mail:\nNo attendees defined.\n")); 2881 i18n("Can't generate mail:\nNo attendees defined.\n"));
2880 return; 2882 return;
2881 } 2883 }
2882 2884
2883 mailobject.emailEvent(anEvent); 2885 mailobject.emailEvent(anEvent);
2884#endif 2886#endif
2885} 2887}
2886 2888
2887 2889
2888void CalendarView::schedule_publish(Incidence *incidence) 2890void CalendarView::schedule_publish(Incidence *incidence)
2889{ 2891{
2890 Event *event = 0; 2892 Event *event = 0;
2891 Todo *todo = 0; 2893 Todo *todo = 0;
@@ -3112,65 +3114,65 @@ void CalendarView::printSetup()
3112void CalendarView::print() 3114void CalendarView::print()
3113{ 3115{
3114#ifndef KORG_NOPRINTER 3116#ifndef KORG_NOPRINTER
3115 createPrinter(); 3117 createPrinter();
3116 3118
3117 DateList tmpDateList = mNavigator->selectedDates(); 3119 DateList tmpDateList = mNavigator->selectedDates();
3118 mCalPrinter->print(CalPrinter::Month, 3120 mCalPrinter->print(CalPrinter::Month,
3119 tmpDateList.first(), tmpDateList.last()); 3121 tmpDateList.first(), tmpDateList.last());
3120#endif 3122#endif
3121} 3123}
3122 3124
3123void CalendarView::printPreview() 3125void CalendarView::printPreview()
3124{ 3126{
3125#ifndef KORG_NOPRINTER 3127#ifndef KORG_NOPRINTER
3126 kdDebug() << "CalendarView::printPreview()" << endl; 3128 kdDebug() << "CalendarView::printPreview()" << endl;
3127 3129
3128 createPrinter(); 3130 createPrinter();
3129 3131
3130 DateList tmpDateList = mNavigator->selectedDates(); 3132 DateList tmpDateList = mNavigator->selectedDates();
3131 3133
3132 mViewManager->currentView()->printPreview(mCalPrinter,tmpDateList.first(), 3134 mViewManager->currentView()->printPreview(mCalPrinter,tmpDateList.first(),
3133 tmpDateList.last()); 3135 tmpDateList.last());
3134#endif 3136#endif
3135} 3137}
3136 3138
3137void CalendarView::exportICalendar() 3139void CalendarView::exportICalendar()
3138{ 3140{
3139 QString filename = KFileDialog::getSaveFileName("icalout.ics",i18n("*.ics|ICalendars"),this); 3141 QString filename = KFileDialog::getSaveFileName("icalout.ics",i18n("*.ics|ICalendars"),this);
3140 3142
3141 // Force correct extension 3143 // Force correct extension
3142 if (filename.right(4) != ".ics") filename += ".ics"; 3144 if (filename.right(4) != ".ics") filename += ".ics";
3143 3145
3144 FileStorage storage( mCalendar, filename, new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); 3146 FileStorage storage( mCalendar, filename, new ICalFormat() );
3145 storage.save(); 3147 storage.save();
3146} 3148}
3147 3149
3148bool CalendarView::exportVCalendar( QString filename ) 3150bool CalendarView::exportVCalendar( QString filename )
3149{ 3151{
3150 if (mCalendar->journals().count() > 0) { 3152 if (mCalendar->journals().count() > 0) {
3151 int result = KMessageBox::warningContinueCancel(this, 3153 int result = KMessageBox::warningContinueCancel(this,
3152 i18n("The journal entries can not be\nexported to a vCalendar file."), 3154 i18n("The journal entries can not be\nexported to a vCalendar file."),
3153 i18n("Data Loss Warning"),i18n("Proceed"),i18n("Cancel"), 3155 i18n("Data Loss Warning"),i18n("Proceed"),i18n("Cancel"),
3154 true); 3156 true);
3155 if (result != KMessageBox::Continue) return false; 3157 if (result != KMessageBox::Continue) return false;
3156 } 3158 }
3157 3159
3158 //QString filename = KFileDialog::getSaveFileName("vcalout.vcs",i18n("*.vcs|VCalendars"),this); 3160 //QString filename = KFileDialog::getSaveFileName("vcalout.vcs",i18n("*.vcs|VCalendars"),this);
3159 3161
3160 // Force correct extension 3162 // Force correct extension
3161 if (filename.right(4) != ".vcs") filename += ".vcs"; 3163 if (filename.right(4) != ".vcs") filename += ".vcs";
3162 3164
3163 FileStorage storage( mCalendar, filename, new VCalFormat ); 3165 FileStorage storage( mCalendar, filename, new VCalFormat );
3164 return storage.save(); 3166 return storage.save();
3165 3167
3166} 3168}
3167 3169
3168void CalendarView::eventUpdated(Incidence *) 3170void CalendarView::eventUpdated(Incidence *)
3169{ 3171{
3170 setModified(); 3172 setModified();
3171 // Don't call updateView here. The code, which has caused the update of the 3173 // Don't call updateView here. The code, which has caused the update of the
3172 // event is responsible for updating the view. 3174 // event is responsible for updating the view.
3173 // updateView(); 3175 // updateView();
3174} 3176}
3175 3177
3176void CalendarView::adaptNavigationUnits() 3178void CalendarView::adaptNavigationUnits()
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index 0034715..e0623d5 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -195,65 +195,64 @@ KOPrefs::KOPrefs() :
195 addItemString("ActiveSyncIP",&mActiveSyncIP,"192.168.0.40" ); 195 addItemString("ActiveSyncIP",&mActiveSyncIP,"192.168.0.40" );
196 addItemBool("ShowSyncEvents",&mShowSyncEvents,false); 196 addItemBool("ShowSyncEvents",&mShowSyncEvents,false);
197 addItemInt("LastSyncTime",&mLastSyncTime,0); 197 addItemInt("LastSyncTime",&mLastSyncTime,0);
198 addItemInt("SyncAlgoPrefs",&mSyncAlgoPrefs,3); 198 addItemInt("SyncAlgoPrefs",&mSyncAlgoPrefs,3);
199 addItemInt("RingSyncAlgoPrefs",&mRingSyncAlgoPrefs,3); 199 addItemInt("RingSyncAlgoPrefs",&mRingSyncAlgoPrefs,3);
200 200
201#ifdef _WIN32_ 201#ifdef _WIN32_
202 QString hdp= locateLocal("data","korganizer")+"\\\\"; 202 QString hdp= locateLocal("data","korganizer")+"\\\\";
203#else 203#else
204 QString hdp= locateLocal("data","korganizer")+"/"; 204 QString hdp= locateLocal("data","korganizer")+"/";
205#endif 205#endif
206// addItemString("RemoteIP",&mRemoteIP, "192.168.0.65"); 206// addItemString("RemoteIP",&mRemoteIP, "192.168.0.65");
207// addItemString("RemoteUser",&mRemoteUser, "zaurus"); 207// addItemString("RemoteUser",&mRemoteUser, "zaurus");
208// addItemString("RemotePassWd",&mRemotePassWd, ""); 208// addItemString("RemotePassWd",&mRemotePassWd, "");
209// addItemString("RemoteFile", &mRemoteFile, hdp+"mycalendar.ics"); 209// addItemString("RemoteFile", &mRemoteFile, hdp+"mycalendar.ics");
210// addItemString("LocalTempFile",&mLocalTempFile, "/tmp/tempsyncfile.ics" ); 210// addItemString("LocalTempFile",&mLocalTempFile, "/tmp/tempsyncfile.ics" );
211 211
212 212
213 KPrefs::setCurrentGroup("LoadSaveFileNames"); 213 KPrefs::setCurrentGroup("LoadSaveFileNames");
214 214
215 addItemString("LastImportFile", &mLastImportFile ,hdp +"import.ics" ); 215 addItemString("LastImportFile", &mLastImportFile ,hdp +"import.ics" );
216 addItemString("LastVcalFile", &mLastVcalFile ,hdp +"export.vcs" ); 216 addItemString("LastVcalFile", &mLastVcalFile ,hdp +"export.vcs" );
217 addItemString("LastSaveFile", &mLastSaveFile ,hdp +"mybackup.ics" ); 217 addItemString("LastSaveFile", &mLastSaveFile ,hdp +"mybackup.ics" );
218 addItemString("LastLoadFile", &mLastLoadFile ,hdp +"mybackup.ics" ); 218 addItemString("LastLoadFile", &mLastLoadFile ,hdp +"mybackup.ics" );
219 addItemString("LastSyncedLocalFile", &mLastSyncedLocalFile ,hdp +"lastsync.ics" ); 219 addItemString("LastSyncedLocalFile", &mLastSyncedLocalFile ,hdp +"lastsync.ics" );
220 220
221 221
222 KPrefs::setCurrentGroup("Locale"); 222 KPrefs::setCurrentGroup("Locale");
223 addItemInt("PreferredLanguage",&mPreferredLanguage,0); 223 addItemInt("PreferredLanguage",&mPreferredLanguage,0);
224 addItemInt("PreferredTime",&mPreferredTime,0); 224 addItemInt("PreferredTime",&mPreferredTime,0);
225 addItemInt("PreferredDate",&mPreferredDate,0); 225 addItemInt("PreferredDate",&mPreferredDate,0);
226 addItemBool("WeekStartsOnSunday",&mWeekStartsOnSunday,false); 226 addItemBool("WeekStartsOnSunday",&mWeekStartsOnSunday,false);
227 addItemBool("QuickSavingWOUnicode",&mUseQuicksave,false);
228 addItemBool("ShortDateInViewer",&mShortDateInViewer,false); 227 addItemBool("ShortDateInViewer",&mShortDateInViewer,false);
229 addItemString("UserDateFormatLong", &mUserDateFormatLong, "%A %d %b %y"); 228 addItemString("UserDateFormatLong", &mUserDateFormatLong, "%A %d %b %y");
230 addItemString("UserDateFormatShort", &mUserDateFormatShort, "%aK %d.%m.%y"); 229 addItemString("UserDateFormatShort", &mUserDateFormatShort, "%aK %d.%m.%y");
231 230
232 231
233 KPrefs::setCurrentGroup("Colors"); 232 KPrefs::setCurrentGroup("Colors");
234 addItemColor("Holiday Color",&mHolidayColor,defaultHolidayColor); 233 addItemColor("Holiday Color",&mHolidayColor,defaultHolidayColor);
235 addItemColor("Highlight Color",&mHighlightColor,defaultHighlightColor); 234 addItemColor("Highlight Color",&mHighlightColor,defaultHighlightColor);
236 addItemColor("Event Color",&mEventColor,mDefaultCategoryColor); 235 addItemColor("Event Color",&mEventColor,mDefaultCategoryColor);
237 addItemColor("Agenda Background Color",&mAgendaBgColor,defaultAgendaBgColor); 236 addItemColor("Agenda Background Color",&mAgendaBgColor,defaultAgendaBgColor);
238 addItemColor("WorkingHours Color",&mWorkingHoursColor,defaultWorkingHoursColor); 237 addItemColor("WorkingHours Color",&mWorkingHoursColor,defaultWorkingHoursColor);
239 addItemColor("Todo due today Color",&mTodoDueTodayColor,defaultTodoDueTodayColor); 238 addItemColor("Todo due today Color",&mTodoDueTodayColor,defaultTodoDueTodayColor);
240 addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor); 239 addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor);
241 addItemColor("MonthViewEvenColor",&mMonthViewEvenColor,QColor( 160,160,255 )); 240 addItemColor("MonthViewEvenColor",&mMonthViewEvenColor,QColor( 160,160,255 ));
242 addItemColor("MonthViewOddColor",&mMonthViewOddColor,QColor( 160,255,160 )); 241 addItemColor("MonthViewOddColor",&mMonthViewOddColor,QColor( 160,255,160 ));
243 addItemColor("MonthViewHolidayColor",&mMonthViewHolidayColor,QColor( 255,160,160 )); 242 addItemColor("MonthViewHolidayColor",&mMonthViewHolidayColor,QColor( 255,160,160 ));
244 addItemBool("MonthViewUsesDayColors",&mMonthViewUsesDayColors,true); 243 addItemBool("MonthViewUsesDayColors",&mMonthViewUsesDayColors,true);
245 addItemBool("MonthViewSatSunTog",&mMonthViewSatSunTog,true); 244 addItemBool("MonthViewSatSunTog",&mMonthViewSatSunTog,true);
246 addItemBool("HightlightDateTimeEdit",&mHightlightDateTimeEdit,false); 245 addItemBool("HightlightDateTimeEdit",&mHightlightDateTimeEdit,false);
247 addItemColor("AppColor1",&mAppColor1,QColor( 130,170,255 )); 246 addItemColor("AppColor1",&mAppColor1,QColor( 130,170,255 ));
248 addItemColor("AppColor2",&mAppColor2,QColor( 174,216,255 )); 247 addItemColor("AppColor2",&mAppColor2,QColor( 174,216,255 ));
249 addItemBool("UseAppColors",&mUseAppColors,false); 248 addItemBool("UseAppColors",&mUseAppColors,false);
250 249
251 250
252 251
253 KPrefs::setCurrentGroup("Views"); 252 KPrefs::setCurrentGroup("Views");
254 addItemInt("Hour Size",&mHourSize,8); 253 addItemInt("Hour Size",&mHourSize,8);
255 addItemBool("Show Daily Recurrences",&mDailyRecur,true); 254 addItemBool("Show Daily Recurrences",&mDailyRecur,true);
256 addItemBool("Show Weekly Recurrences",&mWeeklyRecur,true); 255 addItemBool("Show Weekly Recurrences",&mWeeklyRecur,true);
257 addItemBool("Show Month Daily Recurrences",&mMonthDailyRecur,true); 256 addItemBool("Show Month Daily Recurrences",&mMonthDailyRecur,true);
258 addItemBool("Show Month Weekly Recurrences",&mMonthWeeklyRecur,true); 257 addItemBool("Show Month Weekly Recurrences",&mMonthWeeklyRecur,true);
259 addItemBool("ShowShortMonthName",&mMonthShowShort,false); 258 addItemBool("ShowShortMonthName",&mMonthShowShort,false);
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index 696433e..7abd741 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -237,65 +237,64 @@ class KOPrefs : public KPimPrefs
237 int mIMIPScheduler; 237 int mIMIPScheduler;
238 int mIMIPSend; 238 int mIMIPSend;
239 QStringList mAdditionalMails; 239 QStringList mAdditionalMails;
240 int mIMIPAutoRefresh; 240 int mIMIPAutoRefresh;
241 int mIMIPAutoInsertReply; 241 int mIMIPAutoInsertReply;
242 int mIMIPAutoInsertRequest; 242 int mIMIPAutoInsertRequest;
243 int mIMIPAutoFreeBusy; 243 int mIMIPAutoFreeBusy;
244 int mIMIPAutoFreeBusyReply; 244 int mIMIPAutoFreeBusyReply;
245 245
246 QStringList mTodoTemplates; 246 QStringList mTodoTemplates;
247 QStringList mEventTemplates; 247 QStringList mEventTemplates;
248 248
249 int mDestination; 249 int mDestination;
250 250
251 251
252 bool mEditOnDoubleClick; 252 bool mEditOnDoubleClick;
253 bool mViewChangeHoldFullscreen; 253 bool mViewChangeHoldFullscreen;
254 bool mViewChangeHoldNonFullscreen; 254 bool mViewChangeHoldNonFullscreen;
255 bool mCenterOnCurrentTime; 255 bool mCenterOnCurrentTime;
256 bool mSetTimeToDayStartAt; 256 bool mSetTimeToDayStartAt;
257 bool mHighlightCurrentDay; 257 bool mHighlightCurrentDay;
258 bool mUseHighlightLightColor; 258 bool mUseHighlightLightColor;
259 bool mListViewMonthTimespan; 259 bool mListViewMonthTimespan;
260 bool mWNViewShowsParents; 260 bool mWNViewShowsParents;
261 bool mWNViewShowLocation; 261 bool mWNViewShowLocation;
262 bool mTodoViewShowsPercentage; 262 bool mTodoViewShowsPercentage;
263 bool mTodoViewUsesCatColors; 263 bool mTodoViewUsesCatColors;
264 bool mTodoViewUsesSmallFont; 264 bool mTodoViewUsesSmallFont;
265 bool mTodoViewUsesForegroundColor; 265 bool mTodoViewUsesForegroundColor;
266 bool mMonthViewUsesForegroundColor; 266 bool mMonthViewUsesForegroundColor;
267 267
268 bool mHightlightDateTimeEdit; 268 bool mHightlightDateTimeEdit;
269 bool mUseQuicksave;
270 bool mShortDateInViewer; 269 bool mShortDateInViewer;
271 270
272 QStringList mLocationDefaults; 271 QStringList mLocationDefaults;
273 QStringList mEventSummaryUser; 272 QStringList mEventSummaryUser;
274 QStringList mTodoSummaryUser; 273 QStringList mTodoSummaryUser;
275 274
276 bool mUseInternalAlarmNotification; 275 bool mUseInternalAlarmNotification;
277 int mAlarmPlayBeeps; 276 int mAlarmPlayBeeps;
278 int mAlarmSuspendTime; 277 int mAlarmSuspendTime;
279 int mAlarmSuspendCount; 278 int mAlarmSuspendCount;
280 int mAlarmBeepInterval; 279 int mAlarmBeepInterval;
281 280
282 QString mPassiveSyncPort; 281 QString mPassiveSyncPort;
283 QString mActiveSyncPort; 282 QString mActiveSyncPort;
284 QString mActiveSyncIP; 283 QString mActiveSyncIP;
285 284
286 285
287 //US I copied the following settings into KPimGlobalPrefs 286 //US I copied the following settings into KPimGlobalPrefs
288 // that allows us later to easily remove the settings from here. 287 // that allows us later to easily remove the settings from here.
289 int mPreferredDate; 288 int mPreferredDate;
290 QString mUserDateFormatLong; 289 QString mUserDateFormatLong;
291 QString mUserDateFormatShort; 290 QString mUserDateFormatShort;
292 int mPreferredLanguage; 291 int mPreferredLanguage;
293 int mPreferredTime; 292 int mPreferredTime;
294 bool mWeekStartsOnSunday; 293 bool mWeekStartsOnSunday;
295 QString mTimeZoneId; 294 QString mTimeZoneId;
296 bool mUseDaylightsaving; 295 bool mUseDaylightsaving;
297 int mDaylightsavingStart; 296 int mDaylightsavingStart;
298 int mDaylightsavingEnd; 297 int mDaylightsavingEnd;
299 298
300 299
301 private: 300 private:
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 5aa75f5..43ee2d7 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1923,91 +1923,86 @@ void MainWindow::enableQuick()
1923 else 1923 else
1924 return; 1924 return;
1925 dia.hide(); 1925 dia.hide();
1926 passWordPiSync = lepw.text(); 1926 passWordPiSync = lepw.text();
1927 qApp->processEvents(); 1927 qApp->processEvents();
1928 KOPrefs::instance()->mPassiveSyncPort = retfile; 1928 KOPrefs::instance()->mPassiveSyncPort = retfile;
1929 bool ok; 1929 bool ok;
1930 Q_UINT16 port = retfile.toUInt(&ok); 1930 Q_UINT16 port = retfile.toUInt(&ok);
1931 if ( ! ok ) { 1931 if ( ! ok ) {
1932 KMessageBox::information( this, i18n("No valid port")); 1932 KMessageBox::information( this, i18n("No valid port"));
1933 return; 1933 return;
1934 } 1934 }
1935 //qDebug("port %d ", port); 1935 //qDebug("port %d ", port);
1936 mServerSocket = new KServerSocket ( passWordPiSync, port ,1 ); 1936 mServerSocket = new KServerSocket ( passWordPiSync, port ,1 );
1937 mServerSocket->setFileName( defaultFileName() ); 1937 mServerSocket->setFileName( defaultFileName() );
1938 //qDebug("connected "); 1938 //qDebug("connected ");
1939 if ( !mServerSocket->ok() ) { 1939 if ( !mServerSocket->ok() ) {
1940 qWarning("Failed to bind to port %d", port); 1940 qWarning("Failed to bind to port %d", port);
1941 delete mServerSocket; 1941 delete mServerSocket;
1942 mServerSocket = 0; 1942 mServerSocket = 0;
1943 return; 1943 return;
1944 } 1944 }
1945 connect( mServerSocket, SIGNAL ( saveFile() ), this, SLOT ( save() ) ); 1945 connect( mServerSocket, SIGNAL ( saveFile() ), this, SLOT ( save() ) );
1946 connect( mServerSocket, SIGNAL ( file_received( bool ) ), this, SLOT ( getFile( bool ) ) ); 1946 connect( mServerSocket, SIGNAL ( file_received( bool ) ), this, SLOT ( getFile( bool ) ) );
1947} 1947}
1948 1948
1949void MainWindow::getFile( bool success ) 1949void MainWindow::getFile( bool success )
1950{ 1950{
1951 if ( ! success ) { 1951 if ( ! success ) {
1952 setCaption( i18n("Error receiving file. Nothing changed!") ); 1952 setCaption( i18n("Error receiving file. Nothing changed!") );
1953 return; 1953 return;
1954 } 1954 }
1955 // pending adjust time for watchSavedFile() 1955 mView->watchSavedFile();
1956 //mView->watchSavedFile();
1957 mView->openCalendar( defaultFileName() ); 1956 mView->openCalendar( defaultFileName() );
1958 setCaption( i18n("Pi-Sync successful!") ); 1957 setCaption( i18n("Pi-Sync successful!") );
1959 1958
1960} 1959}
1961 1960
1962 1961
1963void MainWindow::syncPi() 1962void MainWindow::syncPi()
1964{ 1963{
1965 qApp->processEvents(); 1964 qApp->processEvents();
1966 performQuickQuick();
1967}
1968
1969void MainWindow::performQuickQuick()
1970{
1971 bool ok; 1965 bool ok;
1972 Q_UINT16 port = KOPrefs::instance()->mActiveSyncPort.toUInt(&ok); 1966 Q_UINT16 port = KOPrefs::instance()->mActiveSyncPort.toUInt(&ok);
1973 if ( ! ok ) { 1967 if ( ! ok ) {
1974 setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); 1968 setCaption( i18n("Sorry, no valid port.Syncing cancelled.") );
1975 return; 1969 return;
1976 } 1970 }
1977 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, KOPrefs::instance()->mActiveSyncIP, this ); 1971 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, KOPrefs::instance()->mActiveSyncIP, this );
1978 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); 1972 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
1979 setCaption( i18n("Sending request for remote file ...") ); 1973 setCaption( i18n("Sending request for remote file ...") );
1980 commandSocket->readFile( syncFileName() ); 1974 commandSocket->readFile( syncFileName() );
1981} 1975}
1976
1982void MainWindow::deleteCommandSocket(KCommandSocket*s, int state) 1977void MainWindow::deleteCommandSocket(KCommandSocket*s, int state)
1983{ 1978{
1984 qDebug("MainWindow::deleteCommandSocket %d", state); 1979 qDebug("MainWindow::deleteCommandSocket %d", state);
1985 1980
1986 //enum { success, errorW, errorR, quiet }; 1981 //enum { success, errorW, errorR, quiet };
1987 if ( state == KCommandSocket::errorR ) { 1982 if ( state == KCommandSocket::errorR ) {
1988 setCaption( i18n("ERROR: Receiving remote file failed.") ); 1983 setCaption( i18n("ERROR: Receiving remote file failed.") );
1989 delete s; 1984 delete s;
1990 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, KOPrefs::instance()->mActiveSyncPort.toUInt(), KOPrefs::instance()->mActiveSyncIP, this ); 1985 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, KOPrefs::instance()->mActiveSyncPort.toUInt(), KOPrefs::instance()->mActiveSyncIP, this );
1991 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); 1986 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) );
1992 commandSocket->sendStop(); 1987 commandSocket->sendStop();
1993 return; 1988 return;
1994 1989
1995 } else if ( state == KCommandSocket::errorW ) { 1990 } else if ( state == KCommandSocket::errorW ) {
1996 setCaption( i18n("ERROR:Writing back file failed.") ); 1991 setCaption( i18n("ERROR:Writing back file failed.") );
1997 1992
1998 } else if ( state == KCommandSocket::successR ) { 1993 } else if ( state == KCommandSocket::successR ) {
1999 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket())); 1994 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket()));
2000 1995
2001 } else if ( state == KCommandSocket::successW ) { 1996 } else if ( state == KCommandSocket::successW ) {
2002 setCaption( i18n("Pi-Sync succesful!") ); 1997 setCaption( i18n("Pi-Sync succesful!") );
2003 } 1998 }
2004 1999
2005 delete s; 2000 delete s;
2006} 2001}
2007 2002
2008void MainWindow::readFileFromSocket() 2003void MainWindow::readFileFromSocket()
2009{ 2004{
2010 QString fileName = syncFileName(); 2005 QString fileName = syncFileName();
2011 setCaption( i18n("Remote file saved to temp file.") ); 2006 setCaption( i18n("Remote file saved to temp file.") );
2012 if ( ! syncWithFile( fileName , true ) ) { 2007 if ( ! syncWithFile( fileName , true ) ) {
2013 setCaption( i18n("Syncing failed.") ); 2008 setCaption( i18n("Syncing failed.") );
@@ -2137,170 +2132,64 @@ void MainWindow::syncRemote( KSyncProfile* prof, bool ask)
2137 i18n("Okay!")) ; 2132 i18n("Okay!")) ;
2138 setCaption ("KO/Pi"); 2133 setCaption ("KO/Pi");
2139 return; 2134 return;
2140 } 2135 }
2141 setCaption ( i18n( "Copying succeed." ) ); 2136 setCaption ( i18n( "Copying succeed." ) );
2142 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); 2137 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() );
2143 if ( syncWithFile( prof->getLocalTempFile(), true ) ) { 2138 if ( syncWithFile( prof->getLocalTempFile(), true ) ) {
2144// Event* e = mView->getLastSyncEvent(); 2139// Event* e = mView->getLastSyncEvent();
2145// e->setReadOnly( false ); 2140// e->setReadOnly( false );
2146// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 2141// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
2147// e->setReadOnly( true ); 2142// e->setReadOnly( true );
2148 if ( KOPrefs::instance()->mWriteBackFile ) { 2143 if ( KOPrefs::instance()->mWriteBackFile ) {
2149 command = prof->getPostSyncCommand(); 2144 command = prof->getPostSyncCommand();
2150 int fi; 2145 int fi;
2151 if ( (fi = command.find("$PWD$")) > 0 ) { 2146 if ( (fi = command.find("$PWD$")) > 0 ) {
2152 QString pwd = getPassword(); 2147 QString pwd = getPassword();
2153 command = command.left( fi )+ pwd + command.mid( fi+5 ); 2148 command = command.left( fi )+ pwd + command.mid( fi+5 );
2154 2149
2155 } 2150 }
2156 setCaption ( i18n( "Writing back file ..." ) ); 2151 setCaption ( i18n( "Writing back file ..." ) );
2157 result = system ( command ); 2152 result = system ( command );
2158 qDebug("KO: Writing back file result: %d ", result); 2153 qDebug("KO: Writing back file result: %d ", result);
2159 if ( result != 0 ) { 2154 if ( result != 0 ) {
2160 setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); 2155 setCaption ( i18n( "Writing back file result: " )+QString::number( result ) );
2161 return; 2156 return;
2162 } else { 2157 } else {
2163 setCaption ( i18n( "Syncronization sucessfully completed" ) ); 2158 setCaption ( i18n( "Syncronization sucessfully completed" ) );
2164 } 2159 }
2165 } 2160 }
2166 } 2161 }
2167 return; 2162 return;
2168} 2163}
2169void MainWindow::syncSSH()
2170{
2171 // not used anymore
2172 QTime timer;
2173 timer.start();
2174 //qDebug("MainWindow::syncssh() ");
2175 KOPrefs *p = KOPrefs::instance();
2176 QString localFile = p->mLocalTempFile;
2177 QString remoteIP = p->mRemoteIP;
2178 QString remoteUser = p->mRemoteUser;
2179 QString remoteFile = p->mRemoteFile;
2180 if ( p->mUsePassWd && p->mRemotePassWd.length() > 0 )
2181 remoteUser += ":" + p->mRemotePassWd;
2182
2183 QString question = i18n("Do you really want\nto remote sync?\n \n") +
2184 i18n("IP: " ) +remoteIP +"\n" +
2185 i18n("User: " ) + remoteUser +"\n" ;
2186 int maxlen = 30;
2187 if ( QApplication::desktop()->width() > 320 )
2188 maxlen += 25;
2189 if ( remoteFile.length() > maxlen )
2190 question += i18n("Remote file:\n..." ) + remoteFile.right(maxlen) +"\n";
2191 else
2192 question += i18n("Remote file:\n " ) + remoteFile +"\n";
2193 if ( localFile.length() > maxlen )
2194 question += i18n("Local temp file:\n..." ) + localFile.right(maxlen) +"\n";
2195 else
2196 question += i18n("Local temp file:\n " ) + localFile +"\n";
2197
2198 if ( QMessageBox::information( this, i18n("KO/Pi Sync"),
2199 question,
2200 i18n("Yes"), i18n("No"),
2201 0, 0 ) != 0 )
2202 return;
2203 // if ( !p->mUsePassWd ) {
2204 // QString pass = getPassword();
2205 // if ( pass.length() > 0 )
2206 // remoteUser += ":" + pass;
2207 // }
2208 QString command = "scp " + remoteUser + "@" + remoteIP +":" + remoteFile +" " +localFile;
2209 setCaption ( i18n( "Copy remote file to local machine..." ) );
2210 int fileSize = 0;
2211 int result = system ( command );
2212 // 0 : okay
2213 // 256: no such file or dir
2214 //
2215 qDebug("KO: Remote copy result(0 = okay): %d ",result );
2216 if ( result != 0 ) {
2217 int len = maxlen;
2218 while ( len < command.length() ) {
2219 command.insert( len , "\n" );
2220 len += maxlen +2;
2221 }
2222 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) ;
2223 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"),
2224 question,
2225 i18n("Okay!")) ;
2226 setCaption ("KO/Pi");
2227 return;
2228 }
2229
2230
2231 setCaption ( i18n( "Copying succeed." ) );
2232 //mView->setSyncDevice("ssh-scp" );
2233 if ( syncWithFile(localFile , true ) ) {
2234// Event* e = mView->getLastSyncEvent();
2235// e->setReadOnly( false );
2236// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
2237// e->setReadOnly( true );
2238 if ( KOPrefs::instance()->mWriteBackFile ) {
2239 command = "scp " + localFile +" " +remoteUser + "@" + remoteIP +":" + remoteFile ;
2240 setCaption ( i18n( "Writing back file ..." ) );
2241 result = system ( command );
2242 if ( result != 0 ) {
2243 int len = maxlen;
2244 while ( len < command.length() ) {
2245 command.insert( len , "\n" );
2246 len += maxlen +2;
2247 }
2248 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) ;
2249 QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"),
2250 question,
2251 i18n("Okay!")) ;
2252 setCaption ("KO/Pi");
2253 return;
2254 } else {
2255 setCaption ( i18n( "Syncronization sucessfully completed" ) );
2256 }
2257 }
2258 }
2259 return;
2260#if 0
2261 system ("scp zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics /home/polo/Applications/korganizer/z_sync.ics");
2262 while ( timer.elapsed() < 5000 )
2263 qApp->processEvents();
2264
2265 qDebug("MainWindow::merging) ");
2266 mView->syncCalendar( "/home/polo/Applications/korganizer/z_sync.ics", 0 );
2267 while ( mBlockSaveFlag )
2268 qApp->processEvents();
2269 save();
2270 system ("scp /home/polo/Applications/korganizer/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/Applications/korganizer/mycalendar.ics");
2271#endif
2272
2273}
2274
2275 2164
2276void MainWindow::syncSharp() 2165void MainWindow::syncSharp()
2277{ 2166{
2278 if ( mCalendarModifiedFlag ) 2167 if ( mCalendarModifiedFlag )
2279 save(); 2168 save();
2280 mView->syncSharp(); 2169 mView->syncSharp();
2281 slotModifiedChanged( true ); 2170 slotModifiedChanged( true );
2282 2171
2283} 2172}
2284void MainWindow::syncPhone() 2173void MainWindow::syncPhone()
2285{ 2174{
2286 if ( mCalendarModifiedFlag ) 2175 if ( mCalendarModifiedFlag )
2287 save(); 2176 save();
2288 mView->syncPhone(); 2177 mView->syncPhone();
2289 slotModifiedChanged( true ); 2178 slotModifiedChanged( true );
2290 2179
2291} 2180}
2292 2181
2293void MainWindow::printSel( ) 2182void MainWindow::printSel( )
2294{ 2183{
2295 mView->viewManager()->agendaView()->agenda()->printSelection(); 2184 mView->viewManager()->agendaView()->agenda()->printSelection();
2296} 2185}
2297 2186
2298void MainWindow::printCal() 2187void MainWindow::printCal()
2299{ 2188{
2300 mView->print();//mCp->showDialog(); 2189 mView->print();//mCp->showDialog();
2301} 2190}
2302 2191
2303 2192
2304 2193
2305KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ) 2194KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name )
2306{ 2195{
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index 4da371e..ba627b9 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -116,95 +116,93 @@ class MainWindow : public QMainWindow
116 void licence(); 116 void licence();
117 void faq(); 117 void faq();
118 void usertrans(); 118 void usertrans();
119 void features(); 119 void features();
120 void synchowto(); 120 void synchowto();
121 void whatsNew(); 121 void whatsNew();
122 void keyBindings(); 122 void keyBindings();
123 void aboutAutoSaving();; 123 void aboutAutoSaving();;
124 void aboutKnownBugs(); 124 void aboutKnownBugs();
125 125
126 void processIncidenceSelection( Incidence * ); 126 void processIncidenceSelection( Incidence * );
127 127
128 void importQtopia(); 128 void importQtopia();
129 void importBday(); 129 void importBday();
130 void importOL(); 130 void importOL();
131 void importIcal(); 131 void importIcal();
132 void importFile( QString, bool ); 132 void importFile( QString, bool );
133 void quickImportIcal(); 133 void quickImportIcal();
134 134
135 void slotModifiedChanged( bool ); 135 void slotModifiedChanged( bool );
136 136
137 void save(); 137 void save();
138 void configureToolBar( int ); 138 void configureToolBar( int );
139 void printSel(); 139 void printSel();
140 void printCal(); 140 void printCal();
141 void saveCalendar(); 141 void saveCalendar();
142 void loadCalendar(); 142 void loadCalendar();
143 void exportVCalendar(); 143 void exportVCalendar();
144 void fillFilterMenu(); 144 void fillFilterMenu();
145 void selectFilter( int ); 145 void selectFilter( int );
146 146
147 void slotSyncMenu( int ); 147 void slotSyncMenu( int );
148 void syncSSH();
149 void confSync(); 148 void confSync();
150 void syncSharp(); 149 void syncSharp();
151 void syncPhone(); 150 void syncPhone();
152 void syncPi(); 151 void syncPi();
153 void syncLocalFile(); 152 void syncLocalFile();
154 bool syncWithFile( QString, bool ); 153 bool syncWithFile( QString, bool );
155 void quickSyncLocalFile(); 154 void quickSyncLocalFile();
156 155
157 156
158 protected: 157 protected:
159 void displayText( QString, QString); 158 void displayText( QString, QString);
160 void displayFile( QString, QString); 159 void displayFile( QString, QString);
161 160
162 void enableIncidenceActions( bool ); 161 void enableIncidenceActions( bool );
163 162
164 private slots: 163 private slots:
165 QSocket* piSocket; 164 QSocket* piSocket;
166 QString piFileString; 165 QString piFileString;
167 QTime piTime; 166 QTime piTime;
168 void deleteCommandSocket(KCommandSocket* s, int state ); 167 void deleteCommandSocket(KCommandSocket* s, int state );
169 void fillSyncMenu(); 168 void fillSyncMenu();
170 void getFile( bool ); 169 void getFile( bool );
171 void readFileFromSocket(); 170 void readFileFromSocket();
172 private: 171 private:
173 //QTimer* mTimerCommandSocket; 172 //QTimer* mTimerCommandSocket;
174 QString mPassWordPiSync; 173 QString mPassWordPiSync;
175 KServerSocket * mServerSocket; 174 KServerSocket * mServerSocket;
176 bool mClosed; 175 bool mClosed;
177 void saveOnClose(); 176 void saveOnClose();
178 int mCurrentSyncProfile; 177 int mCurrentSyncProfile;
179 void enableQuick(); 178 void enableQuick();
180 void performQuickQuick();
181 void syncRemote( KSyncProfile* , bool ask = true); 179 void syncRemote( KSyncProfile* , bool ask = true);
182 bool mFlagKeyPressed; 180 bool mFlagKeyPressed;
183 bool mBlockAtStartup; 181 bool mBlockAtStartup;
184 QPEToolBar *iconToolBar; 182 QPEToolBar *iconToolBar;
185 void initActions(); 183 void initActions();
186 void setDefaultPreferences(); 184 void setDefaultPreferences();
187 void keyPressEvent ( QKeyEvent * ) ; 185 void keyPressEvent ( QKeyEvent * ) ;
188 void keyReleaseEvent ( QKeyEvent * ) ; 186 void keyReleaseEvent ( QKeyEvent * ) ;
189 QPopupMenu *configureToolBarMenu; 187 QPopupMenu *configureToolBarMenu;
190 QPopupMenu *selectFilterMenu; 188 QPopupMenu *selectFilterMenu;
191 QPopupMenu *configureAgendaMenu, *syncMenu; 189 QPopupMenu *configureAgendaMenu, *syncMenu;
192 CalendarLocal *mCalendar; 190 CalendarLocal *mCalendar;
193 CalendarView *mView; 191 CalendarView *mView;
194 QString getPassword(); 192 QString getPassword();
195 QAction *mNewSubTodoAction; 193 QAction *mNewSubTodoAction;
196 194
197 QAction *mShowAction; 195 QAction *mShowAction;
198 QAction *mEditAction; 196 QAction *mEditAction;
199 QAction *mDeleteAction; 197 QAction *mDeleteAction;
200 void closeEvent( QCloseEvent* ce ); 198 void closeEvent( QCloseEvent* ce );
201 SimpleAlarmClient mAlarmClient; 199 SimpleAlarmClient mAlarmClient;
202 QTimer mSaveTimer; 200 QTimer mSaveTimer;
203 bool mBlockSaveFlag; 201 bool mBlockSaveFlag;
204 bool mCalendarModifiedFlag; 202 bool mCalendarModifiedFlag;
205 QPixmap loadPixmap( QString ); 203 QPixmap loadPixmap( QString );
206 QDialog * mSyncActionDialog; 204 QDialog * mSyncActionDialog;
207}; 205};
208 206
209 207
210#endif 208#endif