-rw-r--r-- | korganizer/calendarview.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 79fb727..2ba8528 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -2502,96 +2502,97 @@ bool CalendarView::checkFileVersion(QString fn) | |||
2502 | QDateTime dt = finf.lastModified (); | 2502 | QDateTime dt = finf.lastModified (); |
2503 | //qDebug("loaded file version %s %s", fn.latin1(), loadedFileVersion.toString().latin1()); | 2503 | //qDebug("loaded file version %s %s", fn.latin1(), loadedFileVersion.toString().latin1()); |
2504 | //qDebug("file on disk version %s %s", fn.latin1(),dt.toString().latin1()); | 2504 | //qDebug("file on disk version %s %s", fn.latin1(),dt.toString().latin1()); |
2505 | if ( dt <= loadedFileVersion ) | 2505 | if ( dt <= loadedFileVersion ) |
2506 | return true; | 2506 | return true; |
2507 | int km = KMessageBox::warningYesNoCancel(this, i18n("\nThe file\n%1\non disk has changed!\nFile size: %2 bytes.\nLast modified: %3\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n").arg(KGlobal::formatMessage(fn,0)).arg( QString::number( finf.size())).arg( KGlobal::locale()->formatDateTime(finf.lastModified (), true, true)) , | 2507 | int km = KMessageBox::warningYesNoCancel(this, i18n("\nThe file\n%1\non disk has changed!\nFile size: %2 bytes.\nLast modified: %3\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n").arg(KGlobal::formatMessage(fn,0)).arg( QString::number( finf.size())).arg( KGlobal::locale()->formatDateTime(finf.lastModified (), true, true)) , |
2508 | i18n("KO/Pi Warning"),i18n("Overwrite"), | 2508 | i18n("KO/Pi Warning"),i18n("Overwrite"), |
2509 | i18n("Sync+save")); | 2509 | i18n("Sync+save")); |
2510 | 2510 | ||
2511 | if ( km == KMessageBox::Cancel ) | 2511 | if ( km == KMessageBox::Cancel ) |
2512 | return false; | 2512 | return false; |
2513 | if ( km == KMessageBox::Yes ) | 2513 | if ( km == KMessageBox::Yes ) |
2514 | return true; | 2514 | return true; |
2515 | 2515 | ||
2516 | setSyncDevice("deleteaftersync" ); | 2516 | setSyncDevice("deleteaftersync" ); |
2517 | mSyncManager->mAskForPreferences = true; | 2517 | mSyncManager->mAskForPreferences = true; |
2518 | mSyncManager->mSyncAlgoPrefs = 3; | 2518 | mSyncManager->mSyncAlgoPrefs = 3; |
2519 | mSyncManager->mWriteBackFile = false; | 2519 | mSyncManager->mWriteBackFile = false; |
2520 | mSyncManager->mWriteBackExistingOnly = false; | 2520 | mSyncManager->mWriteBackExistingOnly = false; |
2521 | mSyncManager->mShowSyncSummary = false; | 2521 | mSyncManager->mShowSyncSummary = false; |
2522 | syncCalendar( fn, 3 ); | 2522 | syncCalendar( fn, 3 ); |
2523 | Event * e = getLastSyncEvent(); | 2523 | Event * e = getLastSyncEvent(); |
2524 | if ( e ) | 2524 | if ( e ) |
2525 | mCalendar->deleteEvent( e ); | 2525 | mCalendar->deleteEvent( e ); |
2526 | return true; | 2526 | return true; |
2527 | } | 2527 | } |
2528 | bool CalendarView::saveCalendars() | 2528 | bool CalendarView::saveCalendars() |
2529 | { | 2529 | { |
2530 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | 2530 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; |
2531 | KopiCalendarFile * cal = calendars.first(); | 2531 | KopiCalendarFile * cal = calendars.first(); |
2532 | mCalendar->setDefaultCalendar( 1 ); | 2532 | mCalendar->setDefaultCalendar( 1 ); |
2533 | mCalendar->setDefaultCalendarEnabledOnly(); | 2533 | mCalendar->setDefaultCalendarEnabledOnly(); |
2534 | QString saveError; | 2534 | QString saveError; |
2535 | if ( !saveCalendar( MainWindow::defaultFileName() ) ) | 2535 | if ( !saveCalendar( MainWindow::defaultFileName() ) ) |
2536 | saveError = cal->mName +"\n"; | 2536 | saveError = cal->mName +"\n"; |
2537 | cal = calendars.next(); | 2537 | cal = calendars.next(); |
2538 | while ( cal ) { | 2538 | while ( cal ) { |
2539 | if ( !cal->isReadOnly && !cal->mErrorOnLoad ) { | 2539 | if ( !cal->isReadOnly && !cal->mErrorOnLoad ) { |
2540 | mCalendar->setDefaultCalendar( cal->mCalNumber ); | 2540 | mCalendar->setDefaultCalendar( cal->mCalNumber ); |
2541 | mCalendar->setDefaultCalendarEnabledOnly(); | 2541 | mCalendar->setDefaultCalendarEnabledOnly(); |
2542 | if ( saveCalendar( cal->mFileName ) ) | 2542 | if ( saveCalendar( cal->mFileName ) ) |
2543 | cal->mLoadDt = QDateTime::currentDateTime(); | 2543 | cal->mLoadDt = QDateTime::currentDateTime(); |
2544 | else | 2544 | else |
2545 | saveError += cal->mName + "\n"; | 2545 | saveError += cal->mName + "\n"; |
2546 | } | 2546 | } |
2547 | cal = calendars.next(); | 2547 | cal = calendars.next(); |
2548 | } | 2548 | } |
2549 | restoreCalendarSettings(); | 2549 | restoreCalendarSettings(); |
2550 | //saveError = "test error"; | ||
2550 | if ( !saveError.isEmpty() ) { | 2551 | if ( !saveError.isEmpty() ) { |
2551 | saveError = KGlobal::formatMessage( i18n("Calendar(s) not saved:"),0 )+"\n" + saveError; | 2552 | saveError = KGlobal::formatMessage( i18n("Calendar(s) not saved:"),0 )+"\n" + saveError; |
2552 | KMessageBox::error(this, saveError, i18n("Error saving data")); | 2553 | KMessageBox::error(this, saveError, i18n("Error saving data")); |
2553 | return false; | 2554 | return false; |
2554 | } | 2555 | } |
2555 | return true; | 2556 | return true; |
2556 | } | 2557 | } |
2557 | bool CalendarView::saveCalendar( QString filename ) | 2558 | bool CalendarView::saveCalendar( QString filename ) |
2558 | { | 2559 | { |
2559 | 2560 | ||
2560 | // Store back all unsaved data into calendar object | 2561 | // Store back all unsaved data into calendar object |
2561 | // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() ); | 2562 | // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() ); |
2562 | if ( mViewManager->currentView() ) | 2563 | if ( mViewManager->currentView() ) |
2563 | mViewManager->currentView()->flushView(); | 2564 | mViewManager->currentView()->flushView(); |
2564 | 2565 | ||
2565 | 2566 | ||
2566 | QDateTime lfv = QDateTime::currentDateTime().addSecs( -2); | 2567 | QDateTime lfv = QDateTime::currentDateTime().addSecs( -2); |
2567 | mStorage->setSaveFormat( new ICalFormat() ); | 2568 | mStorage->setSaveFormat( new ICalFormat() ); |
2568 | mStorage->setFileName( filename ); | 2569 | mStorage->setFileName( filename ); |
2569 | bool success; | 2570 | bool success; |
2570 | success = mStorage->save(); | 2571 | success = mStorage->save(); |
2571 | if ( !success ) { | 2572 | if ( !success ) { |
2572 | return false; | 2573 | return false; |
2573 | } | 2574 | } |
2574 | if ( filename == MainWindow::defaultFileName() ) { | 2575 | if ( filename == MainWindow::defaultFileName() ) { |
2575 | setLoadedFileVersion( lfv ); | 2576 | setLoadedFileVersion( lfv ); |
2576 | watchSavedFile(); | 2577 | watchSavedFile(); |
2577 | } | 2578 | } |
2578 | return true; | 2579 | return true; |
2579 | } | 2580 | } |
2580 | 2581 | ||
2581 | void CalendarView::closeCalendar() | 2582 | void CalendarView::closeCalendar() |
2582 | { | 2583 | { |
2583 | 2584 | ||
2584 | // child windows no longer valid | 2585 | // child windows no longer valid |
2585 | clearAllViews(); | 2586 | clearAllViews(); |
2586 | emit closingDown(); | 2587 | emit closingDown(); |
2587 | 2588 | ||
2588 | mCalendar->close(); | 2589 | mCalendar->close(); |
2589 | setModified(false); | 2590 | setModified(false); |
2590 | updateView(); | 2591 | updateView(); |
2591 | } | 2592 | } |
2592 | 2593 | ||
2593 | void CalendarView::archiveCalendar() | 2594 | void CalendarView::archiveCalendar() |
2594 | { | 2595 | { |
2595 | mDialogManager->showArchiveDialog(); | 2596 | mDialogManager->showArchiveDialog(); |
2596 | } | 2597 | } |
2597 | 2598 | ||
@@ -4418,106 +4419,108 @@ void CalendarView::setReadOnly(bool readOnly) | |||
4418 | 4419 | ||
4419 | bool CalendarView::isModified() | 4420 | bool CalendarView::isModified() |
4420 | { | 4421 | { |
4421 | return mModified; | 4422 | return mModified; |
4422 | } | 4423 | } |
4423 | void CalendarView::slotprintSelInc() | 4424 | void CalendarView::slotprintSelInc() |
4424 | { | 4425 | { |
4425 | if ( currentSelection() == 0 ) { | 4426 | if ( currentSelection() == 0 ) { |
4426 | KMessageBox::sorry(this,i18n("There is nothing selected!")); | 4427 | KMessageBox::sorry(this,i18n("There is nothing selected!")); |
4427 | return; | 4428 | return; |
4428 | } | 4429 | } |
4429 | showIncidence(); | 4430 | showIncidence(); |
4430 | getEventViewerDialog()->print(); | 4431 | getEventViewerDialog()->print(); |
4431 | 4432 | ||
4432 | } | 4433 | } |
4433 | void CalendarView::printSetup() | 4434 | void CalendarView::printSetup() |
4434 | { | 4435 | { |
4435 | #ifndef KORG_NOPRINTER | 4436 | #ifndef KORG_NOPRINTER |
4436 | createPrinter(); | 4437 | createPrinter(); |
4437 | 4438 | ||
4438 | mCalPrinter->setupPrinter(); | 4439 | mCalPrinter->setupPrinter(); |
4439 | #endif | 4440 | #endif |
4440 | } | 4441 | } |
4441 | 4442 | ||
4442 | void CalendarView::print() | 4443 | void CalendarView::print() |
4443 | { | 4444 | { |
4444 | #ifndef KORG_NOPRINTER | 4445 | #ifndef KORG_NOPRINTER |
4445 | createPrinter(); | 4446 | createPrinter(); |
4446 | 4447 | ||
4447 | DateList tmpDateList = mNavigator->selectedDates(); | 4448 | DateList tmpDateList = mNavigator->selectedDates(); |
4448 | mCalPrinter->print(CalPrinter::Month, | 4449 | mCalPrinter->print(CalPrinter::Month, |
4449 | tmpDateList.first(), tmpDateList.last()); | 4450 | tmpDateList.first(), tmpDateList.last()); |
4450 | #endif | 4451 | #endif |
4451 | } | 4452 | } |
4452 | 4453 | ||
4453 | void CalendarView::printPreview() | 4454 | void CalendarView::printPreview() |
4454 | { | 4455 | { |
4455 | #ifndef KORG_NOPRINTER | 4456 | #ifndef KORG_NOPRINTER |
4456 | kdDebug() << "CalendarView::printPreview()" << endl; | 4457 | kdDebug() << "CalendarView::printPreview()" << endl; |
4457 | 4458 | ||
4458 | createPrinter(); | 4459 | createPrinter(); |
4459 | 4460 | ||
4460 | DateList tmpDateList = mNavigator->selectedDates(); | 4461 | DateList tmpDateList = mNavigator->selectedDates(); |
4461 | 4462 | ||
4462 | mViewManager->currentView()->printPreview(mCalPrinter,tmpDateList.first(), | 4463 | mViewManager->currentView()->printPreview(mCalPrinter,tmpDateList.first(), |
4463 | tmpDateList.last()); | 4464 | tmpDateList.last()); |
4464 | #endif | 4465 | #endif |
4465 | } | 4466 | } |
4466 | 4467 | bool CalendarView::exportICalendar( QString filename ) | |
4467 | void CalendarView::exportICalendar() | ||
4468 | { | 4468 | { |
4469 | QString filename = KFileDialog::getSaveFileName("icalout.ics",i18n("*.ics|ICalendars"),this); | ||
4470 | |||
4471 | // Force correct extension | 4469 | // Force correct extension |
4472 | if (filename.right(4) != ".ics") filename += ".ics"; | 4470 | if (filename.right(4) != ".ics") filename += ".ics"; |
4473 | 4471 | ||
4474 | FileStorage storage( mCalendar, filename, new ICalFormat() ); | 4472 | FileStorage storage( mCalendar, filename, new ICalFormat() ); |
4475 | storage.save(); | 4473 | return storage.save(); |
4474 | } | ||
4475 | |||
4476 | bool CalendarView::exportICalendar() | ||
4477 | { | ||
4478 | return exportICalendar( KFileDialog::getSaveFileName("icalout.ics",i18n("*.ics|ICalendars"),this) ); | ||
4476 | } | 4479 | } |
4477 | 4480 | ||
4478 | bool CalendarView::exportVCalendar( QString filename ) | 4481 | bool CalendarView::exportVCalendar( QString filename ) |
4479 | { | 4482 | { |
4480 | if (mCalendar->journals().count() > 0) { | 4483 | if (mCalendar->journals().count() > 0) { |
4481 | int result = KMessageBox::warningContinueCancel(this, | 4484 | int result = KMessageBox::warningContinueCancel(this, |
4482 | i18n("The journal entries can not be\nexported to a vCalendar file."), | 4485 | i18n("The journal entries can not be\nexported to a vCalendar file."), |
4483 | i18n("Data Loss Warning"),i18n("Proceed"),i18n("Cancel"), | 4486 | i18n("Data Loss Warning"),i18n("Proceed"),i18n("Cancel"), |
4484 | true); | 4487 | true); |
4485 | if (result != KMessageBox::Continue) return false; | 4488 | if (result != KMessageBox::Continue) return false; |
4486 | } | 4489 | } |
4487 | 4490 | ||
4488 | //QString filename = KFileDialog::getSaveFileName("vcalout.vcs",i18n("*.vcs|VCalendars"),this); | 4491 | //QString filename = KFileDialog::getSaveFileName("vcalout.vcs",i18n("*.vcs|VCalendars"),this); |
4489 | 4492 | ||
4490 | // Force correct extension | 4493 | // Force correct extension |
4491 | if (filename.right(4) != ".vcs") filename += ".vcs"; | 4494 | if (filename.right(4) != ".vcs") filename += ".vcs"; |
4492 | 4495 | ||
4493 | FileStorage storage( mCalendar, filename, new VCalFormat ); | 4496 | FileStorage storage( mCalendar, filename, new VCalFormat ); |
4494 | return storage.save(); | 4497 | return storage.save(); |
4495 | 4498 | ||
4496 | } | 4499 | } |
4497 | 4500 | ||
4498 | void CalendarView::eventUpdated(Incidence *) | 4501 | void CalendarView::eventUpdated(Incidence *) |
4499 | { | 4502 | { |
4500 | setModified(); | 4503 | setModified(); |
4501 | // Don't call updateView here. The code, which has caused the update of the | 4504 | // Don't call updateView here. The code, which has caused the update of the |
4502 | // event is responsible for updating the view. | 4505 | // event is responsible for updating the view. |
4503 | // updateView(); | 4506 | // updateView(); |
4504 | } | 4507 | } |
4505 | 4508 | ||
4506 | void CalendarView::adaptNavigationUnits() | 4509 | void CalendarView::adaptNavigationUnits() |
4507 | { | 4510 | { |
4508 | if (mViewManager->currentView()->isEventView()) { | 4511 | if (mViewManager->currentView()->isEventView()) { |
4509 | int days = mViewManager->currentView()->currentDateCount(); | 4512 | int days = mViewManager->currentView()->currentDateCount(); |
4510 | if (days == 1) { | 4513 | if (days == 1) { |
4511 | emit changeNavStringPrev(i18n("&Previous Day")); | 4514 | emit changeNavStringPrev(i18n("&Previous Day")); |
4512 | emit changeNavStringNext(i18n("&Next Day")); | 4515 | emit changeNavStringNext(i18n("&Next Day")); |
4513 | } else { | 4516 | } else { |
4514 | emit changeNavStringPrev(i18n("&Previous Week")); | 4517 | emit changeNavStringPrev(i18n("&Previous Week")); |
4515 | emit changeNavStringNext(i18n("&Next Week")); | 4518 | emit changeNavStringNext(i18n("&Next Week")); |
4516 | } | 4519 | } |
4517 | } | 4520 | } |
4518 | } | 4521 | } |
4519 | 4522 | ||
4520 | void CalendarView::processMainViewSelection( Incidence *incidence ) | 4523 | void CalendarView::processMainViewSelection( Incidence *incidence ) |
4521 | { | 4524 | { |
4522 | if ( incidence ) mTodoList->clearSelection(); | 4525 | if ( incidence ) mTodoList->clearSelection(); |
4523 | processIncidenceSelection( incidence ); | 4526 | processIncidenceSelection( incidence ); |