author | zautrix <zautrix> | 2004-08-02 00:09:04 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-08-02 00:09:04 (UTC) |
commit | 3ebd85e83e6f9d4ac59ce1828548f7236e2b1af0 (patch) (unidiff) | |
tree | fdff56329649c084b6f5af8d8e96c0157686575e /korganizer | |
parent | 3b4aa1cd78395c0f94b99decd901842944765746 (diff) | |
download | kdepimpi-3ebd85e83e6f9d4ac59ce1828548f7236e2b1af0.zip kdepimpi-3ebd85e83e6f9d4ac59ce1828548f7236e2b1af0.tar.gz kdepimpi-3ebd85e83e6f9d4ac59ce1828548f7236e2b1af0.tar.bz2 |
More sync hacking
-rw-r--r-- | korganizer/calendarview.cpp | 76 | ||||
-rw-r--r-- | korganizer/calendarview.h | 5 | ||||
-rw-r--r-- | korganizer/koprefs.cpp | 27 | ||||
-rw-r--r-- | korganizer/koprefs.h | 1 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 3 |
5 files changed, 72 insertions, 40 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index cfc6b10..9160e1d 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -469,1725 +469,1751 @@ CalendarView::~CalendarView() | |||
469 | //qDebug("CalendarView::~CalendarView() "); | 469 | //qDebug("CalendarView::~CalendarView() "); |
470 | delete mDialogManager; | 470 | delete mDialogManager; |
471 | delete mViewManager; | 471 | delete mViewManager; |
472 | delete mStorage; | 472 | delete mStorage; |
473 | delete mDateFrame ; | 473 | delete mDateFrame ; |
474 | delete beamDialog; | 474 | delete beamDialog; |
475 | //kdDebug() << "~CalendarView() done" << endl; | 475 | //kdDebug() << "~CalendarView() done" << endl; |
476 | } | 476 | } |
477 | void CalendarView::timerAlarm() | 477 | void CalendarView::timerAlarm() |
478 | { | 478 | { |
479 | //qDebug("CalendarView::timerAlarm() "); | 479 | //qDebug("CalendarView::timerAlarm() "); |
480 | computeAlarm(mAlarmNotification ); | 480 | computeAlarm(mAlarmNotification ); |
481 | } | 481 | } |
482 | 482 | ||
483 | void CalendarView::suspendAlarm() | 483 | void CalendarView::suspendAlarm() |
484 | { | 484 | { |
485 | //qDebug(" CalendarView::suspendAlarm() "); | 485 | //qDebug(" CalendarView::suspendAlarm() "); |
486 | computeAlarm(mSuspendAlarmNotification ); | 486 | computeAlarm(mSuspendAlarmNotification ); |
487 | 487 | ||
488 | } | 488 | } |
489 | 489 | ||
490 | void CalendarView::startAlarm( QString mess , QString filename) | 490 | void CalendarView::startAlarm( QString mess , QString filename) |
491 | { | 491 | { |
492 | mAlarmDialog->eventNotification( mess, KOPrefs::instance()->mAlarmPlayBeeps, filename, true,KOPrefs::instance()->mAlarmBeepInterval ,KOPrefs::instance()->mAlarmSuspendCount ); | 492 | mAlarmDialog->eventNotification( mess, KOPrefs::instance()->mAlarmPlayBeeps, filename, true,KOPrefs::instance()->mAlarmBeepInterval ,KOPrefs::instance()->mAlarmSuspendCount ); |
493 | QTimer::singleShot( 3000, this, SLOT( checkNextTimerAlarm() ) ); | 493 | QTimer::singleShot( 3000, this, SLOT( checkNextTimerAlarm() ) ); |
494 | 494 | ||
495 | } | 495 | } |
496 | 496 | ||
497 | void CalendarView::checkNextTimerAlarm() | 497 | void CalendarView::checkNextTimerAlarm() |
498 | { | 498 | { |
499 | mCalendar->checkAlarmForIncidence( 0, true ); | 499 | mCalendar->checkAlarmForIncidence( 0, true ); |
500 | } | 500 | } |
501 | 501 | ||
502 | void CalendarView::computeAlarm( QString msg ) | 502 | void CalendarView::computeAlarm( QString msg ) |
503 | { | 503 | { |
504 | 504 | ||
505 | QString mess = msg; | 505 | QString mess = msg; |
506 | QString mAlarmMessage = mess.mid( 9 ); | 506 | QString mAlarmMessage = mess.mid( 9 ); |
507 | QString filename = MainWindow::resourcePath(); | 507 | QString filename = MainWindow::resourcePath(); |
508 | filename += "koalarm.wav"; | 508 | filename += "koalarm.wav"; |
509 | QString tempfilename; | 509 | QString tempfilename; |
510 | if ( mess.left( 13 ) == "suspend_alarm") { | 510 | if ( mess.left( 13 ) == "suspend_alarm") { |
511 | bool error = false; | 511 | bool error = false; |
512 | int len = mess.mid( 13 ).find("+++"); | 512 | int len = mess.mid( 13 ).find("+++"); |
513 | if ( len < 2 ) | 513 | if ( len < 2 ) |
514 | error = true; | 514 | error = true; |
515 | else { | 515 | else { |
516 | tempfilename = mess.mid( 13, len ); | 516 | tempfilename = mess.mid( 13, len ); |
517 | if ( !QFile::exists( tempfilename ) ) | 517 | if ( !QFile::exists( tempfilename ) ) |
518 | error = true; | 518 | error = true; |
519 | } | 519 | } |
520 | if ( ! error ) { | 520 | if ( ! error ) { |
521 | filename = tempfilename; | 521 | filename = tempfilename; |
522 | } | 522 | } |
523 | mAlarmMessage = mess.mid( 13+len+3 ); | 523 | mAlarmMessage = mess.mid( 13+len+3 ); |
524 | //qDebug("suspend file %s ",tempfilename.latin1() ); | 524 | //qDebug("suspend file %s ",tempfilename.latin1() ); |
525 | startAlarm( mAlarmMessage, filename); | 525 | startAlarm( mAlarmMessage, filename); |
526 | return; | 526 | return; |
527 | } | 527 | } |
528 | if ( mess.left( 11 ) == "timer_alarm") { | 528 | if ( mess.left( 11 ) == "timer_alarm") { |
529 | //mTimerTime = 0; | 529 | //mTimerTime = 0; |
530 | startAlarm( mess.mid( 11 ), filename ); | 530 | startAlarm( mess.mid( 11 ), filename ); |
531 | return; | 531 | return; |
532 | } | 532 | } |
533 | if ( mess.left( 10 ) == "proc_alarm") { | 533 | if ( mess.left( 10 ) == "proc_alarm") { |
534 | bool error = false; | 534 | bool error = false; |
535 | int len = mess.mid( 10 ).find("+++"); | 535 | int len = mess.mid( 10 ).find("+++"); |
536 | if ( len < 2 ) | 536 | if ( len < 2 ) |
537 | error = true; | 537 | error = true; |
538 | else { | 538 | else { |
539 | tempfilename = mess.mid( 10, len ); | 539 | tempfilename = mess.mid( 10, len ); |
540 | if ( !QFile::exists( tempfilename ) ) | 540 | if ( !QFile::exists( tempfilename ) ) |
541 | error = true; | 541 | error = true; |
542 | } | 542 | } |
543 | if ( error ) { | 543 | if ( error ) { |
544 | mAlarmMessage = "Procedure Alarm\nError - File not found\n"; | 544 | mAlarmMessage = "Procedure Alarm\nError - File not found\n"; |
545 | mAlarmMessage += mess.mid( 10+len+3+9 ); | 545 | mAlarmMessage += mess.mid( 10+len+3+9 ); |
546 | } else { | 546 | } else { |
547 | //QCopEnvelope e("QPE/Application/kopi", "-writeFileSilent"); | 547 | //QCopEnvelope e("QPE/Application/kopi", "-writeFileSilent"); |
548 | //qDebug("-----system command %s ",tempfilename.latin1() ); | 548 | //qDebug("-----system command %s ",tempfilename.latin1() ); |
549 | #ifndef _WIN32_ | 549 | #ifndef _WIN32_ |
550 | if ( vfork () == 0 ) { | 550 | if ( vfork () == 0 ) { |
551 | execl ( tempfilename.latin1(), 0 ); | 551 | execl ( tempfilename.latin1(), 0 ); |
552 | return; | 552 | return; |
553 | } | 553 | } |
554 | #else | 554 | #else |
555 | QProcess* p = new QProcess(); | 555 | QProcess* p = new QProcess(); |
556 | p->addArgument( tempfilename.latin1() ); | 556 | p->addArgument( tempfilename.latin1() ); |
557 | p->start(); | 557 | p->start(); |
558 | return; | 558 | return; |
559 | #endif | 559 | #endif |
560 | 560 | ||
561 | return; | 561 | return; |
562 | } | 562 | } |
563 | 563 | ||
564 | //qDebug("+++++++system command %s ",tempfilename.latin1() ); | 564 | //qDebug("+++++++system command %s ",tempfilename.latin1() ); |
565 | } | 565 | } |
566 | if ( mess.left( 11 ) == "audio_alarm") { | 566 | if ( mess.left( 11 ) == "audio_alarm") { |
567 | bool error = false; | 567 | bool error = false; |
568 | int len = mess.mid( 11 ).find("+++"); | 568 | int len = mess.mid( 11 ).find("+++"); |
569 | if ( len < 2 ) | 569 | if ( len < 2 ) |
570 | error = true; | 570 | error = true; |
571 | else { | 571 | else { |
572 | tempfilename = mess.mid( 11, len ); | 572 | tempfilename = mess.mid( 11, len ); |
573 | if ( !QFile::exists( tempfilename ) ) | 573 | if ( !QFile::exists( tempfilename ) ) |
574 | error = true; | 574 | error = true; |
575 | } | 575 | } |
576 | if ( ! error ) { | 576 | if ( ! error ) { |
577 | filename = tempfilename; | 577 | filename = tempfilename; |
578 | } | 578 | } |
579 | mAlarmMessage = mess.mid( 11+len+3+9 ); | 579 | mAlarmMessage = mess.mid( 11+len+3+9 ); |
580 | //qDebug("audio file command %s ",tempfilename.latin1() ); | 580 | //qDebug("audio file command %s ",tempfilename.latin1() ); |
581 | } | 581 | } |
582 | if ( mess.left( 9 ) == "cal_alarm") { | 582 | if ( mess.left( 9 ) == "cal_alarm") { |
583 | mAlarmMessage = mess.mid( 9 ) ; | 583 | mAlarmMessage = mess.mid( 9 ) ; |
584 | } | 584 | } |
585 | 585 | ||
586 | startAlarm( mAlarmMessage, filename ); | 586 | startAlarm( mAlarmMessage, filename ); |
587 | 587 | ||
588 | 588 | ||
589 | } | 589 | } |
590 | 590 | ||
591 | void CalendarView::addSuspendAlarm(const QDateTime &qdt, const QString ¬i ) | 591 | void CalendarView::addSuspendAlarm(const QDateTime &qdt, const QString ¬i ) |
592 | { | 592 | { |
593 | //qDebug("+++++addSUSPENDAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); | 593 | //qDebug("+++++addSUSPENDAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); |
594 | 594 | ||
595 | mSuspendAlarmNotification = noti; | 595 | mSuspendAlarmNotification = noti; |
596 | int ms = QDateTime::currentDateTime().secsTo( qdt )*1000; | 596 | int ms = QDateTime::currentDateTime().secsTo( qdt )*1000; |
597 | //qDebug("Suspend Alarm timer started with secs: %d ", ms/1000); | 597 | //qDebug("Suspend Alarm timer started with secs: %d ", ms/1000); |
598 | mSuspendTimer->start( ms , true ); | 598 | mSuspendTimer->start( ms , true ); |
599 | 599 | ||
600 | } | 600 | } |
601 | 601 | ||
602 | void CalendarView::addAlarm(const QDateTime &qdt, const QString ¬i ) | 602 | void CalendarView::addAlarm(const QDateTime &qdt, const QString ¬i ) |
603 | { | 603 | { |
604 | //qDebug("+++++addAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); | 604 | //qDebug("+++++addAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); |
605 | if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) { | 605 | if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) { |
606 | #ifndef DESKTOP_VERSION | 606 | #ifndef DESKTOP_VERSION |
607 | AlarmServer::addAlarm ( qdt,"koalarm", noti.latin1() ); | 607 | AlarmServer::addAlarm ( qdt,"koalarm", noti.latin1() ); |
608 | #endif | 608 | #endif |
609 | return; | 609 | return; |
610 | } | 610 | } |
611 | int maxSec; | 611 | int maxSec; |
612 | //maxSec = 5; //testing only | 612 | //maxSec = 5; //testing only |
613 | maxSec = 86400+3600; // one day+1hour | 613 | maxSec = 86400+3600; // one day+1hour |
614 | mAlarmNotification = noti; | 614 | mAlarmNotification = noti; |
615 | int sec = QDateTime::currentDateTime().secsTo( qdt ); | 615 | int sec = QDateTime::currentDateTime().secsTo( qdt ); |
616 | if ( sec > maxSec ) { | 616 | if ( sec > maxSec ) { |
617 | mRecheckAlarmTimer->start( maxSec * 1000 ); | 617 | mRecheckAlarmTimer->start( maxSec * 1000 ); |
618 | // qDebug("recheck Alarm timer started with secs: %d next alarm in sec:%d", maxSec,sec ); | 618 | // qDebug("recheck Alarm timer started with secs: %d next alarm in sec:%d", maxSec,sec ); |
619 | return; | 619 | return; |
620 | } else { | 620 | } else { |
621 | mRecheckAlarmTimer->stop(); | 621 | mRecheckAlarmTimer->stop(); |
622 | } | 622 | } |
623 | //qDebug("Alarm timer started with secs: %d ", sec); | 623 | //qDebug("Alarm timer started with secs: %d ", sec); |
624 | mAlarmTimer->start( sec *1000 , true ); | 624 | mAlarmTimer->start( sec *1000 , true ); |
625 | 625 | ||
626 | } | 626 | } |
627 | // called by mRecheckAlarmTimer to get next alarm | 627 | // called by mRecheckAlarmTimer to get next alarm |
628 | // we need this, because a QTimer has only a max range of 25 days | 628 | // we need this, because a QTimer has only a max range of 25 days |
629 | void CalendarView::recheckTimerAlarm() | 629 | void CalendarView::recheckTimerAlarm() |
630 | { | 630 | { |
631 | mAlarmTimer->stop(); | 631 | mAlarmTimer->stop(); |
632 | mRecheckAlarmTimer->stop(); | 632 | mRecheckAlarmTimer->stop(); |
633 | mCalendar->checkAlarmForIncidence( 0, true ); | 633 | mCalendar->checkAlarmForIncidence( 0, true ); |
634 | } | 634 | } |
635 | void CalendarView::removeAlarm(const QDateTime &qdt, const QString ¬i ) | 635 | void CalendarView::removeAlarm(const QDateTime &qdt, const QString ¬i ) |
636 | { | 636 | { |
637 | //qDebug("-----removeAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); | 637 | //qDebug("-----removeAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); |
638 | if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) { | 638 | if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) { |
639 | #ifndef DESKTOP_VERSION | 639 | #ifndef DESKTOP_VERSION |
640 | AlarmServer::deleteAlarm (qdt ,"koalarm" ,noti.latin1() ); | 640 | AlarmServer::deleteAlarm (qdt ,"koalarm" ,noti.latin1() ); |
641 | #endif | 641 | #endif |
642 | return; | 642 | return; |
643 | } | 643 | } |
644 | mAlarmTimer->stop(); | 644 | mAlarmTimer->stop(); |
645 | } | 645 | } |
646 | void CalendarView::selectWeekNum ( int num ) | 646 | void CalendarView::selectWeekNum ( int num ) |
647 | { | 647 | { |
648 | dateNavigator()->selectWeek( num ); | 648 | dateNavigator()->selectWeek( num ); |
649 | mViewManager->showWeekView(); | 649 | mViewManager->showWeekView(); |
650 | } | 650 | } |
651 | KOViewManager *CalendarView::viewManager() | 651 | KOViewManager *CalendarView::viewManager() |
652 | { | 652 | { |
653 | return mViewManager; | 653 | return mViewManager; |
654 | } | 654 | } |
655 | 655 | ||
656 | KODialogManager *CalendarView::dialogManager() | 656 | KODialogManager *CalendarView::dialogManager() |
657 | { | 657 | { |
658 | return mDialogManager; | 658 | return mDialogManager; |
659 | } | 659 | } |
660 | 660 | ||
661 | QDate CalendarView::startDate() | 661 | QDate CalendarView::startDate() |
662 | { | 662 | { |
663 | DateList dates = mNavigator->selectedDates(); | 663 | DateList dates = mNavigator->selectedDates(); |
664 | 664 | ||
665 | return dates.first(); | 665 | return dates.first(); |
666 | } | 666 | } |
667 | 667 | ||
668 | QDate CalendarView::endDate() | 668 | QDate CalendarView::endDate() |
669 | { | 669 | { |
670 | DateList dates = mNavigator->selectedDates(); | 670 | DateList dates = mNavigator->selectedDates(); |
671 | 671 | ||
672 | return dates.last(); | 672 | return dates.last(); |
673 | } | 673 | } |
674 | 674 | ||
675 | 675 | ||
676 | void CalendarView::createPrinter() | 676 | void CalendarView::createPrinter() |
677 | { | 677 | { |
678 | #ifndef KORG_NOPRINTER | 678 | #ifndef KORG_NOPRINTER |
679 | if (!mCalPrinter) { | 679 | if (!mCalPrinter) { |
680 | mCalPrinter = new CalPrinter(this, mCalendar); | 680 | mCalPrinter = new CalPrinter(this, mCalendar); |
681 | connect(this, SIGNAL(configChanged()), mCalPrinter, SLOT(updateConfig())); | 681 | connect(this, SIGNAL(configChanged()), mCalPrinter, SLOT(updateConfig())); |
682 | } | 682 | } |
683 | #endif | 683 | #endif |
684 | } | 684 | } |
685 | 685 | ||
686 | void CalendarView::confSync() | 686 | void CalendarView::confSync() |
687 | { | 687 | { |
688 | static KSyncPrefsDialog* sp = 0; | 688 | static KSyncPrefsDialog* sp = 0; |
689 | if ( ! sp ) { | 689 | if ( ! sp ) { |
690 | sp = new KSyncPrefsDialog( this, "syncprefs", true ); | 690 | sp = new KSyncPrefsDialog( this, "syncprefs", true ); |
691 | } | 691 | } |
692 | sp->usrReadConfig(); | 692 | sp->usrReadConfig(); |
693 | #ifndef DESKTOP_VERSION | 693 | #ifndef DESKTOP_VERSION |
694 | sp->showMaximized(); | 694 | sp->showMaximized(); |
695 | #else | 695 | #else |
696 | sp->show(); | 696 | sp->show(); |
697 | #endif | 697 | #endif |
698 | sp->exec(); | 698 | sp->exec(); |
699 | KOPrefs::instance()->mSyncProfileNames = sp->getSyncProfileNames(); | 699 | KOPrefs::instance()->mSyncProfileNames = sp->getSyncProfileNames(); |
700 | KOPrefs::instance()->mLocalMachineName = sp->getLocalMachineName (); | 700 | KOPrefs::instance()->mLocalMachineName = sp->getLocalMachineName (); |
701 | } | 701 | } |
702 | 702 | ||
703 | 703 | ||
704 | //KOPrefs::instance()->mWriteBackFile | 704 | //KOPrefs::instance()->mWriteBackFile |
705 | //KOPrefs::instance()->mWriteBackExistingOnly | 705 | //KOPrefs::instance()->mWriteBackExistingOnly |
706 | 706 | ||
707 | // 0 syncPrefsGroup->addRadio(i18n("Take local entry on conflict")); | 707 | // 0 syncPrefsGroup->addRadio(i18n("Take local entry on conflict")); |
708 | // 1 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict")); | 708 | // 1 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict")); |
709 | // 2 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict")); | 709 | // 2 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict")); |
710 | // 3 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict")); | 710 | // 3 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict")); |
711 | // 4 syncPrefsGroup->addRadio(i18n("Force take local entry always")); | 711 | // 4 syncPrefsGroup->addRadio(i18n("Force take local entry always")); |
712 | // 5 syncPrefsGroup->addRadio(i18n("Force take remote entry always")); | 712 | // 5 syncPrefsGroup->addRadio(i18n("Force take remote entry always")); |
713 | 713 | ||
714 | int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , bool full ) | 714 | int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , bool full ) |
715 | { | 715 | { |
716 | 716 | ||
717 | //void setZaurusId(int id); | 717 | //void setZaurusId(int id); |
718 | // int zaurusId() const; | 718 | // int zaurusId() const; |
719 | // void setZaurusUid(int id); | 719 | // void setZaurusUid(int id); |
720 | // int zaurusUid() const; | 720 | // int zaurusUid() const; |
721 | // void setZaurusStat(int id); | 721 | // void setZaurusStat(int id); |
722 | // int zaurusStat() const; | 722 | // int zaurusStat() const; |
723 | // 0 equal | 723 | // 0 equal |
724 | // 1 take local | 724 | // 1 take local |
725 | // 2 take remote | 725 | // 2 take remote |
726 | // 3 cancel | 726 | // 3 cancel |
727 | QDateTime lastSync = mLastCalendarSync; | 727 | QDateTime lastSync = mLastCalendarSync; |
728 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 728 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
729 | bool remCh, locCh; | 729 | bool remCh, locCh; |
730 | remCh = ( remote->zaurusUid() != local->zaurusUid() ); | 730 | remCh = ( remote->zaurusUid() != local->zaurusUid() ); |
731 | locCh = ( local->lastModified() > mLastCalendarSync ); | 731 | locCh = ( local->lastModified() > mLastCalendarSync ); |
732 | //qDebug("locCh %d remCh %d locuid %d remuid %d", locCh, remCh,local->zaurusUid(), remote->zaurusUid() ); | 732 | //qDebug("locCh %d remCh %d locuid %d remuid %d", locCh, remCh,local->zaurusUid(), remote->zaurusUid() ); |
733 | if ( !remCh && ! locCh ) { | 733 | if ( !remCh && ! locCh ) { |
734 | //qDebug("both not changed "); | 734 | //qDebug("both not changed "); |
735 | lastSync = local->lastModified().addDays(1); | 735 | lastSync = local->lastModified().addDays(1); |
736 | } else { | 736 | } else { |
737 | if ( locCh ) { | 737 | if ( locCh ) { |
738 | //qDebug("loc changed %d %d", local->zaurusStat(), local->revision() ); | 738 | //qDebug("loc changed %d %d", local->zaurusStat(), local->revision() ); |
739 | lastSync = local->lastModified().addDays( -1 ); | 739 | lastSync = local->lastModified().addDays( -1 ); |
740 | if ( !remCh ) | 740 | if ( !remCh ) |
741 | remote->setLastModified( lastSync.addDays( -1 ) ); | 741 | remote->setLastModified( lastSync.addDays( -1 ) ); |
742 | } else { | 742 | } else { |
743 | //qDebug(" not loc changed "); | 743 | //qDebug(" not loc changed "); |
744 | lastSync = local->lastModified().addDays( 1 ); | 744 | lastSync = local->lastModified().addDays( 1 ); |
745 | if ( remCh ) | 745 | if ( remCh ) |
746 | remote->setLastModified( lastSync.addDays( 1 ) ); | 746 | remote->setLastModified( lastSync.addDays( 1 ) ); |
747 | 747 | ||
748 | } | 748 | } |
749 | } | 749 | } |
750 | full = true; | 750 | full = true; |
751 | if ( mode < SYNC_PREF_ASK ) | 751 | if ( mode < SYNC_PREF_ASK ) |
752 | mode = SYNC_PREF_ASK; | 752 | mode = SYNC_PREF_ASK; |
753 | } else { | 753 | } else { |
754 | if ( local->lastModified() == remote->lastModified() ) | 754 | if ( local->lastModified() == remote->lastModified() ) |
755 | if ( local->revision() == remote->revision() ) | 755 | if ( local->revision() == remote->revision() ) |
756 | return 0; | 756 | return 0; |
757 | 757 | ||
758 | } | 758 | } |
759 | // qDebug(" %d %d conflict on %s %s ", mode, full, local->summary().latin1(), remote->summary().latin1() ); | 759 | // qDebug(" %d %d conflict on %s %s ", mode, full, local->summary().latin1(), remote->summary().latin1() ); |
760 | 760 | ||
761 | //qDebug("%s %d %s %d", local->lastModified().toString().latin1() , local->revision(), remote->lastModified().toString().latin1(), remote->revision()); | 761 | //qDebug("%s %d %s %d", local->lastModified().toString().latin1() , local->revision(), remote->lastModified().toString().latin1(), remote->revision()); |
762 | //qDebug("%d %d %d %d ", local->lastModified().time().second(), local->lastModified().time().msec(), remote->lastModified().time().second(), remote->lastModified().time().msec() ); | 762 | //qDebug("%d %d %d %d ", local->lastModified().time().second(), local->lastModified().time().msec(), remote->lastModified().time().second(), remote->lastModified().time().msec() ); |
763 | //full = true; //debug only | 763 | //full = true; //debug only |
764 | if ( full ) { | 764 | if ( full ) { |
765 | bool equ = false; | 765 | bool equ = false; |
766 | if ( local->type() == "Event" ) { | 766 | if ( local->type() == "Event" ) { |
767 | equ = (*((Event*) local) == *((Event*) remote)); | 767 | equ = (*((Event*) local) == *((Event*) remote)); |
768 | } | 768 | } |
769 | else if ( local->type() =="Todo" ) | 769 | else if ( local->type() =="Todo" ) |
770 | equ = (*((Todo*) local) == (*(Todo*) remote)); | 770 | equ = (*((Todo*) local) == (*(Todo*) remote)); |
771 | else if ( local->type() =="Journal" ) | 771 | else if ( local->type() =="Journal" ) |
772 | equ = (*((Journal*) local) == *((Journal*) remote)); | 772 | equ = (*((Journal*) local) == *((Journal*) remote)); |
773 | if ( equ ) { | 773 | if ( equ ) { |
774 | //qDebug("equal "); | 774 | //qDebug("equal "); |
775 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 775 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
776 | local->setZaurusUid( remote->zaurusUid() ); | 776 | local->setZaurusUid( remote->zaurusUid() ); |
777 | } | 777 | } |
778 | if ( mode < SYNC_PREF_FORCE_LOCAL ) | 778 | if ( mode < SYNC_PREF_FORCE_LOCAL ) |
779 | return 0; | 779 | return 0; |
780 | 780 | ||
781 | }//else //debug only | 781 | }//else //debug only |
782 | //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1()); | 782 | //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1()); |
783 | } | 783 | } |
784 | int result; | 784 | int result; |
785 | bool localIsNew; | 785 | bool localIsNew; |
786 | if ( full && mode < SYNC_PREF_NEWEST ) | 786 | if ( full && mode < SYNC_PREF_NEWEST ) |
787 | mode = SYNC_PREF_ASK; | 787 | mode = SYNC_PREF_ASK; |
788 | 788 | ||
789 | switch( mode ) { | 789 | switch( mode ) { |
790 | case SYNC_PREF_LOCAL: | 790 | case SYNC_PREF_LOCAL: |
791 | if ( lastSync > remote->lastModified() ) | 791 | if ( lastSync > remote->lastModified() ) |
792 | return 1; | 792 | return 1; |
793 | if ( lastSync > local->lastModified() ) | 793 | if ( lastSync > local->lastModified() ) |
794 | return 2; | 794 | return 2; |
795 | return 1; | 795 | return 1; |
796 | break; | 796 | break; |
797 | case SYNC_PREF_REMOTE: | 797 | case SYNC_PREF_REMOTE: |
798 | if ( lastSync > remote->lastModified() ) | 798 | if ( lastSync > remote->lastModified() ) |
799 | return 1; | 799 | return 1; |
800 | if ( lastSync > local->lastModified() ) | 800 | if ( lastSync > local->lastModified() ) |
801 | return 2; | 801 | return 2; |
802 | return 2; | 802 | return 2; |
803 | break; | 803 | break; |
804 | case SYNC_PREF_NEWEST: | 804 | case SYNC_PREF_NEWEST: |
805 | if ( local->lastModified() > remote->lastModified() ) | 805 | if ( local->lastModified() > remote->lastModified() ) |
806 | return 1; | 806 | return 1; |
807 | else | 807 | else |
808 | return 2; | 808 | return 2; |
809 | break; | 809 | break; |
810 | case SYNC_PREF_ASK: | 810 | case SYNC_PREF_ASK: |
811 | //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), local->lastModified().toString().latin1(), remote->lastModified().toString().latin1() ); | 811 | //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), local->lastModified().toString().latin1(), remote->lastModified().toString().latin1() ); |
812 | if ( lastSync > remote->lastModified() ) | 812 | if ( lastSync > remote->lastModified() ) |
813 | return 1; | 813 | return 1; |
814 | if ( lastSync > local->lastModified() ) | 814 | if ( lastSync > local->lastModified() ) |
815 | return 2; | 815 | return 2; |
816 | //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), local->lastModified().toString().latin1(), remote->lastModified().toString().latin1() ); | 816 | //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), local->lastModified().toString().latin1(), remote->lastModified().toString().latin1() ); |
817 | localIsNew = local->lastModified() > remote->lastModified(); | 817 | localIsNew = local->lastModified() > remote->lastModified(); |
818 | if ( localIsNew ) | 818 | if ( localIsNew ) |
819 | getEventViewerDialog()->setColorMode( 1 ); | 819 | getEventViewerDialog()->setColorMode( 1 ); |
820 | else | 820 | else |
821 | getEventViewerDialog()->setColorMode( 2 ); | 821 | getEventViewerDialog()->setColorMode( 2 ); |
822 | getEventViewerDialog()->setIncidence(local); | 822 | getEventViewerDialog()->setIncidence(local); |
823 | if ( localIsNew ) | 823 | if ( localIsNew ) |
824 | getEventViewerDialog()->setColorMode( 2 ); | 824 | getEventViewerDialog()->setColorMode( 2 ); |
825 | else | 825 | else |
826 | getEventViewerDialog()->setColorMode( 1 ); | 826 | getEventViewerDialog()->setColorMode( 1 ); |
827 | getEventViewerDialog()->addIncidence(remote); | 827 | getEventViewerDialog()->addIncidence(remote); |
828 | getEventViewerDialog()->setColorMode( 0 ); | 828 | getEventViewerDialog()->setColorMode( 0 ); |
829 | //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() ); | 829 | //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() ); |
830 | getEventViewerDialog()->setCaption( mCurrentSyncDevice +i18n(" : Conflict! Please choose entry!")); | 830 | getEventViewerDialog()->setCaption( mCurrentSyncDevice +i18n(" : Conflict! Please choose entry!")); |
831 | getEventViewerDialog()->showMe(); | 831 | getEventViewerDialog()->showMe(); |
832 | result = getEventViewerDialog()->executeS( localIsNew ); | 832 | result = getEventViewerDialog()->executeS( localIsNew ); |
833 | return result; | 833 | return result; |
834 | 834 | ||
835 | break; | 835 | break; |
836 | case SYNC_PREF_FORCE_LOCAL: | 836 | case SYNC_PREF_FORCE_LOCAL: |
837 | return 1; | 837 | return 1; |
838 | break; | 838 | break; |
839 | case SYNC_PREF_FORCE_REMOTE: | 839 | case SYNC_PREF_FORCE_REMOTE: |
840 | return 2; | 840 | return 2; |
841 | break; | 841 | break; |
842 | 842 | ||
843 | default: | 843 | default: |
844 | // SYNC_PREF_TAKE_BOTH not implemented | 844 | // SYNC_PREF_TAKE_BOTH not implemented |
845 | break; | 845 | break; |
846 | } | 846 | } |
847 | return 0; | 847 | return 0; |
848 | } | 848 | } |
849 | Event* CalendarView::getLastSyncEvent() | 849 | Event* CalendarView::getLastSyncEvent() |
850 | { | 850 | { |
851 | Event* lse; | 851 | Event* lse; |
852 | //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() ); | 852 | //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() ); |
853 | lse = mCalendar->event( "last-syncEvent-device-"+mCurrentSyncDevice ); | 853 | lse = mCalendar->event( "last-syncEvent-"+mCurrentSyncDevice ); |
854 | if (!lse) { | 854 | if (!lse) { |
855 | lse = new Event(); | 855 | lse = new Event(); |
856 | lse->setUid( "last-syncEvent-device-"+mCurrentSyncDevice ); | 856 | lse->setUid( "last-syncEvent-"+mCurrentSyncDevice ); |
857 | lse->setSummary(mCurrentSyncDevice + i18n(" - sync event")); | 857 | QString sum = ""; |
858 | if ( KOPrefs::instance()->mExternSyncProfiles.contains( mCurrentSyncDevice ) ) | ||
859 | sum = "E: "; | ||
860 | lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event")); | ||
858 | lse->setDtStart( mLastCalendarSync ); | 861 | lse->setDtStart( mLastCalendarSync ); |
859 | lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); | 862 | lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); |
860 | lse->setCategories( i18n("SyncEvent") ); | 863 | lse->setCategories( i18n("SyncEvent") ); |
861 | lse->setReadOnly( true ); | 864 | lse->setReadOnly( true ); |
862 | mCalendar->addEvent( lse ); | 865 | mCalendar->addEvent( lse ); |
863 | } | 866 | } |
864 | 867 | ||
865 | return lse; | 868 | return lse; |
866 | 869 | ||
867 | } | 870 | } |
868 | void CalendarView::checkSharpEvent( Event* lastSync, Incidence* toDelete ) | 871 | void CalendarView::setupExternSyncProfiles() |
869 | { | 872 | { |
870 | if ( ! lastSync ) | 873 | Event* lse; |
871 | return; | 874 | mExternLastSyncEvent.clear(); |
872 | if ( toDelete->zaurusId() < 0 ) | 875 | int i; |
876 | for ( i = 0; i < KOPrefs::instance()->mExternSyncProfiles.count(); ++i ) { | ||
877 | lse = mCalendar->event( "last-syncEvent-"+ KOPrefs::instance()->mExternSyncProfiles[i] ); | ||
878 | if ( lse ) | ||
879 | mExternLastSyncEvent.append( lse ); | ||
880 | else | ||
881 | qDebug("Last Sync event not found for %s ", KOPrefs::instance()->mExternSyncProfiles[i].latin1()); | ||
882 | } | ||
883 | |||
884 | } | ||
885 | // we check, if the to delete event has a id for a profile | ||
886 | // if yes, we set this id in the profile to delete | ||
887 | void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ) | ||
888 | { | ||
889 | if ( ! lastSync.count() == 0 ) | ||
873 | return; | 890 | return; |
874 | if ( toDelete->type() == "Journal" ) | 891 | if ( toDelete->type() == "Journal" ) |
875 | return; | 892 | return; |
876 | QString des = lastSync->description(); | 893 | |
877 | QString pref = "e"; | 894 | Event* eve = lastSync.first(); |
878 | if ( toDelete->type() == "Todo" ) | 895 | |
879 | pref = "t"; | 896 | while ( eve ) { |
880 | des += pref+ QString::number ( toDelete->zaurusId() ) + ","; | 897 | int id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name |
881 | lastSync->setReadOnly( false ); | 898 | if ( id >= 0 ) { |
882 | lastSync->setDescription( des ); | 899 | QString des = eve->description(); |
883 | lastSync->setReadOnly( true ); | 900 | QString pref = "e"; |
901 | if ( toDelete->type() == "Todo" ) | ||
902 | pref = "t"; | ||
903 | des += pref+ QString::number ( id ) + ","; | ||
904 | eve->setReadOnly( false ); | ||
905 | eve->setDescription( des ); | ||
906 | eve->setReadOnly( true ); | ||
907 | } | ||
908 | eve = lastSync.next(); | ||
909 | } | ||
884 | 910 | ||
885 | } | 911 | } |
886 | bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode ) | 912 | bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode ) |
887 | { | 913 | { |
888 | bool syncOK = true; | 914 | bool syncOK = true; |
889 | int addedEvent = 0; | 915 | int addedEvent = 0; |
890 | int addedEventR = 0; | 916 | int addedEventR = 0; |
891 | int deletedEventR = 0; | 917 | int deletedEventR = 0; |
892 | int deletedEventL = 0; | 918 | int deletedEventL = 0; |
893 | int changedLocal = 0; | 919 | int changedLocal = 0; |
894 | int changedRemote = 0; | 920 | int changedRemote = 0; |
895 | //QPtrList<Event> el = local->rawEvents(); | 921 | //QPtrList<Event> el = local->rawEvents(); |
896 | Event* eventR; | 922 | Event* eventR; |
897 | QString uid; | 923 | QString uid; |
898 | int take; | 924 | int take; |
899 | Event* eventL; | 925 | Event* eventL; |
900 | Event* eventRSync; | 926 | Event* eventRSync; |
901 | Event* eventLSync; | 927 | Event* eventLSync; |
902 | Event* eventRSyncSharp = remote->event( "last-syncEvent-device-Sharp-DTM"); | 928 | QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents(); |
903 | Event* eventLSyncSharp = local->event( "last-syncEvent-device-Sharp-DTM"); | 929 | QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents(); |
904 | bool fullDateRange = false; | 930 | bool fullDateRange = false; |
905 | mLastCalendarSync = QDateTime::currentDateTime(); | 931 | mLastCalendarSync = QDateTime::currentDateTime(); |
906 | QDateTime modifiedCalendar = mLastCalendarSync;; | 932 | QDateTime modifiedCalendar = mLastCalendarSync;; |
907 | eventR = remote->event("last-syncEvent-device-"+mCurrentSyncName ); | 933 | eventR = remote->event("last-syncEvent-"+mCurrentSyncName ); |
908 | if ( eventR ) { | 934 | if ( eventR ) { |
909 | eventRSync = (Event*) eventR->clone(); | 935 | eventRSync = (Event*) eventR->clone(); |
910 | remote->deleteEvent(eventR ); | 936 | remote->deleteEvent(eventR ); |
911 | 937 | ||
912 | } else { | 938 | } else { |
913 | fullDateRange = true; | 939 | fullDateRange = true; |
914 | eventRSync = new Event(); | 940 | eventRSync = new Event(); |
915 | eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event")); | 941 | eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event")); |
916 | eventRSync->setUid("last-syncEvent-device-"+mCurrentSyncName ); | 942 | eventRSync->setUid("last-syncEvent-"+mCurrentSyncName ); |
917 | eventRSync->setDtStart( mLastCalendarSync ); | 943 | eventRSync->setDtStart( mLastCalendarSync ); |
918 | eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); | 944 | eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); |
919 | eventRSync->setCategories( i18n("SyncEvent") ); | 945 | eventRSync->setCategories( i18n("SyncEvent") ); |
920 | } | 946 | } |
921 | eventLSync = getLastSyncEvent(); | 947 | eventLSync = getLastSyncEvent(); |
922 | if ( eventLSync->dtStart() == mLastCalendarSync ) | 948 | if ( eventLSync->dtStart() == mLastCalendarSync ) |
923 | fullDateRange = true; | 949 | fullDateRange = true; |
924 | 950 | ||
925 | if ( ! fullDateRange ) { | 951 | if ( ! fullDateRange ) { |
926 | if ( eventLSync->dtStart() != eventRSync->dtStart() ) { | 952 | if ( eventLSync->dtStart() != eventRSync->dtStart() ) { |
927 | 953 | ||
928 | // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() ); | 954 | // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() ); |
929 | //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec()); | 955 | //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec()); |
930 | fullDateRange = true; | 956 | fullDateRange = true; |
931 | } | 957 | } |
932 | } | 958 | } |
933 | if ( fullDateRange ) | 959 | if ( fullDateRange ) |
934 | mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365); | 960 | mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365); |
935 | else | 961 | else |
936 | mLastCalendarSync = eventLSync->dtStart(); | 962 | mLastCalendarSync = eventLSync->dtStart(); |
937 | // for resyncing if own file has changed | 963 | // for resyncing if own file has changed |
938 | if ( mCurrentSyncDevice == "deleteaftersync" ) { | 964 | if ( mCurrentSyncDevice == "deleteaftersync" ) { |
939 | mLastCalendarSync = loadedFileVersion; | 965 | mLastCalendarSync = loadedFileVersion; |
940 | qDebug("setting mLastCalendarSync "); | 966 | qDebug("setting mLastCalendarSync "); |
941 | } | 967 | } |
942 | //qDebug("*************************** "); | 968 | //qDebug("*************************** "); |
943 | qDebug("mLastCalendarSync %s ",mLastCalendarSync.toString().latin1() ); | 969 | qDebug("mLastCalendarSync %s ",mLastCalendarSync.toString().latin1() ); |
944 | QPtrList<Incidence> er = remote->rawIncidences(); | 970 | QPtrList<Incidence> er = remote->rawIncidences(); |
945 | Incidence* inR = er.first(); | 971 | Incidence* inR = er.first(); |
946 | Incidence* inL; | 972 | Incidence* inL; |
947 | QProgressBar bar( er.count(),0 ); | 973 | QProgressBar bar( er.count(),0 ); |
948 | bar.setCaption (i18n("Syncing - close to abort!") ); | 974 | bar.setCaption (i18n("Syncing - close to abort!") ); |
949 | 975 | ||
950 | int w = 300; | 976 | int w = 300; |
951 | if ( QApplication::desktop()->width() < 320 ) | 977 | if ( QApplication::desktop()->width() < 320 ) |
952 | w = 220; | 978 | w = 220; |
953 | int h = bar.sizeHint().height() ; | 979 | int h = bar.sizeHint().height() ; |
954 | int dw = QApplication::desktop()->width(); | 980 | int dw = QApplication::desktop()->width(); |
955 | int dh = QApplication::desktop()->height(); | 981 | int dh = QApplication::desktop()->height(); |
956 | bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); | 982 | bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); |
957 | bar.show(); | 983 | bar.show(); |
958 | int modulo = (er.count()/10)+1; | 984 | int modulo = (er.count()/10)+1; |
959 | int incCounter = 0; | 985 | int incCounter = 0; |
960 | while ( inR ) { | 986 | while ( inR ) { |
961 | if ( ! bar.isVisible() ) | 987 | if ( ! bar.isVisible() ) |
962 | return false; | 988 | return false; |
963 | if ( incCounter % modulo == 0 ) | 989 | if ( incCounter % modulo == 0 ) |
964 | bar.setProgress( incCounter ); | 990 | bar.setProgress( incCounter ); |
965 | ++incCounter; | 991 | ++incCounter; |
966 | uid = inR->uid(); | 992 | uid = inR->uid(); |
967 | bool skipIncidence = false; | 993 | bool skipIncidence = false; |
968 | if ( uid.left(21) == QString("last-syncEvent-device") ) | 994 | if ( uid.left(15) == QString("last-syncEvent-") ) |
969 | skipIncidence = true; | 995 | skipIncidence = true; |
970 | 996 | ||
971 | qApp->processEvents(); | 997 | qApp->processEvents(); |
972 | if ( !skipIncidence ) { | 998 | if ( !skipIncidence ) { |
973 | inL = local->incidence( uid ); | 999 | inL = local->incidence( uid ); |
974 | if ( inL ) { // maybe conflict - same uid in both calendars | 1000 | if ( inL ) { // maybe conflict - same uid in both calendars |
975 | int maxrev = inL->revision(); | 1001 | int maxrev = inL->revision(); |
976 | if ( maxrev < inR->revision() ) | 1002 | if ( maxrev < inR->revision() ) |
977 | maxrev = inR->revision(); | 1003 | maxrev = inR->revision(); |
978 | if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) { | 1004 | if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) { |
979 | //qDebug("take %d %s ", take, inL->summary().latin1()); | 1005 | //qDebug("take %d %s ", take, inL->summary().latin1()); |
980 | if ( take == 3 ) | 1006 | if ( take == 3 ) |
981 | return false; | 1007 | return false; |
982 | if ( take == 1 ) {// take local | 1008 | if ( take == 1 ) {// take local |
983 | inL->setZaurusUid( inR->zaurusUid() ); | 1009 | inL->setZaurusUid( inR->zaurusUid() ); |
984 | remote->deleteIncidence( inR ); | 1010 | remote->deleteIncidence( inR ); |
985 | if ( inL->revision() < maxrev ) | 1011 | if ( inL->revision() < maxrev ) |
986 | inL->setRevision( maxrev ); | 1012 | inL->setRevision( maxrev ); |
987 | remote->addIncidence( inL->clone() ); | 1013 | remote->addIncidence( inL->clone() ); |
988 | ++changedRemote; | 1014 | ++changedRemote; |
989 | } else { | 1015 | } else { |
990 | if ( inR->revision() < maxrev ) | 1016 | if ( inR->revision() < maxrev ) |
991 | inR->setRevision( maxrev ); | 1017 | inR->setRevision( maxrev ); |
992 | local->deleteIncidence( inL ); | 1018 | local->deleteIncidence( inL ); |
993 | local->addIncidence( inR->clone() ); | 1019 | local->addIncidence( inR->clone() ); |
994 | ++changedLocal; | 1020 | ++changedLocal; |
995 | } | 1021 | } |
996 | } | 1022 | } |
997 | } else { // no conflict | 1023 | } else { // no conflict |
998 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 1024 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
999 | QString des = eventLSync->description(); | 1025 | QString des = eventLSync->description(); |
1000 | QString pref = "e"; | 1026 | QString pref = "e"; |
1001 | if ( inR->type() == "Todo" ) | 1027 | if ( inR->type() == "Todo" ) |
1002 | pref = "t"; | 1028 | pref = "t"; |
1003 | if ( des.find(pref+QString::number( inR->zaurusId() ) +"," ) >= 0 && mode != 5) { // delete it | 1029 | if ( des.find(pref+QString::number( inR->zaurusId() ) +"," ) >= 0 && mode != 5) { // delete it |
1004 | inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); | 1030 | inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); |
1005 | //remote->deleteIncidence( inR ); | 1031 | //remote->deleteIncidence( inR ); |
1006 | ++deletedEventR; | 1032 | ++deletedEventR; |
1007 | } else { | 1033 | } else { |
1008 | inR->setLastModified( modifiedCalendar ); | 1034 | inR->setLastModified( modifiedCalendar ); |
1009 | local->addIncidence( inR->clone() ); | 1035 | local->addIncidence( inR->clone() ); |
1010 | ++addedEvent; | 1036 | ++addedEvent; |
1011 | } | 1037 | } |
1012 | } else { | 1038 | } else { |
1013 | if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { | 1039 | if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { |
1014 | inR->setLastModified( modifiedCalendar ); | 1040 | inR->setLastModified( modifiedCalendar ); |
1015 | local->addIncidence( inR->clone() ); | 1041 | local->addIncidence( inR->clone() ); |
1016 | ++addedEvent; | 1042 | ++addedEvent; |
1017 | } else { | 1043 | } else { |
1018 | checkSharpEvent(eventRSyncSharp, inR); | 1044 | checkExternSyncEvent(eventRSyncSharp, inR); |
1019 | remote->deleteIncidence( inR ); | 1045 | remote->deleteIncidence( inR ); |
1020 | ++deletedEventR; | 1046 | ++deletedEventR; |
1021 | } | 1047 | } |
1022 | } | 1048 | } |
1023 | } | 1049 | } |
1024 | } | 1050 | } |
1025 | inR = er.next(); | 1051 | inR = er.next(); |
1026 | } | 1052 | } |
1027 | QPtrList<Incidence> el = local->rawIncidences(); | 1053 | QPtrList<Incidence> el = local->rawIncidences(); |
1028 | inL = el.first(); | 1054 | inL = el.first(); |
1029 | modulo = (el.count()/10)+1; | 1055 | modulo = (el.count()/10)+1; |
1030 | bar.setCaption (i18n("Add / remove events") ); | 1056 | bar.setCaption (i18n("Add / remove events") ); |
1031 | bar.setTotalSteps ( el.count() ) ; | 1057 | bar.setTotalSteps ( el.count() ) ; |
1032 | bar.show(); | 1058 | bar.show(); |
1033 | incCounter = 0; | 1059 | incCounter = 0; |
1034 | 1060 | ||
1035 | while ( inL ) { | 1061 | while ( inL ) { |
1036 | 1062 | ||
1037 | qApp->processEvents(); | 1063 | qApp->processEvents(); |
1038 | if ( ! bar.isVisible() ) | 1064 | if ( ! bar.isVisible() ) |
1039 | return false; | 1065 | return false; |
1040 | if ( incCounter % modulo == 0 ) | 1066 | if ( incCounter % modulo == 0 ) |
1041 | bar.setProgress( incCounter ); | 1067 | bar.setProgress( incCounter ); |
1042 | ++incCounter; | 1068 | ++incCounter; |
1043 | uid = inL->uid(); | 1069 | uid = inL->uid(); |
1044 | bool skipIncidence = false; | 1070 | bool skipIncidence = false; |
1045 | if ( uid.left(21) == QString("last-syncEvent-device") ) | 1071 | if ( uid.left(15) == QString("last-syncEvent-") ) |
1046 | skipIncidence = true; | 1072 | skipIncidence = true; |
1047 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" ) | 1073 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" ) |
1048 | skipIncidence = true; | 1074 | skipIncidence = true; |
1049 | if ( !skipIncidence ) { | 1075 | if ( !skipIncidence ) { |
1050 | inR = remote->incidence( uid ); | 1076 | inR = remote->incidence( uid ); |
1051 | if ( ! inR ) { | 1077 | if ( ! inR ) { |
1052 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 1078 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
1053 | if ( inL->zaurusId() >= 0 && mode != 4 ) { | 1079 | if ( inL->zaurusId() >= 0 && mode != 4 ) { |
1054 | local->deleteIncidence( inL ); | 1080 | local->deleteIncidence( inL ); |
1055 | ++deletedEventL; | 1081 | ++deletedEventL; |
1056 | } else { | 1082 | } else { |
1057 | if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { | 1083 | if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { |
1058 | inL->setZaurusId( -1 ); | 1084 | inL->setZaurusId( -1 ); |
1059 | ++addedEventR; | 1085 | ++addedEventR; |
1060 | inL->setLastModified( modifiedCalendar ); | 1086 | inL->setLastModified( modifiedCalendar ); |
1061 | remote->addIncidence( inL->clone() ); | 1087 | remote->addIncidence( inL->clone() ); |
1062 | } | 1088 | } |
1063 | } | 1089 | } |
1064 | } else { | 1090 | } else { |
1065 | if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { | 1091 | if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { |
1066 | checkSharpEvent(eventLSyncSharp, inL); | 1092 | checkExternSyncEvent(eventLSyncSharp, inL); |
1067 | local->deleteIncidence( inL ); | 1093 | local->deleteIncidence( inL ); |
1068 | ++deletedEventL; | 1094 | ++deletedEventL; |
1069 | } else { | 1095 | } else { |
1070 | if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { | 1096 | if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { |
1071 | ++addedEventR; | 1097 | ++addedEventR; |
1072 | inL->setLastModified( modifiedCalendar ); | 1098 | inL->setLastModified( modifiedCalendar ); |
1073 | remote->addIncidence( inL->clone() ); | 1099 | remote->addIncidence( inL->clone() ); |
1074 | } | 1100 | } |
1075 | } | 1101 | } |
1076 | } | 1102 | } |
1077 | } | 1103 | } |
1078 | } | 1104 | } |
1079 | inL = el.next(); | 1105 | inL = el.next(); |
1080 | } | 1106 | } |
1081 | 1107 | ||
1082 | bar.hide(); | 1108 | bar.hide(); |
1083 | mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 ); | 1109 | mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 ); |
1084 | eventLSync->setReadOnly( false ); | 1110 | eventLSync->setReadOnly( false ); |
1085 | eventLSync->setDtStart( mLastCalendarSync ); | 1111 | eventLSync->setDtStart( mLastCalendarSync ); |
1086 | eventRSync->setDtStart( mLastCalendarSync ); | 1112 | eventRSync->setDtStart( mLastCalendarSync ); |
1087 | eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); | 1113 | eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); |
1088 | eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); | 1114 | eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); |
1089 | eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; | 1115 | eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; |
1090 | eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); | 1116 | eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); |
1091 | eventLSync->setReadOnly( true ); | 1117 | eventLSync->setReadOnly( true ); |
1092 | if ( mGlobalSyncMode == SYNC_MODE_NORMAL) | 1118 | if ( mGlobalSyncMode == SYNC_MODE_NORMAL) |
1093 | remote->addEvent( eventRSync ); | 1119 | remote->addEvent( eventRSync ); |
1094 | QString mes; | 1120 | QString mes; |
1095 | 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 ); | 1121 | 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 ); |
1096 | if ( KOPrefs::instance()->mShowSyncSummary ) { | 1122 | if ( KOPrefs::instance()->mShowSyncSummary ) { |
1097 | KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") ); | 1123 | KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") ); |
1098 | } | 1124 | } |
1099 | qDebug( mes ); | 1125 | qDebug( mes ); |
1100 | mCalendar->checkAlarmForIncidence( 0, true ); | 1126 | mCalendar->checkAlarmForIncidence( 0, true ); |
1101 | return syncOK; | 1127 | return syncOK; |
1102 | } | 1128 | } |
1103 | 1129 | ||
1104 | void CalendarView::setSyncDevice( QString s ) | 1130 | void CalendarView::setSyncDevice( QString s ) |
1105 | { | 1131 | { |
1106 | mCurrentSyncDevice= s; | 1132 | mCurrentSyncDevice= s; |
1107 | } | 1133 | } |
1108 | void CalendarView::setSyncName( QString s ) | 1134 | void CalendarView::setSyncName( QString s ) |
1109 | { | 1135 | { |
1110 | mCurrentSyncName= s; | 1136 | mCurrentSyncName= s; |
1111 | } | 1137 | } |
1112 | bool CalendarView::syncCalendar(QString filename, int mode) | 1138 | bool CalendarView::syncCalendar(QString filename, int mode) |
1113 | { | 1139 | { |
1114 | mGlobalSyncMode = SYNC_MODE_NORMAL; | 1140 | mGlobalSyncMode = SYNC_MODE_NORMAL; |
1115 | CalendarLocal* calendar = new CalendarLocal(); | 1141 | CalendarLocal* calendar = new CalendarLocal(); |
1116 | calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); | 1142 | calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); |
1117 | FileStorage* storage = new FileStorage( calendar ); | 1143 | FileStorage* storage = new FileStorage( calendar ); |
1118 | bool syncOK = false; | 1144 | bool syncOK = false; |
1119 | storage->setFileName( filename ); | 1145 | storage->setFileName( filename ); |
1120 | // qDebug("loading ... "); | 1146 | // qDebug("loading ... "); |
1121 | if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) { | 1147 | if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) { |
1122 | getEventViewerDialog()->setSyncMode( true ); | 1148 | getEventViewerDialog()->setSyncMode( true ); |
1123 | syncOK = synchronizeCalendar( mCalendar, calendar, mode ); | 1149 | syncOK = synchronizeCalendar( mCalendar, calendar, mode ); |
1124 | getEventViewerDialog()->setSyncMode( false ); | 1150 | getEventViewerDialog()->setSyncMode( false ); |
1125 | if ( syncOK ) { | 1151 | if ( syncOK ) { |
1126 | if ( KOPrefs::instance()->mWriteBackFile ) | 1152 | if ( KOPrefs::instance()->mWriteBackFile ) |
1127 | { | 1153 | { |
1128 | storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); | 1154 | storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); |
1129 | storage->save(); | 1155 | storage->save(); |
1130 | } | 1156 | } |
1131 | } | 1157 | } |
1132 | setModified( true ); | 1158 | setModified( true ); |
1133 | } | 1159 | } |
1134 | delete storage; | 1160 | delete storage; |
1135 | delete calendar; | 1161 | delete calendar; |
1136 | if ( syncOK ) | 1162 | if ( syncOK ) |
1137 | updateView(); | 1163 | updateView(); |
1138 | return syncOK; | 1164 | return syncOK; |
1139 | } | 1165 | } |
1140 | void CalendarView::syncSharp() | 1166 | void CalendarView::syncSharp() |
1141 | { | 1167 | { |
1142 | #ifndef DESKTOP_VERSION | 1168 | #ifndef DESKTOP_VERSION |
1143 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; | 1169 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; |
1144 | //mCurrentSyncDevice = "sharp-DTM"; | 1170 | //mCurrentSyncDevice = "sharp-DTM"; |
1145 | if ( KOPrefs::instance()->mAskForPreferences ) | 1171 | if ( KOPrefs::instance()->mAskForPreferences ) |
1146 | edit_sync_options(); | 1172 | edit_sync_options(); |
1147 | qApp->processEvents(); | 1173 | qApp->processEvents(); |
1148 | CalendarLocal* calendar = new CalendarLocal(); | 1174 | CalendarLocal* calendar = new CalendarLocal(); |
1149 | calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); | 1175 | calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); |
1150 | bool syncOK = false; | 1176 | bool syncOK = false; |
1151 | SharpFormat sharpFormat; | 1177 | SharpFormat sharpFormat; |
1152 | if ( sharpFormat.load( calendar, mCalendar ) ) { | 1178 | if ( sharpFormat.load( calendar, mCalendar ) ) { |
1153 | getEventViewerDialog()->setSyncMode( true ); | 1179 | getEventViewerDialog()->setSyncMode( true ); |
1154 | syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs ); | 1180 | syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs ); |
1155 | getEventViewerDialog()->setSyncMode( false ); | 1181 | getEventViewerDialog()->setSyncMode( false ); |
1156 | qApp->processEvents(); | 1182 | qApp->processEvents(); |
1157 | if ( syncOK ) { | 1183 | if ( syncOK ) { |
1158 | if ( KOPrefs::instance()->mWriteBackFile ) | 1184 | if ( KOPrefs::instance()->mWriteBackFile ) |
1159 | { | 1185 | { |
1160 | QPtrList<Incidence> iL = mCalendar->rawIncidences(); | 1186 | QPtrList<Incidence> iL = mCalendar->rawIncidences(); |
1161 | Incidence* inc = iL.first(); | 1187 | Incidence* inc = iL.first(); |
1162 | /* obsolete | 1188 | /* obsolete |
1163 | while ( inc ) { | 1189 | while ( inc ) { |
1164 | inc->setZaurusStat( inc->revision () ); | 1190 | inc->setZaurusStat( inc->revision () ); |
1165 | inc = iL.next(); | 1191 | inc = iL.next(); |
1166 | } | 1192 | } |
1167 | */ | 1193 | */ |
1168 | // pending: clean last sync event description | 1194 | // pending: clean last sync event description |
1169 | sharpFormat.save(calendar); | 1195 | sharpFormat.save(calendar); |
1170 | iL = calendar->rawIncidences(); | 1196 | iL = calendar->rawIncidences(); |
1171 | inc = iL.first(); | 1197 | inc = iL.first(); |
1172 | Incidence* loc; | 1198 | Incidence* loc; |
1173 | while ( inc ) { | 1199 | while ( inc ) { |
1174 | if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) { | 1200 | if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) { |
1175 | loc = mCalendar->incidence(inc->uid() ); | 1201 | loc = mCalendar->incidence(inc->uid() ); |
1176 | if ( loc ) { | 1202 | if ( loc ) { |
1177 | loc->setZaurusId( inc->zaurusId() ); | 1203 | loc->setZaurusId( inc->zaurusId() ); |
1178 | loc->setZaurusUid( inc->zaurusUid() ); | 1204 | loc->setZaurusUid( inc->zaurusUid() ); |
1179 | } | 1205 | } |
1180 | } | 1206 | } |
1181 | inc = iL.next(); | 1207 | inc = iL.next(); |
1182 | } | 1208 | } |
1183 | Incidence* lse = getLastSyncEvent(); | 1209 | Incidence* lse = getLastSyncEvent(); |
1184 | if ( lse ) { | 1210 | if ( lse ) { |
1185 | lse->setReadOnly( false ); | 1211 | lse->setReadOnly( false ); |
1186 | lse->setDescription( "" ); | 1212 | lse->setDescription( "" ); |
1187 | lse->setReadOnly( true ); | 1213 | lse->setReadOnly( true ); |
1188 | } | 1214 | } |
1189 | } | 1215 | } |
1190 | } | 1216 | } |
1191 | setModified( true ); | 1217 | setModified( true ); |
1192 | } else { | 1218 | } else { |
1193 | QString question = i18n("Sorry, the database access\ncommand failed!\n\nNothing synced!\n") ; | 1219 | QString question = i18n("Sorry, the database access\ncommand failed!\n\nNothing synced!\n") ; |
1194 | QMessageBox::information( 0, i18n("KO/Pi Import - ERROR"), | 1220 | QMessageBox::information( 0, i18n("KO/Pi Import - ERROR"), |
1195 | question, i18n("Ok")) ; | 1221 | question, i18n("Ok")) ; |
1196 | 1222 | ||
1197 | } | 1223 | } |
1198 | delete calendar; | 1224 | delete calendar; |
1199 | updateView(); | 1225 | updateView(); |
1200 | return ;//syncOK; | 1226 | return ;//syncOK; |
1201 | #endif | 1227 | #endif |
1202 | } | 1228 | } |
1203 | 1229 | ||
1204 | 1230 | ||
1205 | #include <kabc/stdaddressbook.h> | 1231 | #include <kabc/stdaddressbook.h> |
1206 | bool CalendarView::importBday() | 1232 | bool CalendarView::importBday() |
1207 | { | 1233 | { |
1208 | KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true ); | 1234 | KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true ); |
1209 | KABC::AddressBook::Iterator it; | 1235 | KABC::AddressBook::Iterator it; |
1210 | int count = 0; | 1236 | int count = 0; |
1211 | for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { | 1237 | for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { |
1212 | ++count; | 1238 | ++count; |
1213 | } | 1239 | } |
1214 | QProgressBar bar(count,0 ); | 1240 | QProgressBar bar(count,0 ); |
1215 | int w = 300; | 1241 | int w = 300; |
1216 | if ( QApplication::desktop()->width() < 320 ) | 1242 | if ( QApplication::desktop()->width() < 320 ) |
1217 | w = 220; | 1243 | w = 220; |
1218 | int h = bar.sizeHint().height() ; | 1244 | int h = bar.sizeHint().height() ; |
1219 | int dw = QApplication::desktop()->width(); | 1245 | int dw = QApplication::desktop()->width(); |
1220 | int dh = QApplication::desktop()->height(); | 1246 | int dh = QApplication::desktop()->height(); |
1221 | bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); | 1247 | bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); |
1222 | bar.show(); | 1248 | bar.show(); |
1223 | bar.setCaption (i18n("Reading addressbook - close to abort!") ); | 1249 | bar.setCaption (i18n("Reading addressbook - close to abort!") ); |
1224 | qApp->processEvents(); | 1250 | qApp->processEvents(); |
1225 | count = 0; | 1251 | count = 0; |
1226 | int addCount = 0; | 1252 | int addCount = 0; |
1227 | KCal::Attendee* a = 0; | 1253 | KCal::Attendee* a = 0; |
1228 | for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { | 1254 | for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { |
1229 | if ( ! bar.isVisible() ) | 1255 | if ( ! bar.isVisible() ) |
1230 | return false; | 1256 | return false; |
1231 | bar.setProgress( count++ ); | 1257 | bar.setProgress( count++ ); |
1232 | qApp->processEvents(); | 1258 | qApp->processEvents(); |
1233 | //qDebug("add BDay %s %s", (*it).realName().latin1(),(*it).birthday().date().toString().latin1() ); | 1259 | //qDebug("add BDay %s %s", (*it).realName().latin1(),(*it).birthday().date().toString().latin1() ); |
1234 | if ( (*it).birthday().date().isValid() ){ | 1260 | if ( (*it).birthday().date().isValid() ){ |
1235 | a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ; | 1261 | a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ; |
1236 | if ( addAnniversary( (*it).birthday().date(), (*it).assembledName(), a, true ) ) | 1262 | if ( addAnniversary( (*it).birthday().date(), (*it).assembledName(), a, true ) ) |
1237 | ++addCount; | 1263 | ++addCount; |
1238 | } | 1264 | } |
1239 | QDate anni = KGlobal::locale()->readDate( (*it).custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); | 1265 | QDate anni = KGlobal::locale()->readDate( (*it).custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); |
1240 | if ( anni.isValid() ){ | 1266 | if ( anni.isValid() ){ |
1241 | a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ; | 1267 | a = new KCal::Attendee( (*it).realName(), (*it).preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,(*it).uid()) ; |
1242 | if ( addAnniversary( anni, (*it).assembledName(), a, false ) ) | 1268 | if ( addAnniversary( anni, (*it).assembledName(), a, false ) ) |
1243 | ++addCount; | 1269 | ++addCount; |
1244 | } | 1270 | } |
1245 | } | 1271 | } |
1246 | updateView(); | 1272 | updateView(); |
1247 | topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!")); | 1273 | topLevelWidget()->setCaption(QString::number( addCount )+ i18n(" birthdays/anniversaries added!")); |
1248 | return true; | 1274 | return true; |
1249 | } | 1275 | } |
1250 | 1276 | ||
1251 | bool CalendarView::addAnniversary( QDate date, QString name, KCal::Attendee* a, bool birthday) | 1277 | bool CalendarView::addAnniversary( QDate date, QString name, KCal::Attendee* a, bool birthday) |
1252 | { | 1278 | { |
1253 | //qDebug("addAnni "); | 1279 | //qDebug("addAnni "); |
1254 | Event * ev = new Event(); | 1280 | Event * ev = new Event(); |
1255 | if ( a ) { | 1281 | if ( a ) { |
1256 | ev->addAttendee( a ); | 1282 | ev->addAttendee( a ); |
1257 | } | 1283 | } |
1258 | QString kind; | 1284 | QString kind; |
1259 | if ( birthday ) | 1285 | if ( birthday ) |
1260 | kind = i18n( "Birthday" ); | 1286 | kind = i18n( "Birthday" ); |
1261 | else | 1287 | else |
1262 | kind = i18n( "Anniversary" ); | 1288 | kind = i18n( "Anniversary" ); |
1263 | ev->setSummary( name + " - " + kind ); | 1289 | ev->setSummary( name + " - " + kind ); |
1264 | ev->setOrganizer( "nobody@nowhere" ); | 1290 | ev->setOrganizer( "nobody@nowhere" ); |
1265 | ev->setCategories( kind ); | 1291 | ev->setCategories( kind ); |
1266 | ev->setDtStart( QDateTime(date) ); | 1292 | ev->setDtStart( QDateTime(date) ); |
1267 | ev->setDtEnd( QDateTime(date) ); | 1293 | ev->setDtEnd( QDateTime(date) ); |
1268 | ev->setFloats( true ); | 1294 | ev->setFloats( true ); |
1269 | Recurrence * rec = ev->recurrence(); | 1295 | Recurrence * rec = ev->recurrence(); |
1270 | rec->setYearly(Recurrence::rYearlyMonth,1,-1); | 1296 | rec->setYearly(Recurrence::rYearlyMonth,1,-1); |
1271 | rec->addYearlyNum( date.month() ); | 1297 | rec->addYearlyNum( date.month() ); |
1272 | if ( !mCalendar->addAnniversaryNoDup( ev ) ) { | 1298 | if ( !mCalendar->addAnniversaryNoDup( ev ) ) { |
1273 | delete ev; | 1299 | delete ev; |
1274 | return false; | 1300 | return false; |
1275 | } | 1301 | } |
1276 | return true; | 1302 | return true; |
1277 | 1303 | ||
1278 | } | 1304 | } |
1279 | bool CalendarView::importQtopia( const QString &categories, | 1305 | bool CalendarView::importQtopia( const QString &categories, |
1280 | const QString &datebook, | 1306 | const QString &datebook, |
1281 | const QString &todolist ) | 1307 | const QString &todolist ) |
1282 | { | 1308 | { |
1283 | 1309 | ||
1284 | QtopiaFormat qtopiaFormat; | 1310 | QtopiaFormat qtopiaFormat; |
1285 | qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories)); | 1311 | qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories)); |
1286 | if ( !categories.isEmpty() ) qtopiaFormat.load( mCalendar, categories ); | 1312 | if ( !categories.isEmpty() ) qtopiaFormat.load( mCalendar, categories ); |
1287 | if ( !datebook.isEmpty() ) qtopiaFormat.load( mCalendar, datebook ); | 1313 | if ( !datebook.isEmpty() ) qtopiaFormat.load( mCalendar, datebook ); |
1288 | if ( !todolist.isEmpty() ) qtopiaFormat.load( mCalendar, todolist ); | 1314 | if ( !todolist.isEmpty() ) qtopiaFormat.load( mCalendar, todolist ); |
1289 | 1315 | ||
1290 | updateView(); | 1316 | updateView(); |
1291 | return true; | 1317 | return true; |
1292 | 1318 | ||
1293 | #if 0 | 1319 | #if 0 |
1294 | mGlobalSyncMode = SYNC_MODE_QTOPIA; | 1320 | mGlobalSyncMode = SYNC_MODE_QTOPIA; |
1295 | mCurrentSyncDevice = "qtopia-XML"; | 1321 | mCurrentSyncDevice = "qtopia-XML"; |
1296 | if ( KOPrefs::instance()->mAskForPreferences ) | 1322 | if ( KOPrefs::instance()->mAskForPreferences ) |
1297 | edit_sync_options(); | 1323 | edit_sync_options(); |
1298 | qApp->processEvents(); | 1324 | qApp->processEvents(); |
1299 | CalendarLocal* calendar = new CalendarLocal(); | 1325 | CalendarLocal* calendar = new CalendarLocal(); |
1300 | calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); | 1326 | calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); |
1301 | bool syncOK = false; | 1327 | bool syncOK = false; |
1302 | QtopiaFormat qtopiaFormat; | 1328 | QtopiaFormat qtopiaFormat; |
1303 | qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories)); | 1329 | qtopiaFormat.setCategoriesList ( &(KOPrefs::instance()->mCustomCategories)); |
1304 | bool loadOk = true; | 1330 | bool loadOk = true; |
1305 | if ( !categories.isEmpty() ) | 1331 | if ( !categories.isEmpty() ) |
1306 | loadOk = qtopiaFormat.load( calendar, categories ); | 1332 | loadOk = qtopiaFormat.load( calendar, categories ); |
1307 | if ( loadOk && !datebook.isEmpty() ) | 1333 | if ( loadOk && !datebook.isEmpty() ) |
1308 | loadOk = qtopiaFormat.load( calendar, datebook ); | 1334 | loadOk = qtopiaFormat.load( calendar, datebook ); |
1309 | if ( loadOk && !todolist.isEmpty() ) | 1335 | if ( loadOk && !todolist.isEmpty() ) |
1310 | loadOk = qtopiaFormat.load( calendar, todolist ); | 1336 | loadOk = qtopiaFormat.load( calendar, todolist ); |
1311 | 1337 | ||
1312 | if ( loadOk ) { | 1338 | if ( loadOk ) { |
1313 | getEventViewerDialog()->setSyncMode( true ); | 1339 | getEventViewerDialog()->setSyncMode( true ); |
1314 | syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs ); | 1340 | syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs ); |
1315 | getEventViewerDialog()->setSyncMode( false ); | 1341 | getEventViewerDialog()->setSyncMode( false ); |
1316 | qApp->processEvents(); | 1342 | qApp->processEvents(); |
1317 | if ( syncOK ) { | 1343 | if ( syncOK ) { |
1318 | if ( KOPrefs::instance()->mWriteBackFile ) | 1344 | if ( KOPrefs::instance()->mWriteBackFile ) |
1319 | { | 1345 | { |
1320 | // write back XML file | 1346 | // write back XML file |
1321 | 1347 | ||
1322 | } | 1348 | } |
1323 | setModified( true ); | 1349 | setModified( true ); |
1324 | } | 1350 | } |
1325 | } else { | 1351 | } else { |
1326 | QString question = i18n("Sorry, the file loading\ncommand failed!\n\nNothing synced!\n") ; | 1352 | QString question = i18n("Sorry, the file loading\ncommand failed!\n\nNothing synced!\n") ; |
1327 | QMessageBox::information( 0, i18n("KO/Pi Sync - ERROR"), | 1353 | QMessageBox::information( 0, i18n("KO/Pi Sync - ERROR"), |
1328 | question, i18n("Ok")) ; | 1354 | question, i18n("Ok")) ; |
1329 | } | 1355 | } |
1330 | delete calendar; | 1356 | delete calendar; |
1331 | updateView(); | 1357 | updateView(); |
1332 | return syncOK; | 1358 | return syncOK; |
1333 | 1359 | ||
1334 | 1360 | ||
1335 | #endif | 1361 | #endif |
1336 | 1362 | ||
1337 | } | 1363 | } |
1338 | 1364 | ||
1339 | void CalendarView::setSyncEventsReadOnly() | 1365 | void CalendarView::setSyncEventsReadOnly() |
1340 | { | 1366 | { |
1341 | Event * ev; | 1367 | Event * ev; |
1342 | QPtrList<Event> eL = mCalendar->rawEvents(); | 1368 | QPtrList<Event> eL = mCalendar->rawEvents(); |
1343 | ev = eL.first(); | 1369 | ev = eL.first(); |
1344 | while ( ev ) { | 1370 | while ( ev ) { |
1345 | if ( ev->uid().left(21) == QString("last-syncEvent-device") ) | 1371 | if ( ev->uid().left(15) == QString("last-syncEvent-") ) |
1346 | ev->setReadOnly( true ); | 1372 | ev->setReadOnly( true ); |
1347 | ev = eL.next(); | 1373 | ev = eL.next(); |
1348 | } | 1374 | } |
1349 | } | 1375 | } |
1350 | bool CalendarView::openCalendar(QString filename, bool merge) | 1376 | bool CalendarView::openCalendar(QString filename, bool merge) |
1351 | { | 1377 | { |
1352 | 1378 | ||
1353 | if (filename.isEmpty()) { | 1379 | if (filename.isEmpty()) { |
1354 | return false; | 1380 | return false; |
1355 | } | 1381 | } |
1356 | 1382 | ||
1357 | if (!QFile::exists(filename)) { | 1383 | if (!QFile::exists(filename)) { |
1358 | KMessageBox::error(this,i18n("File does not exist:\n '%1'.").arg(filename)); | 1384 | KMessageBox::error(this,i18n("File does not exist:\n '%1'.").arg(filename)); |
1359 | return false; | 1385 | return false; |
1360 | } | 1386 | } |
1361 | 1387 | ||
1362 | globalFlagBlockAgenda = 1; | 1388 | globalFlagBlockAgenda = 1; |
1363 | if (!merge) mCalendar->close(); | 1389 | if (!merge) mCalendar->close(); |
1364 | 1390 | ||
1365 | mStorage->setFileName( filename ); | 1391 | mStorage->setFileName( filename ); |
1366 | 1392 | ||
1367 | if ( mStorage->load(KOPrefs::instance()->mUseQuicksave) ) { | 1393 | if ( mStorage->load(KOPrefs::instance()->mUseQuicksave) ) { |
1368 | if ( merge ) ;//setModified( true ); | 1394 | if ( merge ) ;//setModified( true ); |
1369 | else { | 1395 | else { |
1370 | //setModified( true ); | 1396 | //setModified( true ); |
1371 | mViewManager->setDocumentId( filename ); | 1397 | mViewManager->setDocumentId( filename ); |
1372 | mDialogManager->setDocumentId( filename ); | 1398 | mDialogManager->setDocumentId( filename ); |
1373 | mTodoList->setDocumentId( filename ); | 1399 | mTodoList->setDocumentId( filename ); |
1374 | } | 1400 | } |
1375 | globalFlagBlockAgenda = 2; | 1401 | globalFlagBlockAgenda = 2; |
1376 | // if ( getLastSyncEvent() ) | 1402 | // if ( getLastSyncEvent() ) |
1377 | // getLastSyncEvent()->setReadOnly( true ); | 1403 | // getLastSyncEvent()->setReadOnly( true ); |
1378 | mCalendar->reInitAlarmSettings(); | 1404 | mCalendar->reInitAlarmSettings(); |
1379 | setSyncEventsReadOnly(); | 1405 | setSyncEventsReadOnly(); |
1380 | updateUnmanagedViews(); | 1406 | updateUnmanagedViews(); |
1381 | updateView(); | 1407 | updateView(); |
1382 | if ( filename != MainWindow::defaultFileName() ) | 1408 | if ( filename != MainWindow::defaultFileName() ) |
1383 | saveCalendar( MainWindow::defaultFileName() ); | 1409 | saveCalendar( MainWindow::defaultFileName() ); |
1384 | loadedFileVersion = QDateTime::currentDateTime(); | 1410 | loadedFileVersion = QDateTime::currentDateTime(); |
1385 | return true; | 1411 | return true; |
1386 | } else { | 1412 | } else { |
1387 | // while failing to load, the calendar object could | 1413 | // while failing to load, the calendar object could |
1388 | // have become partially populated. Clear it out. | 1414 | // have become partially populated. Clear it out. |
1389 | if ( !merge ) mCalendar->close(); | 1415 | if ( !merge ) mCalendar->close(); |
1390 | 1416 | ||
1391 | KMessageBox::error(this,i18n("Couldn't load calendar\n '%1'.").arg(filename)); | 1417 | KMessageBox::error(this,i18n("Couldn't load calendar\n '%1'.").arg(filename)); |
1392 | 1418 | ||
1393 | globalFlagBlockAgenda = 2; | 1419 | globalFlagBlockAgenda = 2; |
1394 | updateView(); | 1420 | updateView(); |
1395 | } | 1421 | } |
1396 | return false; | 1422 | return false; |
1397 | } | 1423 | } |
1398 | void CalendarView::setLoadedFileVersion(QDateTime dt) | 1424 | void CalendarView::setLoadedFileVersion(QDateTime dt) |
1399 | { | 1425 | { |
1400 | loadedFileVersion = dt; | 1426 | loadedFileVersion = dt; |
1401 | } | 1427 | } |
1402 | bool CalendarView::checkFileChanged(QString fn) | 1428 | bool CalendarView::checkFileChanged(QString fn) |
1403 | { | 1429 | { |
1404 | QFileInfo finf ( fn ); | 1430 | QFileInfo finf ( fn ); |
1405 | if ( !finf.exists() ) | 1431 | if ( !finf.exists() ) |
1406 | return true; | 1432 | return true; |
1407 | QDateTime dt = finf.lastModified (); | 1433 | QDateTime dt = finf.lastModified (); |
1408 | if ( dt <= loadedFileVersion ) | 1434 | if ( dt <= loadedFileVersion ) |
1409 | return false; | 1435 | return false; |
1410 | return true; | 1436 | return true; |
1411 | 1437 | ||
1412 | } | 1438 | } |
1413 | bool CalendarView::checkFileVersion(QString fn) | 1439 | bool CalendarView::checkFileVersion(QString fn) |
1414 | { | 1440 | { |
1415 | QFileInfo finf ( fn ); | 1441 | QFileInfo finf ( fn ); |
1416 | if ( !finf.exists() ) | 1442 | if ( !finf.exists() ) |
1417 | return true; | 1443 | return true; |
1418 | QDateTime dt = finf.lastModified (); | 1444 | QDateTime dt = finf.lastModified (); |
1419 | //qDebug("loaded file version %s",loadedFileVersion.toString().latin1()); | 1445 | //qDebug("loaded file version %s",loadedFileVersion.toString().latin1()); |
1420 | //qDebug("file on disk version %s",dt.toString().latin1()); | 1446 | //qDebug("file on disk version %s",dt.toString().latin1()); |
1421 | if ( dt <= loadedFileVersion ) | 1447 | if ( dt <= loadedFileVersion ) |
1422 | return true; | 1448 | return true; |
1423 | 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, false)) , | 1449 | 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, false)) , |
1424 | i18n("KO/Pi Warning"),i18n("Overwrite"), | 1450 | i18n("KO/Pi Warning"),i18n("Overwrite"), |
1425 | i18n("Sync+save")); | 1451 | i18n("Sync+save")); |
1426 | 1452 | ||
1427 | if ( km == KMessageBox::Cancel ) | 1453 | if ( km == KMessageBox::Cancel ) |
1428 | return false; | 1454 | return false; |
1429 | if ( km == KMessageBox::Yes ) | 1455 | if ( km == KMessageBox::Yes ) |
1430 | return true; | 1456 | return true; |
1431 | 1457 | ||
1432 | setSyncDevice("deleteaftersync" ); | 1458 | setSyncDevice("deleteaftersync" ); |
1433 | KOPrefs::instance()->mAskForPreferences = true; | 1459 | KOPrefs::instance()->mAskForPreferences = true; |
1434 | KOPrefs::instance()->mSyncAlgoPrefs = 3; | 1460 | KOPrefs::instance()->mSyncAlgoPrefs = 3; |
1435 | KOPrefs::instance()->mWriteBackFile = false; | 1461 | KOPrefs::instance()->mWriteBackFile = false; |
1436 | KOPrefs::instance()->mWriteBackExistingOnly = false; | 1462 | KOPrefs::instance()->mWriteBackExistingOnly = false; |
1437 | KOPrefs::instance()->mShowSyncSummary = false; | 1463 | KOPrefs::instance()->mShowSyncSummary = false; |
1438 | syncCalendar( fn, 3 ); | 1464 | syncCalendar( fn, 3 ); |
1439 | Event * e = getLastSyncEvent(); | 1465 | Event * e = getLastSyncEvent(); |
1440 | mCalendar->deleteEvent ( e ); | 1466 | mCalendar->deleteEvent ( e ); |
1441 | updateView(); | 1467 | updateView(); |
1442 | return true; | 1468 | return true; |
1443 | } | 1469 | } |
1444 | 1470 | ||
1445 | bool CalendarView::saveCalendar( QString filename ) | 1471 | bool CalendarView::saveCalendar( QString filename ) |
1446 | { | 1472 | { |
1447 | 1473 | ||
1448 | // Store back all unsaved data into calendar object | 1474 | // Store back all unsaved data into calendar object |
1449 | // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() ); | 1475 | // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() ); |
1450 | if ( mViewManager->currentView() ) | 1476 | if ( mViewManager->currentView() ) |
1451 | mViewManager->currentView()->flushView(); | 1477 | mViewManager->currentView()->flushView(); |
1452 | 1478 | ||
1453 | //mStorage->setFileName( filename ); | 1479 | //mStorage->setFileName( filename ); |
1454 | 1480 | ||
1455 | mStorage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); | 1481 | mStorage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); |
1456 | mStorage->setFileName( filename ); | 1482 | mStorage->setFileName( filename ); |
1457 | bool success; | 1483 | bool success; |
1458 | success = mStorage->save(); | 1484 | success = mStorage->save(); |
1459 | if ( !success ) { | 1485 | if ( !success ) { |
1460 | return false; | 1486 | return false; |
1461 | } | 1487 | } |
1462 | 1488 | ||
1463 | return true; | 1489 | return true; |
1464 | } | 1490 | } |
1465 | 1491 | ||
1466 | void CalendarView::closeCalendar() | 1492 | void CalendarView::closeCalendar() |
1467 | { | 1493 | { |
1468 | 1494 | ||
1469 | // child windows no longer valid | 1495 | // child windows no longer valid |
1470 | emit closingDown(); | 1496 | emit closingDown(); |
1471 | 1497 | ||
1472 | mCalendar->close(); | 1498 | mCalendar->close(); |
1473 | setModified(false); | 1499 | setModified(false); |
1474 | updateView(); | 1500 | updateView(); |
1475 | } | 1501 | } |
1476 | 1502 | ||
1477 | void CalendarView::archiveCalendar() | 1503 | void CalendarView::archiveCalendar() |
1478 | { | 1504 | { |
1479 | mDialogManager->showArchiveDialog(); | 1505 | mDialogManager->showArchiveDialog(); |
1480 | } | 1506 | } |
1481 | 1507 | ||
1482 | 1508 | ||
1483 | void CalendarView::readSettings() | 1509 | void CalendarView::readSettings() |
1484 | { | 1510 | { |
1485 | 1511 | ||
1486 | 1512 | ||
1487 | // mViewManager->showAgendaView(); | 1513 | // mViewManager->showAgendaView(); |
1488 | QString str; | 1514 | QString str; |
1489 | //qDebug("CalendarView::readSettings() "); | 1515 | //qDebug("CalendarView::readSettings() "); |
1490 | // read settings from the KConfig, supplying reasonable | 1516 | // read settings from the KConfig, supplying reasonable |
1491 | // defaults where none are to be found | 1517 | // defaults where none are to be found |
1492 | KConfig *config = KOGlobals::config(); | 1518 | KConfig *config = KOGlobals::config(); |
1493 | #ifndef KORG_NOSPLITTER | 1519 | #ifndef KORG_NOSPLITTER |
1494 | config->setGroup("KOrganizer Geometry"); | 1520 | config->setGroup("KOrganizer Geometry"); |
1495 | 1521 | ||
1496 | QValueList<int> sizes = config->readIntListEntry("Separator1"); | 1522 | QValueList<int> sizes = config->readIntListEntry("Separator1"); |
1497 | if (sizes.count() != 2) { | 1523 | if (sizes.count() != 2) { |
1498 | sizes << mDateNavigator->minimumSizeHint().width(); | 1524 | sizes << mDateNavigator->minimumSizeHint().width(); |
1499 | sizes << 300; | 1525 | sizes << 300; |
1500 | } | 1526 | } |
1501 | mPanner->setSizes(sizes); | 1527 | mPanner->setSizes(sizes); |
1502 | 1528 | ||
1503 | sizes = config->readIntListEntry("Separator2"); | 1529 | sizes = config->readIntListEntry("Separator2"); |
1504 | if ( ( mResourceView && sizes.count() == 4 ) || | 1530 | if ( ( mResourceView && sizes.count() == 4 ) || |
1505 | ( !mResourceView && sizes.count() == 3 ) ) { | 1531 | ( !mResourceView && sizes.count() == 3 ) ) { |
1506 | mLeftSplitter->setSizes(sizes); | 1532 | mLeftSplitter->setSizes(sizes); |
1507 | } | 1533 | } |
1508 | #endif | 1534 | #endif |
1509 | globalFlagBlockAgenda = 1; | 1535 | globalFlagBlockAgenda = 1; |
1510 | mViewManager->showAgendaView(); | 1536 | mViewManager->showAgendaView(); |
1511 | //mViewManager->readSettings( config ); | 1537 | //mViewManager->readSettings( config ); |
1512 | mTodoList->restoreLayout(config,QString("Todo Layout")); | 1538 | mTodoList->restoreLayout(config,QString("Todo Layout")); |
1513 | readFilterSettings(config); | 1539 | readFilterSettings(config); |
1514 | config->setGroup( "Views" ); | 1540 | config->setGroup( "Views" ); |
1515 | int dateCount = config->readNumEntry( "ShownDatesCount", 7 ); | 1541 | int dateCount = config->readNumEntry( "ShownDatesCount", 7 ); |
1516 | if ( dateCount == 5 ) mNavigator->selectWorkWeek(); | 1542 | if ( dateCount == 5 ) mNavigator->selectWorkWeek(); |
1517 | else if ( dateCount == 7 ) mNavigator->selectWeek(); | 1543 | else if ( dateCount == 7 ) mNavigator->selectWeek(); |
1518 | else mNavigator->selectDates( dateCount ); | 1544 | else mNavigator->selectDates( dateCount ); |
1519 | // mViewManager->readSettings( config ); | 1545 | // mViewManager->readSettings( config ); |
1520 | updateConfig(); | 1546 | updateConfig(); |
1521 | globalFlagBlockAgenda = 2; | 1547 | globalFlagBlockAgenda = 2; |
1522 | mViewManager->readSettings( config ); | 1548 | mViewManager->readSettings( config ); |
1523 | #ifdef DESKTOP_VERSION | 1549 | #ifdef DESKTOP_VERSION |
1524 | config->setGroup("WidgetLayout"); | 1550 | config->setGroup("WidgetLayout"); |
1525 | QStringList list; | 1551 | QStringList list; |
1526 | list = config->readListEntry("MainLayout"); | 1552 | list = config->readListEntry("MainLayout"); |
1527 | int x,y,w,h; | 1553 | int x,y,w,h; |
1528 | if ( ! list.isEmpty() ) { | 1554 | if ( ! list.isEmpty() ) { |
1529 | x = list[0].toInt(); | 1555 | x = list[0].toInt(); |
1530 | y = list[1].toInt(); | 1556 | y = list[1].toInt(); |
1531 | w = list[2].toInt(); | 1557 | w = list[2].toInt(); |
1532 | h = list[3].toInt(); | 1558 | h = list[3].toInt(); |
1533 | topLevelWidget()->setGeometry(x,y,w,h); | 1559 | topLevelWidget()->setGeometry(x,y,w,h); |
1534 | 1560 | ||
1535 | } else { | 1561 | } else { |
1536 | topLevelWidget()->setGeometry( 40 ,40 , 640, 440); | 1562 | topLevelWidget()->setGeometry( 40 ,40 , 640, 440); |
1537 | } | 1563 | } |
1538 | list = config->readListEntry("EditEventLayout"); | 1564 | list = config->readListEntry("EditEventLayout"); |
1539 | if ( ! list.isEmpty() ) { | 1565 | if ( ! list.isEmpty() ) { |
1540 | x = list[0].toInt(); | 1566 | x = list[0].toInt(); |
1541 | y = list[1].toInt(); | 1567 | y = list[1].toInt(); |
1542 | w = list[2].toInt(); | 1568 | w = list[2].toInt(); |
1543 | h = list[3].toInt(); | 1569 | h = list[3].toInt(); |
1544 | mEventEditor->setGeometry(x,y,w,h); | 1570 | mEventEditor->setGeometry(x,y,w,h); |
1545 | 1571 | ||
1546 | } | 1572 | } |
1547 | list = config->readListEntry("EditTodoLayout"); | 1573 | list = config->readListEntry("EditTodoLayout"); |
1548 | if ( ! list.isEmpty() ) { | 1574 | if ( ! list.isEmpty() ) { |
1549 | x = list[0].toInt(); | 1575 | x = list[0].toInt(); |
1550 | y = list[1].toInt(); | 1576 | y = list[1].toInt(); |
1551 | w = list[2].toInt(); | 1577 | w = list[2].toInt(); |
1552 | h = list[3].toInt(); | 1578 | h = list[3].toInt(); |
1553 | mTodoEditor->setGeometry(x,y,w,h); | 1579 | mTodoEditor->setGeometry(x,y,w,h); |
1554 | 1580 | ||
1555 | } | 1581 | } |
1556 | list = config->readListEntry("ViewerLayout"); | 1582 | list = config->readListEntry("ViewerLayout"); |
1557 | if ( ! list.isEmpty() ) { | 1583 | if ( ! list.isEmpty() ) { |
1558 | x = list[0].toInt(); | 1584 | x = list[0].toInt(); |
1559 | y = list[1].toInt(); | 1585 | y = list[1].toInt(); |
1560 | w = list[2].toInt(); | 1586 | w = list[2].toInt(); |
1561 | h = list[3].toInt(); | 1587 | h = list[3].toInt(); |
1562 | getEventViewerDialog()->setGeometry(x,y,w,h); | 1588 | getEventViewerDialog()->setGeometry(x,y,w,h); |
1563 | } | 1589 | } |
1564 | #endif | 1590 | #endif |
1565 | 1591 | ||
1566 | } | 1592 | } |
1567 | 1593 | ||
1568 | 1594 | ||
1569 | void CalendarView::writeSettings() | 1595 | void CalendarView::writeSettings() |
1570 | { | 1596 | { |
1571 | // kdDebug() << "CalendarView::writeSettings" << endl; | 1597 | // kdDebug() << "CalendarView::writeSettings" << endl; |
1572 | 1598 | ||
1573 | KConfig *config = KOGlobals::config(); | 1599 | KConfig *config = KOGlobals::config(); |
1574 | 1600 | ||
1575 | #ifndef KORG_NOSPLITTER | 1601 | #ifndef KORG_NOSPLITTER |
1576 | config->setGroup("KOrganizer Geometry"); | 1602 | config->setGroup("KOrganizer Geometry"); |
1577 | 1603 | ||
1578 | QValueList<int> list = mPanner->sizes(); | 1604 | QValueList<int> list = mPanner->sizes(); |
1579 | config->writeEntry("Separator1",list); | 1605 | config->writeEntry("Separator1",list); |
1580 | 1606 | ||
1581 | list = mLeftSplitter->sizes(); | 1607 | list = mLeftSplitter->sizes(); |
1582 | config->writeEntry("Separator2",list); | 1608 | config->writeEntry("Separator2",list); |
1583 | #endif | 1609 | #endif |
1584 | 1610 | ||
1585 | mViewManager->writeSettings( config ); | 1611 | mViewManager->writeSettings( config ); |
1586 | mTodoList->saveLayout(config,QString("Todo Layout")); | 1612 | mTodoList->saveLayout(config,QString("Todo Layout")); |
1587 | mDialogManager->writeSettings( config ); | 1613 | mDialogManager->writeSettings( config ); |
1588 | //KOPrefs::instance()->usrWriteConfig(); | 1614 | //KOPrefs::instance()->usrWriteConfig(); |
1589 | KOPrefs::instance()->writeConfig(); | 1615 | KOPrefs::instance()->writeConfig(); |
1590 | 1616 | ||
1591 | writeFilterSettings(config); | 1617 | writeFilterSettings(config); |
1592 | 1618 | ||
1593 | config->setGroup( "Views" ); | 1619 | config->setGroup( "Views" ); |
1594 | config->writeEntry( "ShownDatesCount", mNavigator->selectedDates().count() ); | 1620 | config->writeEntry( "ShownDatesCount", mNavigator->selectedDates().count() ); |
1595 | 1621 | ||
1596 | #ifdef DESKTOP_VERSION | 1622 | #ifdef DESKTOP_VERSION |
1597 | config->setGroup("WidgetLayout"); | 1623 | config->setGroup("WidgetLayout"); |
1598 | QStringList list ;//= config->readListEntry("MainLayout"); | 1624 | QStringList list ;//= config->readListEntry("MainLayout"); |
1599 | int x,y,w,h; | 1625 | int x,y,w,h; |
1600 | QWidget* wid; | 1626 | QWidget* wid; |
1601 | wid = topLevelWidget(); | 1627 | wid = topLevelWidget(); |
1602 | x = wid->geometry().x(); | 1628 | x = wid->geometry().x(); |
1603 | y = wid->geometry().y(); | 1629 | y = wid->geometry().y(); |
1604 | w = wid->width(); | 1630 | w = wid->width(); |
1605 | h = wid->height(); | 1631 | h = wid->height(); |
1606 | list.clear(); | 1632 | list.clear(); |
1607 | list << QString::number( x ); | 1633 | list << QString::number( x ); |
1608 | list << QString::number( y ); | 1634 | list << QString::number( y ); |
1609 | list << QString::number( w ); | 1635 | list << QString::number( w ); |
1610 | list << QString::number( h ); | 1636 | list << QString::number( h ); |
1611 | config->writeEntry("MainLayout",list ); | 1637 | config->writeEntry("MainLayout",list ); |
1612 | 1638 | ||
1613 | wid = mEventEditor; | 1639 | wid = mEventEditor; |
1614 | x = wid->geometry().x(); | 1640 | x = wid->geometry().x(); |
1615 | y = wid->geometry().y(); | 1641 | y = wid->geometry().y(); |
1616 | w = wid->width(); | 1642 | w = wid->width(); |
1617 | h = wid->height(); | 1643 | h = wid->height(); |
1618 | list.clear(); | 1644 | list.clear(); |
1619 | list << QString::number( x ); | 1645 | list << QString::number( x ); |
1620 | list << QString::number( y ); | 1646 | list << QString::number( y ); |
1621 | list << QString::number( w ); | 1647 | list << QString::number( w ); |
1622 | list << QString::number( h ); | 1648 | list << QString::number( h ); |
1623 | config->writeEntry("EditEventLayout",list ); | 1649 | config->writeEntry("EditEventLayout",list ); |
1624 | 1650 | ||
1625 | wid = mTodoEditor; | 1651 | wid = mTodoEditor; |
1626 | x = wid->geometry().x(); | 1652 | x = wid->geometry().x(); |
1627 | y = wid->geometry().y(); | 1653 | y = wid->geometry().y(); |
1628 | w = wid->width(); | 1654 | w = wid->width(); |
1629 | h = wid->height(); | 1655 | h = wid->height(); |
1630 | list.clear(); | 1656 | list.clear(); |
1631 | list << QString::number( x ); | 1657 | list << QString::number( x ); |
1632 | list << QString::number( y ); | 1658 | list << QString::number( y ); |
1633 | list << QString::number( w ); | 1659 | list << QString::number( w ); |
1634 | list << QString::number( h ); | 1660 | list << QString::number( h ); |
1635 | config->writeEntry("EditTodoLayout",list ); | 1661 | config->writeEntry("EditTodoLayout",list ); |
1636 | wid = getEventViewerDialog(); | 1662 | wid = getEventViewerDialog(); |
1637 | x = wid->geometry().x(); | 1663 | x = wid->geometry().x(); |
1638 | y = wid->geometry().y(); | 1664 | y = wid->geometry().y(); |
1639 | w = wid->width(); | 1665 | w = wid->width(); |
1640 | h = wid->height(); | 1666 | h = wid->height(); |
1641 | list.clear(); | 1667 | list.clear(); |
1642 | list << QString::number( x ); | 1668 | list << QString::number( x ); |
1643 | list << QString::number( y ); | 1669 | list << QString::number( y ); |
1644 | list << QString::number( w ); | 1670 | list << QString::number( w ); |
1645 | list << QString::number( h ); | 1671 | list << QString::number( h ); |
1646 | config->writeEntry("ViewerLayout",list ); | 1672 | config->writeEntry("ViewerLayout",list ); |
1647 | wid = mDialogManager->getSearchDialog(); | 1673 | wid = mDialogManager->getSearchDialog(); |
1648 | if ( wid ) { | 1674 | if ( wid ) { |
1649 | x = wid->geometry().x(); | 1675 | x = wid->geometry().x(); |
1650 | y = wid->geometry().y(); | 1676 | y = wid->geometry().y(); |
1651 | w = wid->width(); | 1677 | w = wid->width(); |
1652 | h = wid->height(); | 1678 | h = wid->height(); |
1653 | list.clear(); | 1679 | list.clear(); |
1654 | list << QString::number( x ); | 1680 | list << QString::number( x ); |
1655 | list << QString::number( y ); | 1681 | list << QString::number( y ); |
1656 | list << QString::number( w ); | 1682 | list << QString::number( w ); |
1657 | list << QString::number( h ); | 1683 | list << QString::number( h ); |
1658 | config->writeEntry("SearchLayout",list ); | 1684 | config->writeEntry("SearchLayout",list ); |
1659 | } | 1685 | } |
1660 | #endif | 1686 | #endif |
1661 | 1687 | ||
1662 | 1688 | ||
1663 | config->sync(); | 1689 | config->sync(); |
1664 | } | 1690 | } |
1665 | 1691 | ||
1666 | void CalendarView::readFilterSettings(KConfig *config) | 1692 | void CalendarView::readFilterSettings(KConfig *config) |
1667 | { | 1693 | { |
1668 | // kdDebug() << "CalendarView::readFilterSettings()" << endl; | 1694 | // kdDebug() << "CalendarView::readFilterSettings()" << endl; |
1669 | 1695 | ||
1670 | mFilters.clear(); | 1696 | mFilters.clear(); |
1671 | 1697 | ||
1672 | config->setGroup("General"); | 1698 | config->setGroup("General"); |
1673 | QStringList filterList = config->readListEntry("CalendarFilters"); | 1699 | QStringList filterList = config->readListEntry("CalendarFilters"); |
1674 | 1700 | ||
1675 | QStringList::ConstIterator it = filterList.begin(); | 1701 | QStringList::ConstIterator it = filterList.begin(); |
1676 | QStringList::ConstIterator end = filterList.end(); | 1702 | QStringList::ConstIterator end = filterList.end(); |
1677 | while(it != end) { | 1703 | while(it != end) { |
1678 | // kdDebug() << " filter: " << (*it) << endl; | 1704 | // kdDebug() << " filter: " << (*it) << endl; |
1679 | 1705 | ||
1680 | CalFilter *filter; | 1706 | CalFilter *filter; |
1681 | filter = new CalFilter(*it); | 1707 | filter = new CalFilter(*it); |
1682 | config->setGroup("Filter_" + (*it)); | 1708 | config->setGroup("Filter_" + (*it)); |
1683 | //qDebug("readFilterSettings %d ",config->readNumEntry("Criteria",0) ); | 1709 | //qDebug("readFilterSettings %d ",config->readNumEntry("Criteria",0) ); |
1684 | filter->setCriteria(config->readNumEntry("Criteria",0)); | 1710 | filter->setCriteria(config->readNumEntry("Criteria",0)); |
1685 | filter->setCategoryList(config->readListEntry("CategoryList")); | 1711 | filter->setCategoryList(config->readListEntry("CategoryList")); |
1686 | mFilters.append(filter); | 1712 | mFilters.append(filter); |
1687 | 1713 | ||
1688 | ++it; | 1714 | ++it; |
1689 | } | 1715 | } |
1690 | 1716 | ||
1691 | if (mFilters.count() == 0) { | 1717 | if (mFilters.count() == 0) { |
1692 | CalFilter *filter = new CalFilter(i18n("Default")); | 1718 | CalFilter *filter = new CalFilter(i18n("Default")); |
1693 | mFilters.append(filter); | 1719 | mFilters.append(filter); |
1694 | } | 1720 | } |
1695 | mFilterView->updateFilters(); | 1721 | mFilterView->updateFilters(); |
1696 | config->setGroup("FilterView"); | 1722 | config->setGroup("FilterView"); |
1697 | 1723 | ||
1698 | mFilterView->blockSignals(true); | 1724 | mFilterView->blockSignals(true); |
1699 | mFilterView->setFiltersEnabled(config->readBoolEntry("FilterEnabled")); | 1725 | mFilterView->setFiltersEnabled(config->readBoolEntry("FilterEnabled")); |
1700 | mFilterView->setSelectedFilter(config->readEntry("Current Filter")); | 1726 | mFilterView->setSelectedFilter(config->readEntry("Current Filter")); |
1701 | mFilterView->blockSignals(false); | 1727 | mFilterView->blockSignals(false); |
1702 | // We do it manually to avoid it being done twice by the above calls | 1728 | // We do it manually to avoid it being done twice by the above calls |
1703 | updateFilter(); | 1729 | updateFilter(); |
1704 | } | 1730 | } |
1705 | 1731 | ||
1706 | void CalendarView::writeFilterSettings(KConfig *config) | 1732 | void CalendarView::writeFilterSettings(KConfig *config) |
1707 | { | 1733 | { |
1708 | // kdDebug() << "CalendarView::writeFilterSettings()" << endl; | 1734 | // kdDebug() << "CalendarView::writeFilterSettings()" << endl; |
1709 | 1735 | ||
1710 | QStringList filterList; | 1736 | QStringList filterList; |
1711 | 1737 | ||
1712 | CalFilter *filter = mFilters.first(); | 1738 | CalFilter *filter = mFilters.first(); |
1713 | while(filter) { | 1739 | while(filter) { |
1714 | // kdDebug() << " fn: " << filter->name() << endl; | 1740 | // kdDebug() << " fn: " << filter->name() << endl; |
1715 | filterList << filter->name(); | 1741 | filterList << filter->name(); |
1716 | config->setGroup("Filter_" + filter->name()); | 1742 | config->setGroup("Filter_" + filter->name()); |
1717 | config->writeEntry("Criteria",filter->criteria()); | 1743 | config->writeEntry("Criteria",filter->criteria()); |
1718 | config->writeEntry("CategoryList",filter->categoryList()); | 1744 | config->writeEntry("CategoryList",filter->categoryList()); |
1719 | filter = mFilters.next(); | 1745 | filter = mFilters.next(); |
1720 | } | 1746 | } |
1721 | config->setGroup("General"); | 1747 | config->setGroup("General"); |
1722 | config->writeEntry("CalendarFilters",filterList); | 1748 | config->writeEntry("CalendarFilters",filterList); |
1723 | 1749 | ||
1724 | config->setGroup("FilterView"); | 1750 | config->setGroup("FilterView"); |
1725 | config->writeEntry("FilterEnabled",mFilterView->filtersEnabled()); | 1751 | config->writeEntry("FilterEnabled",mFilterView->filtersEnabled()); |
1726 | config->writeEntry("Current Filter",mFilterView->selectedFilter()->name()); | 1752 | config->writeEntry("Current Filter",mFilterView->selectedFilter()->name()); |
1727 | } | 1753 | } |
1728 | 1754 | ||
1729 | 1755 | ||
1730 | void CalendarView::goToday() | 1756 | void CalendarView::goToday() |
1731 | { | 1757 | { |
1732 | mNavigator->selectToday(); | 1758 | mNavigator->selectToday(); |
1733 | } | 1759 | } |
1734 | 1760 | ||
1735 | void CalendarView::goNext() | 1761 | void CalendarView::goNext() |
1736 | { | 1762 | { |
1737 | mNavigator->selectNext(); | 1763 | mNavigator->selectNext(); |
1738 | } | 1764 | } |
1739 | 1765 | ||
1740 | void CalendarView::goPrevious() | 1766 | void CalendarView::goPrevious() |
1741 | { | 1767 | { |
1742 | mNavigator->selectPrevious(); | 1768 | mNavigator->selectPrevious(); |
1743 | } | 1769 | } |
1744 | void CalendarView::goNextMonth() | 1770 | void CalendarView::goNextMonth() |
1745 | { | 1771 | { |
1746 | mNavigator->selectNextMonth(); | 1772 | mNavigator->selectNextMonth(); |
1747 | } | 1773 | } |
1748 | 1774 | ||
1749 | void CalendarView::goPreviousMonth() | 1775 | void CalendarView::goPreviousMonth() |
1750 | { | 1776 | { |
1751 | mNavigator->selectPreviousMonth(); | 1777 | mNavigator->selectPreviousMonth(); |
1752 | } | 1778 | } |
1753 | void CalendarView::writeLocale() | 1779 | void CalendarView::writeLocale() |
1754 | { | 1780 | { |
1755 | KGlobal::locale()->setHore24Format( !KOPrefs::instance()->mPreferredTime ); | 1781 | KGlobal::locale()->setHore24Format( !KOPrefs::instance()->mPreferredTime ); |
1756 | KGlobal::locale()->setWeekStartMonday( !KOPrefs::instance()->mWeekStartsOnSunday ); | 1782 | KGlobal::locale()->setWeekStartMonday( !KOPrefs::instance()->mWeekStartsOnSunday ); |
1757 | KGlobal::locale()->setIntDateFormat( (KLocale::IntDateFormat)KOPrefs::instance()->mPreferredDate ); | 1783 | KGlobal::locale()->setIntDateFormat( (KLocale::IntDateFormat)KOPrefs::instance()->mPreferredDate ); |
1758 | KGlobal::locale()->setLanguage( KOPrefs::instance()->mPreferredLanguage ); | 1784 | KGlobal::locale()->setLanguage( KOPrefs::instance()->mPreferredLanguage ); |
1759 | QString dummy = KOPrefs::instance()->mUserDateFormatLong; | 1785 | QString dummy = KOPrefs::instance()->mUserDateFormatLong; |
1760 | KGlobal::locale()->setDateFormat(dummy.replace( QRegExp("K"), QString(",") )); | 1786 | KGlobal::locale()->setDateFormat(dummy.replace( QRegExp("K"), QString(",") )); |
1761 | dummy = KOPrefs::instance()->mUserDateFormatShort; | 1787 | dummy = KOPrefs::instance()->mUserDateFormatShort; |
1762 | KGlobal::locale()->setDateFormatShort(dummy.replace( QRegExp("K"), QString(",") )); | 1788 | KGlobal::locale()->setDateFormatShort(dummy.replace( QRegExp("K"), QString(",") )); |
1763 | KGlobal::locale()->setDaylightSaving( KOPrefs::instance()->mUseDaylightsaving, | 1789 | KGlobal::locale()->setDaylightSaving( KOPrefs::instance()->mUseDaylightsaving, |
1764 | KOPrefs::instance()->mDaylightsavingStart, | 1790 | KOPrefs::instance()->mDaylightsavingStart, |
1765 | KOPrefs::instance()->mDaylightsavingEnd ); | 1791 | KOPrefs::instance()->mDaylightsavingEnd ); |
1766 | KGlobal::locale()->setTimezone( KOPrefs::instance()->mTimeZoneId ); | 1792 | KGlobal::locale()->setTimezone( KOPrefs::instance()->mTimeZoneId ); |
1767 | } | 1793 | } |
1768 | void CalendarView::updateConfig() | 1794 | void CalendarView::updateConfig() |
1769 | { | 1795 | { |
1770 | writeLocale(); | 1796 | writeLocale(); |
1771 | if ( KOPrefs::instance()->mUseAppColors ) | 1797 | if ( KOPrefs::instance()->mUseAppColors ) |
1772 | QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); | 1798 | QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); |
1773 | emit configChanged(); | 1799 | emit configChanged(); |
1774 | mTodoList->updateConfig(); | 1800 | mTodoList->updateConfig(); |
1775 | // mDateNavigator->setFont ( KOPrefs::instance()->mDateNavigatorFont); | 1801 | // mDateNavigator->setFont ( KOPrefs::instance()->mDateNavigatorFont); |
1776 | mCalendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); | 1802 | mCalendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); |
1777 | // To make the "fill window" configurations work | 1803 | // To make the "fill window" configurations work |
1778 | //mViewManager->raiseCurrentView(); | 1804 | //mViewManager->raiseCurrentView(); |
1779 | } | 1805 | } |
1780 | 1806 | ||
1781 | 1807 | ||
1782 | void CalendarView::eventChanged(Event *event) | 1808 | void CalendarView::eventChanged(Event *event) |
1783 | { | 1809 | { |
1784 | changeEventDisplay(event,KOGlobals::EVENTEDITED); | 1810 | changeEventDisplay(event,KOGlobals::EVENTEDITED); |
1785 | //updateUnmanagedViews(); | 1811 | //updateUnmanagedViews(); |
1786 | } | 1812 | } |
1787 | 1813 | ||
1788 | void CalendarView::eventAdded(Event *event) | 1814 | void CalendarView::eventAdded(Event *event) |
1789 | { | 1815 | { |
1790 | changeEventDisplay(event,KOGlobals::EVENTADDED); | 1816 | changeEventDisplay(event,KOGlobals::EVENTADDED); |
1791 | } | 1817 | } |
1792 | 1818 | ||
1793 | void CalendarView::eventToBeDeleted(Event *) | 1819 | void CalendarView::eventToBeDeleted(Event *) |
1794 | { | 1820 | { |
1795 | kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl; | 1821 | kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl; |
1796 | } | 1822 | } |
1797 | 1823 | ||
1798 | void CalendarView::eventDeleted() | 1824 | void CalendarView::eventDeleted() |
1799 | { | 1825 | { |
1800 | changeEventDisplay(0,KOGlobals::EVENTDELETED); | 1826 | changeEventDisplay(0,KOGlobals::EVENTDELETED); |
1801 | } | 1827 | } |
1802 | void CalendarView::changeTodoDisplay(Todo *which, int action) | 1828 | void CalendarView::changeTodoDisplay(Todo *which, int action) |
1803 | { | 1829 | { |
1804 | changeIncidenceDisplay((Incidence *)which, action); | 1830 | changeIncidenceDisplay((Incidence *)which, action); |
1805 | } | 1831 | } |
1806 | void CalendarView::checkZaurusId( int id, bool todo ) | 1832 | void CalendarView::checkZaurusId( int id, bool todo ) |
1807 | { | 1833 | { |
1808 | if ( id >= 0 ) { | 1834 | if ( id >= 0 ) { |
1809 | Incidence* lse = mCalendar->event( "last-syncEvent-device-Sharp-DTM"); | 1835 | Incidence* lse = mCalendar->event( "last-syncEvent-Sharp-DTM"); |
1810 | if ( lse ) { | 1836 | if ( lse ) { |
1811 | QString des = lse->description(); | 1837 | QString des = lse->description(); |
1812 | QString pref = "e"; | 1838 | QString pref = "e"; |
1813 | if ( todo ) | 1839 | if ( todo ) |
1814 | pref = "t"; | 1840 | pref = "t"; |
1815 | des += pref+ QString::number ( id ) + ","; | 1841 | des += pref+ QString::number ( id ) + ","; |
1816 | lse->setReadOnly( false ); | 1842 | lse->setReadOnly( false ); |
1817 | lse->setDescription( des ); | 1843 | lse->setDescription( des ); |
1818 | lse->setReadOnly( true ); | 1844 | lse->setReadOnly( true ); |
1819 | } | 1845 | } |
1820 | } | 1846 | } |
1821 | } | 1847 | } |
1822 | void CalendarView::changeIncidenceDisplay(Incidence *which, int action) | 1848 | void CalendarView::changeIncidenceDisplay(Incidence *which, int action) |
1823 | { | 1849 | { |
1824 | updateUnmanagedViews(); | 1850 | updateUnmanagedViews(); |
1825 | //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action ); | 1851 | //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action ); |
1826 | if ( action == KOGlobals::EVENTDELETED ) { //delete | 1852 | if ( action == KOGlobals::EVENTDELETED ) { //delete |
1827 | mCalendar->checkAlarmForIncidence( 0, true ); | 1853 | mCalendar->checkAlarmForIncidence( 0, true ); |
1828 | if ( mEventViewerDialog ) | 1854 | if ( mEventViewerDialog ) |
1829 | mEventViewerDialog->hide(); | 1855 | mEventViewerDialog->hide(); |
1830 | } | 1856 | } |
1831 | else | 1857 | else |
1832 | mCalendar->checkAlarmForIncidence( which , false ); | 1858 | mCalendar->checkAlarmForIncidence( which , false ); |
1833 | } | 1859 | } |
1834 | 1860 | ||
1835 | // most of the changeEventDisplays() right now just call the view's | 1861 | // most of the changeEventDisplays() right now just call the view's |
1836 | // total update mode, but they SHOULD be recoded to be more refresh-efficient. | 1862 | // total update mode, but they SHOULD be recoded to be more refresh-efficient. |
1837 | void CalendarView::changeEventDisplay(Event *which, int action) | 1863 | void CalendarView::changeEventDisplay(Event *which, int action) |
1838 | { | 1864 | { |
1839 | // kdDebug() << "CalendarView::changeEventDisplay" << endl; | 1865 | // kdDebug() << "CalendarView::changeEventDisplay" << endl; |
1840 | changeIncidenceDisplay((Incidence *)which, action); | 1866 | changeIncidenceDisplay((Incidence *)which, action); |
1841 | mDateNavigator->updateView(); | 1867 | mDateNavigator->updateView(); |
1842 | //mDialogManager->updateSearchDialog(); | 1868 | //mDialogManager->updateSearchDialog(); |
1843 | 1869 | ||
1844 | if (which) { | 1870 | if (which) { |
1845 | // If there is an event view visible update the display | 1871 | // If there is an event view visible update the display |
1846 | mViewManager->currentView()->changeEventDisplay(which,action); | 1872 | mViewManager->currentView()->changeEventDisplay(which,action); |
1847 | // TODO: check, if update needed | 1873 | // TODO: check, if update needed |
1848 | // if (which->getTodoStatus()) { | 1874 | // if (which->getTodoStatus()) { |
1849 | mTodoList->updateView(); | 1875 | mTodoList->updateView(); |
1850 | // } | 1876 | // } |
1851 | } else { | 1877 | } else { |
1852 | mViewManager->currentView()->updateView(); | 1878 | mViewManager->currentView()->updateView(); |
1853 | } | 1879 | } |
1854 | } | 1880 | } |
1855 | 1881 | ||
1856 | 1882 | ||
1857 | void CalendarView::updateTodoViews() | 1883 | void CalendarView::updateTodoViews() |
1858 | { | 1884 | { |
1859 | 1885 | ||
1860 | mTodoList->updateView(); | 1886 | mTodoList->updateView(); |
1861 | mViewManager->currentView()->updateView(); | 1887 | mViewManager->currentView()->updateView(); |
1862 | 1888 | ||
1863 | } | 1889 | } |
1864 | 1890 | ||
1865 | 1891 | ||
1866 | void CalendarView::updateView(const QDate &start, const QDate &end) | 1892 | void CalendarView::updateView(const QDate &start, const QDate &end) |
1867 | { | 1893 | { |
1868 | mTodoList->updateView(); | 1894 | mTodoList->updateView(); |
1869 | mViewManager->updateView(start, end); | 1895 | mViewManager->updateView(start, end); |
1870 | //mDateNavigator->updateView(); | 1896 | //mDateNavigator->updateView(); |
1871 | } | 1897 | } |
1872 | 1898 | ||
1873 | void CalendarView::updateView() | 1899 | void CalendarView::updateView() |
1874 | { | 1900 | { |
1875 | DateList tmpList = mNavigator->selectedDates(); | 1901 | DateList tmpList = mNavigator->selectedDates(); |
1876 | 1902 | ||
1877 | // We assume that the navigator only selects consecutive days. | 1903 | // We assume that the navigator only selects consecutive days. |
1878 | updateView( tmpList.first(), tmpList.last() ); | 1904 | updateView( tmpList.first(), tmpList.last() ); |
1879 | } | 1905 | } |
1880 | 1906 | ||
1881 | void CalendarView::updateUnmanagedViews() | 1907 | void CalendarView::updateUnmanagedViews() |
1882 | { | 1908 | { |
1883 | mDateNavigator->updateDayMatrix(); | 1909 | mDateNavigator->updateDayMatrix(); |
1884 | } | 1910 | } |
1885 | 1911 | ||
1886 | int CalendarView::msgItemDelete() | 1912 | int CalendarView::msgItemDelete() |
1887 | { | 1913 | { |
1888 | return KMessageBox::warningContinueCancel(this, | 1914 | return KMessageBox::warningContinueCancel(this, |
1889 | i18n("This item will be\npermanently deleted."), | 1915 | i18n("This item will be\npermanently deleted."), |
1890 | i18n("KO/Pi Confirmation"),i18n("Delete")); | 1916 | i18n("KO/Pi Confirmation"),i18n("Delete")); |
1891 | } | 1917 | } |
1892 | 1918 | ||
1893 | 1919 | ||
1894 | void CalendarView::edit_cut() | 1920 | void CalendarView::edit_cut() |
1895 | { | 1921 | { |
1896 | Event *anEvent=0; | 1922 | Event *anEvent=0; |
1897 | 1923 | ||
1898 | Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); | 1924 | Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); |
1899 | 1925 | ||
1900 | if (mViewManager->currentView()->isEventView()) { | 1926 | if (mViewManager->currentView()->isEventView()) { |
1901 | if ( incidence && incidence->type() == "Event" ) { | 1927 | if ( incidence && incidence->type() == "Event" ) { |
1902 | anEvent = static_cast<Event *>(incidence); | 1928 | anEvent = static_cast<Event *>(incidence); |
1903 | } | 1929 | } |
1904 | } | 1930 | } |
1905 | 1931 | ||
1906 | if (!anEvent) { | 1932 | if (!anEvent) { |
1907 | KNotifyClient::beep(); | 1933 | KNotifyClient::beep(); |
1908 | return; | 1934 | return; |
1909 | } | 1935 | } |
1910 | DndFactory factory( mCalendar ); | 1936 | DndFactory factory( mCalendar ); |
1911 | factory.cutEvent(anEvent); | 1937 | factory.cutEvent(anEvent); |
1912 | changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); | 1938 | changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); |
1913 | } | 1939 | } |
1914 | 1940 | ||
1915 | void CalendarView::edit_copy() | 1941 | void CalendarView::edit_copy() |
1916 | { | 1942 | { |
1917 | Event *anEvent=0; | 1943 | Event *anEvent=0; |
1918 | 1944 | ||
1919 | Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); | 1945 | Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); |
1920 | 1946 | ||
1921 | if (mViewManager->currentView()->isEventView()) { | 1947 | if (mViewManager->currentView()->isEventView()) { |
1922 | if ( incidence && incidence->type() == "Event" ) { | 1948 | if ( incidence && incidence->type() == "Event" ) { |
1923 | anEvent = static_cast<Event *>(incidence); | 1949 | anEvent = static_cast<Event *>(incidence); |
1924 | } | 1950 | } |
1925 | } | 1951 | } |
1926 | 1952 | ||
1927 | if (!anEvent) { | 1953 | if (!anEvent) { |
1928 | KNotifyClient::beep(); | 1954 | KNotifyClient::beep(); |
1929 | return; | 1955 | return; |
1930 | } | 1956 | } |
1931 | DndFactory factory( mCalendar ); | 1957 | DndFactory factory( mCalendar ); |
1932 | factory.copyEvent(anEvent); | 1958 | factory.copyEvent(anEvent); |
1933 | } | 1959 | } |
1934 | 1960 | ||
1935 | void CalendarView::edit_paste() | 1961 | void CalendarView::edit_paste() |
1936 | { | 1962 | { |
1937 | QDate date = mNavigator->selectedDates().first(); | 1963 | QDate date = mNavigator->selectedDates().first(); |
1938 | 1964 | ||
1939 | DndFactory factory( mCalendar ); | 1965 | DndFactory factory( mCalendar ); |
1940 | Event *pastedEvent = factory.pasteEvent( date ); | 1966 | Event *pastedEvent = factory.pasteEvent( date ); |
1941 | 1967 | ||
1942 | changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED ); | 1968 | changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED ); |
1943 | } | 1969 | } |
1944 | 1970 | ||
1945 | void CalendarView::edit_options() | 1971 | void CalendarView::edit_options() |
1946 | { | 1972 | { |
1947 | mDialogManager->showOptionsDialog(); | 1973 | mDialogManager->showOptionsDialog(); |
1948 | //writeSettings(); | 1974 | //writeSettings(); |
1949 | } | 1975 | } |
1950 | void CalendarView::edit_sync_options() | 1976 | void CalendarView::edit_sync_options() |
1951 | { | 1977 | { |
1952 | //mDialogManager->showSyncOptions(); | 1978 | //mDialogManager->showSyncOptions(); |
1953 | //KOPrefs::instance()->mSyncAlgoPrefs | 1979 | //KOPrefs::instance()->mSyncAlgoPrefs |
1954 | QDialog dia( this, "dia", true ); | 1980 | QDialog dia( this, "dia", true ); |
1955 | dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice ); | 1981 | dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice ); |
1956 | QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia); | 1982 | QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia); |
1957 | QVBoxLayout lay ( &dia ); | 1983 | QVBoxLayout lay ( &dia ); |
1958 | lay.setSpacing( 2 ); | 1984 | lay.setSpacing( 2 ); |
1959 | lay.setMargin( 3 ); | 1985 | lay.setMargin( 3 ); |
1960 | lay.addWidget(&gr); | 1986 | lay.addWidget(&gr); |
1961 | QRadioButton loc ( i18n("Take local entry on conflict"), &gr ); | 1987 | QRadioButton loc ( i18n("Take local entry on conflict"), &gr ); |
1962 | QRadioButton rem ( i18n("Take remote entry on conflict"), &gr ); | 1988 | QRadioButton rem ( i18n("Take remote entry on conflict"), &gr ); |
1963 | QRadioButton newest( i18n("Take newest entry on conflict"), &gr ); | 1989 | QRadioButton newest( i18n("Take newest entry on conflict"), &gr ); |
1964 | QRadioButton ask( i18n("Ask for every entry on conflict"), &gr ); | 1990 | QRadioButton ask( i18n("Ask for every entry on conflict"), &gr ); |
1965 | QRadioButton f_loc( i18n("Force: Take local entry always"), &gr ); | 1991 | QRadioButton f_loc( i18n("Force: Take local entry always"), &gr ); |
1966 | QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr ); | 1992 | QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr ); |
1967 | //QRadioButton both( i18n("Take both on conflict"), &gr ); | 1993 | //QRadioButton both( i18n("Take both on conflict"), &gr ); |
1968 | QPushButton pb ( "OK", &dia); | 1994 | QPushButton pb ( "OK", &dia); |
1969 | lay.addWidget( &pb ); | 1995 | lay.addWidget( &pb ); |
1970 | connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); | 1996 | connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); |
1971 | switch ( KOPrefs::instance()->mSyncAlgoPrefs ) { | 1997 | switch ( KOPrefs::instance()->mSyncAlgoPrefs ) { |
1972 | case 0: | 1998 | case 0: |
1973 | loc.setChecked( true); | 1999 | loc.setChecked( true); |
1974 | break; | 2000 | break; |
1975 | case 1: | 2001 | case 1: |
1976 | rem.setChecked( true ); | 2002 | rem.setChecked( true ); |
1977 | break; | 2003 | break; |
1978 | case 2: | 2004 | case 2: |
1979 | newest.setChecked( true); | 2005 | newest.setChecked( true); |
1980 | break; | 2006 | break; |
1981 | case 3: | 2007 | case 3: |
1982 | ask.setChecked( true); | 2008 | ask.setChecked( true); |
1983 | break; | 2009 | break; |
1984 | case 4: | 2010 | case 4: |
1985 | f_loc.setChecked( true); | 2011 | f_loc.setChecked( true); |
1986 | break; | 2012 | break; |
1987 | case 5: | 2013 | case 5: |
1988 | f_rem.setChecked( true); | 2014 | f_rem.setChecked( true); |
1989 | break; | 2015 | break; |
1990 | case 6: | 2016 | case 6: |
1991 | // both.setChecked( true); | 2017 | // both.setChecked( true); |
1992 | break; | 2018 | break; |
1993 | default: | 2019 | default: |
1994 | break; | 2020 | break; |
1995 | } | 2021 | } |
1996 | if ( dia.exec() ) { | 2022 | if ( dia.exec() ) { |
1997 | KOPrefs::instance()->mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ; | 2023 | KOPrefs::instance()->mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ; |
1998 | } | 2024 | } |
1999 | 2025 | ||
2000 | } | 2026 | } |
2001 | 2027 | ||
2002 | void CalendarView::slotSelectPickerDate( QDate d) | 2028 | void CalendarView::slotSelectPickerDate( QDate d) |
2003 | { | 2029 | { |
2004 | mDateFrame->hide(); | 2030 | mDateFrame->hide(); |
2005 | if ( mDatePickerMode == 1 ) { | 2031 | if ( mDatePickerMode == 1 ) { |
2006 | mNavigator->slotDaySelect( d ); | 2032 | mNavigator->slotDaySelect( d ); |
2007 | } else if ( mDatePickerMode == 2 ) { | 2033 | } else if ( mDatePickerMode == 2 ) { |
2008 | if ( mMoveIncidence->type() == "Todo" ) { | 2034 | if ( mMoveIncidence->type() == "Todo" ) { |
2009 | Todo * to = (Todo *) mMoveIncidence; | 2035 | Todo * to = (Todo *) mMoveIncidence; |
2010 | QTime tim; | 2036 | QTime tim; |
2011 | if ( to->hasDueDate() ) | 2037 | if ( to->hasDueDate() ) |
2012 | tim = to->dtDue().time(); | 2038 | tim = to->dtDue().time(); |
2013 | else { | 2039 | else { |
2014 | tim = QTime ( 0,0,0 ); | 2040 | tim = QTime ( 0,0,0 ); |
2015 | to->setFloats( true ); | 2041 | to->setFloats( true ); |
2016 | to->setHasDueDate( true ); | 2042 | to->setHasDueDate( true ); |
2017 | } | 2043 | } |
2018 | QDateTime dt ( d,tim ); | 2044 | QDateTime dt ( d,tim ); |
2019 | to->setDtDue( dt ); | 2045 | to->setDtDue( dt ); |
2020 | todoChanged( to ); | 2046 | todoChanged( to ); |
2021 | } else { | 2047 | } else { |
2022 | QTime tim = mMoveIncidence->dtStart().time(); | 2048 | QTime tim = mMoveIncidence->dtStart().time(); |
2023 | int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd()); | 2049 | int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd()); |
2024 | QDateTime dt ( d,tim ); | 2050 | QDateTime dt ( d,tim ); |
2025 | mMoveIncidence->setDtStart( dt ); | 2051 | mMoveIncidence->setDtStart( dt ); |
2026 | ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) ); | 2052 | ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) ); |
2027 | changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED); | 2053 | changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED); |
2028 | } | 2054 | } |
2029 | 2055 | ||
2030 | mMoveIncidence->setRevision( mMoveIncidence->revision()+1 ); | 2056 | mMoveIncidence->setRevision( mMoveIncidence->revision()+1 ); |
2031 | } | 2057 | } |
2032 | } | 2058 | } |
2033 | 2059 | ||
2034 | void CalendarView::removeCategories() | 2060 | void CalendarView::removeCategories() |
2035 | { | 2061 | { |
2036 | QPtrList<Incidence> incList = mCalendar->rawIncidences(); | 2062 | QPtrList<Incidence> incList = mCalendar->rawIncidences(); |
2037 | QStringList catList = KOPrefs::instance()->mCustomCategories; | 2063 | QStringList catList = KOPrefs::instance()->mCustomCategories; |
2038 | QStringList catIncList; | 2064 | QStringList catIncList; |
2039 | QStringList newCatList; | 2065 | QStringList newCatList; |
2040 | Incidence* inc = incList.first(); | 2066 | Incidence* inc = incList.first(); |
2041 | int i; | 2067 | int i; |
2042 | int count = 0; | 2068 | int count = 0; |
2043 | while ( inc ) { | 2069 | while ( inc ) { |
2044 | newCatList.clear(); | 2070 | newCatList.clear(); |
2045 | catIncList = inc->categories() ; | 2071 | catIncList = inc->categories() ; |
2046 | for( i = 0; i< catIncList.count(); ++i ) { | 2072 | for( i = 0; i< catIncList.count(); ++i ) { |
2047 | if ( catList.contains (catIncList[i])) | 2073 | if ( catList.contains (catIncList[i])) |
2048 | newCatList.append( catIncList[i] ); | 2074 | newCatList.append( catIncList[i] ); |
2049 | } | 2075 | } |
2050 | newCatList.sort(); | 2076 | newCatList.sort(); |
2051 | inc->setCategories( newCatList.join(",") ); | 2077 | inc->setCategories( newCatList.join(",") ); |
2052 | inc = incList.next(); | 2078 | inc = incList.next(); |
2053 | } | 2079 | } |
2054 | } | 2080 | } |
2055 | 2081 | ||
2056 | int CalendarView::addCategories() | 2082 | int CalendarView::addCategories() |
2057 | { | 2083 | { |
2058 | QPtrList<Incidence> incList = mCalendar->rawIncidences(); | 2084 | QPtrList<Incidence> incList = mCalendar->rawIncidences(); |
2059 | QStringList catList = KOPrefs::instance()->mCustomCategories; | 2085 | QStringList catList = KOPrefs::instance()->mCustomCategories; |
2060 | QStringList catIncList; | 2086 | QStringList catIncList; |
2061 | Incidence* inc = incList.first(); | 2087 | Incidence* inc = incList.first(); |
2062 | int i; | 2088 | int i; |
2063 | int count = 0; | 2089 | int count = 0; |
2064 | while ( inc ) { | 2090 | while ( inc ) { |
2065 | catIncList = inc->categories() ; | 2091 | catIncList = inc->categories() ; |
2066 | for( i = 0; i< catIncList.count(); ++i ) { | 2092 | for( i = 0; i< catIncList.count(); ++i ) { |
2067 | if ( !catList.contains (catIncList[i])) { | 2093 | if ( !catList.contains (catIncList[i])) { |
2068 | catList.append( catIncList[i] ); | 2094 | catList.append( catIncList[i] ); |
2069 | //qDebug("add cat %s ", catIncList[i].latin1()); | 2095 | //qDebug("add cat %s ", catIncList[i].latin1()); |
2070 | ++count; | 2096 | ++count; |
2071 | } | 2097 | } |
2072 | } | 2098 | } |
2073 | inc = incList.next(); | 2099 | inc = incList.next(); |
2074 | } | 2100 | } |
2075 | catList.sort(); | 2101 | catList.sort(); |
2076 | KOPrefs::instance()->mCustomCategories = catList; | 2102 | KOPrefs::instance()->mCustomCategories = catList; |
2077 | return count; | 2103 | return count; |
2078 | } | 2104 | } |
2079 | 2105 | ||
2080 | void CalendarView::manageCategories() | 2106 | void CalendarView::manageCategories() |
2081 | { | 2107 | { |
2082 | KOCatPrefs* cp = new KOCatPrefs(); | 2108 | KOCatPrefs* cp = new KOCatPrefs(); |
2083 | cp->show(); | 2109 | cp->show(); |
2084 | int w =cp->sizeHint().width() ; | 2110 | int w =cp->sizeHint().width() ; |
2085 | int h = cp->sizeHint().height() ; | 2111 | int h = cp->sizeHint().height() ; |
2086 | int dw = QApplication::desktop()->width(); | 2112 | int dw = QApplication::desktop()->width(); |
2087 | int dh = QApplication::desktop()->height(); | 2113 | int dh = QApplication::desktop()->height(); |
2088 | cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); | 2114 | cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); |
2089 | if ( !cp->exec() ) { | 2115 | if ( !cp->exec() ) { |
2090 | delete cp; | 2116 | delete cp; |
2091 | return; | 2117 | return; |
2092 | } | 2118 | } |
2093 | int count = 0; | 2119 | int count = 0; |
2094 | if ( cp->addCat() ) { | 2120 | if ( cp->addCat() ) { |
2095 | count = addCategories(); | 2121 | count = addCategories(); |
2096 | if ( count ) { | 2122 | if ( count ) { |
2097 | topLevelWidget()->setCaption(QString::number( count )+ i18n(" Categories added to list! ")); | 2123 | topLevelWidget()->setCaption(QString::number( count )+ i18n(" Categories added to list! ")); |
2098 | writeSettings(); | 2124 | writeSettings(); |
2099 | } | 2125 | } |
2100 | } else { | 2126 | } else { |
2101 | removeCategories(); | 2127 | removeCategories(); |
2102 | updateView(); | 2128 | updateView(); |
2103 | } | 2129 | } |
2104 | delete cp; | 2130 | delete cp; |
2105 | } | 2131 | } |
2106 | 2132 | ||
2107 | void CalendarView::beamIncidence(Incidence * Inc) | 2133 | void CalendarView::beamIncidence(Incidence * Inc) |
2108 | { | 2134 | { |
2109 | QPtrList<Incidence> delSel ; | 2135 | QPtrList<Incidence> delSel ; |
2110 | delSel.append(Inc); | 2136 | delSel.append(Inc); |
2111 | beamIncidenceList( delSel ); | 2137 | beamIncidenceList( delSel ); |
2112 | } | 2138 | } |
2113 | void CalendarView::beamCalendar() | 2139 | void CalendarView::beamCalendar() |
2114 | { | 2140 | { |
2115 | QPtrList<Incidence> delSel = mCalendar->rawIncidences(); | 2141 | QPtrList<Incidence> delSel = mCalendar->rawIncidences(); |
2116 | //qDebug("beamCalendar() "); | 2142 | //qDebug("beamCalendar() "); |
2117 | beamIncidenceList( delSel ); | 2143 | beamIncidenceList( delSel ); |
2118 | } | 2144 | } |
2119 | void CalendarView::beamFilteredCalendar() | 2145 | void CalendarView::beamFilteredCalendar() |
2120 | { | 2146 | { |
2121 | QPtrList<Incidence> delSel = mCalendar->incidences(); | 2147 | QPtrList<Incidence> delSel = mCalendar->incidences(); |
2122 | //qDebug("beamFilteredCalendar() "); | 2148 | //qDebug("beamFilteredCalendar() "); |
2123 | beamIncidenceList( delSel ); | 2149 | beamIncidenceList( delSel ); |
2124 | } | 2150 | } |
2125 | void CalendarView::beamIncidenceList(QPtrList<Incidence> delSel ) | 2151 | void CalendarView::beamIncidenceList(QPtrList<Incidence> delSel ) |
2126 | { | 2152 | { |
2127 | if ( beamDialog->exec () == QDialog::Rejected ) | 2153 | if ( beamDialog->exec () == QDialog::Rejected ) |
2128 | return; | 2154 | return; |
2129 | 2155 | ||
2130 | QString fn = "/tmp/kopibeamfile"; | 2156 | QString fn = "/tmp/kopibeamfile"; |
2131 | QString mes; | 2157 | QString mes; |
2132 | bool createbup = true; | 2158 | bool createbup = true; |
2133 | if ( createbup ) { | 2159 | if ( createbup ) { |
2134 | QString description = "\n"; | 2160 | QString description = "\n"; |
2135 | CalendarLocal* cal = new CalendarLocal(); | 2161 | CalendarLocal* cal = new CalendarLocal(); |
2136 | if ( beamDialog->beamLocal() ) | 2162 | if ( beamDialog->beamLocal() ) |
2137 | cal->setLocalTime(); | 2163 | cal->setLocalTime(); |
2138 | else | 2164 | else |
2139 | cal->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); | 2165 | cal->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); |
2140 | Incidence *incidence = delSel.first(); | 2166 | Incidence *incidence = delSel.first(); |
2141 | bool addText = false; | 2167 | bool addText = false; |
2142 | if ( delSel.count() < 10 ) | 2168 | if ( delSel.count() < 10 ) |
2143 | addText = true; | 2169 | addText = true; |
2144 | else { | 2170 | else { |
2145 | description.sprintf(i18n(" %d items?"),delSel.count() ); | 2171 | description.sprintf(i18n(" %d items?"),delSel.count() ); |
2146 | } | 2172 | } |
2147 | while ( incidence ) { | 2173 | while ( incidence ) { |
2148 | Incidence *in = incidence->clone(); | 2174 | Incidence *in = incidence->clone(); |
2149 | if ( addText ) | 2175 | if ( addText ) |
2150 | description += in->summary() + "\n"; | 2176 | description += in->summary() + "\n"; |
2151 | cal->addIncidence( in ); | 2177 | cal->addIncidence( in ); |
2152 | incidence = delSel.next(); | 2178 | incidence = delSel.next(); |
2153 | } | 2179 | } |
2154 | if ( beamDialog->beamVcal() ) { | 2180 | if ( beamDialog->beamVcal() ) { |
2155 | fn += ".vcs"; | 2181 | fn += ".vcs"; |
2156 | FileStorage storage( cal, fn, new VCalFormat ); | 2182 | FileStorage storage( cal, fn, new VCalFormat ); |
2157 | storage.save(); | 2183 | storage.save(); |
2158 | } else { | 2184 | } else { |
2159 | fn += ".ics"; | 2185 | fn += ".ics"; |
2160 | FileStorage storage( cal, fn, new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); | 2186 | FileStorage storage( cal, fn, new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); |
2161 | storage.save(); | 2187 | storage.save(); |
2162 | } | 2188 | } |
2163 | delete cal; | 2189 | delete cal; |
2164 | mes = i18n("KO/Pi: Ready for beaming"); | 2190 | mes = i18n("KO/Pi: Ready for beaming"); |
2165 | setCaption(mes); | 2191 | setCaption(mes); |
2166 | 2192 | ||
2167 | #ifndef DESKTOP_VERSION | 2193 | #ifndef DESKTOP_VERSION |
2168 | Ir *ir = new Ir( this ); | 2194 | Ir *ir = new Ir( this ); |
2169 | connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) ); | 2195 | connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) ); |
2170 | ir->send( fn, description, "text/x-vCalendar" ); | 2196 | ir->send( fn, description, "text/x-vCalendar" ); |
2171 | #endif | 2197 | #endif |
2172 | } | 2198 | } |
2173 | } | 2199 | } |
2174 | void CalendarView::beamDone( Ir *ir ) | 2200 | void CalendarView::beamDone( Ir *ir ) |
2175 | { | 2201 | { |
2176 | #ifndef DESKTOP_VERSION | 2202 | #ifndef DESKTOP_VERSION |
2177 | delete ir; | 2203 | delete ir; |
2178 | #endif | 2204 | #endif |
2179 | } | 2205 | } |
2180 | 2206 | ||
2181 | void CalendarView::moveIncidence(Incidence * inc ) | 2207 | void CalendarView::moveIncidence(Incidence * inc ) |
2182 | { | 2208 | { |
2183 | if ( !inc ) return; | 2209 | if ( !inc ) return; |
2184 | // qDebug("showDatePickerForIncidence( ) "); | 2210 | // qDebug("showDatePickerForIncidence( ) "); |
2185 | if ( mDateFrame->isVisible() ) | 2211 | if ( mDateFrame->isVisible() ) |
2186 | mDateFrame->hide(); | 2212 | mDateFrame->hide(); |
2187 | else { | 2213 | else { |
2188 | int w =mDatePicker->sizeHint().width()+2*mDateFrame->lineWidth() ; | 2214 | int w =mDatePicker->sizeHint().width()+2*mDateFrame->lineWidth() ; |
2189 | int h = mDatePicker->sizeHint().height()+2*mDateFrame->lineWidth() ; | 2215 | int h = mDatePicker->sizeHint().height()+2*mDateFrame->lineWidth() ; |
2190 | int dw = QApplication::desktop()->width(); | 2216 | int dw = QApplication::desktop()->width(); |
2191 | int dh = QApplication::desktop()->height(); | 2217 | int dh = QApplication::desktop()->height(); |
2192 | mDateFrame->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); | 2218 | mDateFrame->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); |
2193 | mDateFrame->show(); | 2219 | mDateFrame->show(); |
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h index 8aa5e1c..557554f 100644 --- a/korganizer/calendarview.h +++ b/korganizer/calendarview.h | |||
@@ -1,586 +1,587 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KOrganizer. | 2 | This file is part of KOrganizer. |
3 | Copyright (c) 2000, 2001 | 3 | Copyright (c) 2000, 2001 |
4 | Cornelius Schumacher <schumacher@kde.org> | 4 | Cornelius Schumacher <schumacher@kde.org> |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify | 6 | This program is free software; you can redistribute it and/or modify |
7 | it under the terms of the GNU General Public License as published by | 7 | it under the terms of the GNU General Public License as published by |
8 | the Free Software Foundation; either version 2 of the License, or | 8 | the Free Software Foundation; either version 2 of the License, or |
9 | (at your option) any later version. | 9 | (at your option) any later version. |
10 | 10 | ||
11 | This program is distributed in the hope that it will be useful, | 11 | This program is distributed in the hope that it will be useful, |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | GNU General Public License for more details. | 14 | GNU General Public License for more details. |
15 | 15 | ||
16 | You should have received a copy of the GNU General Public License | 16 | You should have received a copy of the GNU General Public License |
17 | along with this program; if not, write to the Free Software | 17 | along with this program; if not, write to the Free Software |
18 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 18 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
19 | 19 | ||
20 | As a special exception, permission is given to link this program | 20 | As a special exception, permission is given to link this program |
21 | with any edition of Qt, and distribute the resulting executable, | 21 | with any edition of Qt, and distribute the resulting executable, |
22 | without including the source code for Qt in the source distribution. | 22 | without including the source code for Qt in the source distribution. |
23 | */ | 23 | */ |
24 | #ifndef CALENDARVIEW_H | 24 | #ifndef CALENDARVIEW_H |
25 | #define CALENDARVIEW_H | 25 | #define CALENDARVIEW_H |
26 | 26 | ||
27 | #include <qframe.h> | 27 | #include <qframe.h> |
28 | #include <qlayout.h> | 28 | #include <qlayout.h> |
29 | #include <qwidget.h> | 29 | #include <qwidget.h> |
30 | #include <qptrlist.h> | 30 | #include <qptrlist.h> |
31 | #include <qvbox.h> | 31 | #include <qvbox.h> |
32 | #include <qmap.h> | 32 | #include <qmap.h> |
33 | #ifndef DESKTOP_VERSION | 33 | #ifndef DESKTOP_VERSION |
34 | #include <qtopia/ir.h> | 34 | #include <qtopia/ir.h> |
35 | #else | 35 | #else |
36 | #define Ir char | 36 | #define Ir char |
37 | #endif | 37 | #endif |
38 | #include <libkcal/calendar.h> | 38 | #include <libkcal/calendar.h> |
39 | #include <libkcal/scheduler.h> | 39 | #include <libkcal/scheduler.h> |
40 | #include <libkcal/calendarresources.h> | 40 | #include <libkcal/calendarresources.h> |
41 | #include <libkcal/resourcecalendar.h> | 41 | #include <libkcal/resourcecalendar.h> |
42 | 42 | ||
43 | #include <korganizer/calendarviewbase.h> | 43 | #include <korganizer/calendarviewbase.h> |
44 | 44 | ||
45 | class QWidgetStack; | 45 | class QWidgetStack; |
46 | class QSplitter; | 46 | class QSplitter; |
47 | 47 | ||
48 | class CalPrinter; | 48 | class CalPrinter; |
49 | class KOFilterView; | 49 | class KOFilterView; |
50 | class KOViewManager; | 50 | class KOViewManager; |
51 | class KODialogManager; | 51 | class KODialogManager; |
52 | class KOTodoView; | 52 | class KOTodoView; |
53 | class KDateNavigator; | 53 | class KDateNavigator; |
54 | class DateNavigator; | 54 | class DateNavigator; |
55 | class KOIncidenceEditor; | 55 | class KOIncidenceEditor; |
56 | class KDatePicker; | 56 | class KDatePicker; |
57 | class ResourceView; | 57 | class ResourceView; |
58 | class NavigatorBar; | 58 | class NavigatorBar; |
59 | class KOEventEditor; | 59 | class KOEventEditor; |
60 | class KOTodoEditor ; | 60 | class KOTodoEditor ; |
61 | class KOEventViewerDialog; | 61 | class KOEventViewerDialog; |
62 | class KOBeamPrefs; | 62 | class KOBeamPrefs; |
63 | class KSyncProfile; | 63 | class KSyncProfile; |
64 | class AlarmDialog; | 64 | class AlarmDialog; |
65 | class KCal::Attendee; | 65 | class KCal::Attendee; |
66 | 66 | ||
67 | namespace KCal { class FileStorage; } | 67 | namespace KCal { class FileStorage; } |
68 | 68 | ||
69 | using namespace KCal; | 69 | using namespace KCal; |
70 | 70 | ||
71 | /** | 71 | /** |
72 | This is the main calendar widget. It provides the different vies on t he | 72 | This is the main calendar widget. It provides the different vies on t he |
73 | calendar data as well as the date navigator. It also handles synchronisation | 73 | calendar data as well as the date navigator. It also handles synchronisation |
74 | of the different views and controls the different dialogs like preferences, | 74 | of the different views and controls the different dialogs like preferences, |
75 | event editor, search dialog etc. | 75 | event editor, search dialog etc. |
76 | 76 | ||
77 | @short main calendar view widget | 77 | @short main calendar view widget |
78 | @author Cornelius Schumacher | 78 | @author Cornelius Schumacher |
79 | */ | 79 | */ |
80 | class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Observer | 80 | class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Observer |
81 | { | 81 | { |
82 | Q_OBJECT | 82 | Q_OBJECT |
83 | public: | 83 | public: |
84 | /** | 84 | /** |
85 | Constructs a new calendar view widget. | 85 | Constructs a new calendar view widget. |
86 | 86 | ||
87 | @param calendar calendar document | 87 | @param calendar calendar document |
88 | @param parent parent window | 88 | @param parent parent window |
89 | @param name Qt internal widget object name | 89 | @param name Qt internal widget object name |
90 | */ | 90 | */ |
91 | CalendarView( CalendarResources *calendar, QWidget *parent = 0, | 91 | CalendarView( CalendarResources *calendar, QWidget *parent = 0, |
92 | const char *name = 0 ); | 92 | const char *name = 0 ); |
93 | CalendarView( Calendar *calendar, QWidget *parent = 0, | 93 | CalendarView( Calendar *calendar, QWidget *parent = 0, |
94 | const char *name = 0 ); | 94 | const char *name = 0 ); |
95 | virtual ~CalendarView(); | 95 | virtual ~CalendarView(); |
96 | 96 | ||
97 | Calendar *calendar() { return mCalendar; } | 97 | Calendar *calendar() { return mCalendar; } |
98 | 98 | ||
99 | KOViewManager *viewManager(); | 99 | KOViewManager *viewManager(); |
100 | KODialogManager *dialogManager(); | 100 | KODialogManager *dialogManager(); |
101 | 101 | ||
102 | QDate startDate(); | 102 | QDate startDate(); |
103 | QDate endDate(); | 103 | QDate endDate(); |
104 | 104 | ||
105 | QWidgetStack *viewStack(); | 105 | QWidgetStack *viewStack(); |
106 | QWidget *leftFrame(); | 106 | QWidget *leftFrame(); |
107 | NavigatorBar *navigatorBar(); | 107 | NavigatorBar *navigatorBar(); |
108 | 108 | ||
109 | DateNavigator *dateNavigator(); | 109 | DateNavigator *dateNavigator(); |
110 | KDateNavigator *dateNavigatorWidget(); | 110 | KDateNavigator *dateNavigatorWidget(); |
111 | 111 | ||
112 | void addView(KOrg::BaseView *); | 112 | void addView(KOrg::BaseView *); |
113 | void showView(KOrg::BaseView *); | 113 | void showView(KOrg::BaseView *); |
114 | KOEventViewerDialog* getEventViewerDialog(); | 114 | KOEventViewerDialog* getEventViewerDialog(); |
115 | Incidence *currentSelection(); | 115 | Incidence *currentSelection(); |
116 | void setupExternSyncProfiles(); | ||
116 | 117 | ||
117 | signals: | 118 | signals: |
118 | /** This todo has been modified */ | 119 | /** This todo has been modified */ |
119 | void todoModified(Todo *, int); | 120 | void todoModified(Todo *, int); |
120 | 121 | ||
121 | /** when change is made to options dialog, the topwidget will catch this | 122 | /** when change is made to options dialog, the topwidget will catch this |
122 | * and emit this signal which notifies all widgets which have registered | 123 | * and emit this signal which notifies all widgets which have registered |
123 | * for notification to update their settings. */ | 124 | * for notification to update their settings. */ |
124 | void configChanged(); | 125 | void configChanged(); |
125 | /** emitted when the topwidget is closing down, so that any attached | 126 | /** emitted when the topwidget is closing down, so that any attached |
126 | child windows can also close. */ | 127 | child windows can also close. */ |
127 | void closingDown(); | 128 | void closingDown(); |
128 | /** emitted right before we die */ | 129 | /** emitted right before we die */ |
129 | void closed(QWidget *); | 130 | void closed(QWidget *); |
130 | 131 | ||
131 | /** Emitted when state of modified flag changes */ | 132 | /** Emitted when state of modified flag changes */ |
132 | void modifiedChanged(bool); | 133 | void modifiedChanged(bool); |
133 | void signalmodified(); | 134 | void signalmodified(); |
134 | 135 | ||
135 | /** Emitted when state of read-only flag changes */ | 136 | /** Emitted when state of read-only flag changes */ |
136 | void readOnlyChanged(bool); | 137 | void readOnlyChanged(bool); |
137 | 138 | ||
138 | /** Emitted when the unit of navigation changes */ | 139 | /** Emitted when the unit of navigation changes */ |
139 | void changeNavStringPrev(const QString &); | 140 | void changeNavStringPrev(const QString &); |
140 | void changeNavStringNext(const QString &); | 141 | void changeNavStringNext(const QString &); |
141 | 142 | ||
142 | /** Emitted when state of events selection has changed and user is organizer*/ | 143 | /** Emitted when state of events selection has changed and user is organizer*/ |
143 | void organizerEventsSelected(bool); | 144 | void organizerEventsSelected(bool); |
144 | /** Emitted when state of events selection has changed and user is attendee*/ | 145 | /** Emitted when state of events selection has changed and user is attendee*/ |
145 | void groupEventsSelected(bool); | 146 | void groupEventsSelected(bool); |
146 | /** | 147 | /** |
147 | Emitted when an incidence gets selected. If the selection is cleared the | 148 | Emitted when an incidence gets selected. If the selection is cleared the |
148 | signal is emitted with 0 as argument. | 149 | signal is emitted with 0 as argument. |
149 | */ | 150 | */ |
150 | void incidenceSelected( Incidence * ); | 151 | void incidenceSelected( Incidence * ); |
151 | /** Emitted, when a todoitem is selected or deselected. */ | 152 | /** Emitted, when a todoitem is selected or deselected. */ |
152 | void todoSelected( bool ); | 153 | void todoSelected( bool ); |
153 | 154 | ||
154 | /** | 155 | /** |
155 | Emitted, when clipboard content changes. Parameter indicates if paste | 156 | Emitted, when clipboard content changes. Parameter indicates if paste |
156 | is possible or not. | 157 | is possible or not. |
157 | */ | 158 | */ |
158 | void pasteEnabled(bool); | 159 | void pasteEnabled(bool); |
159 | 160 | ||
160 | /** Emitted, when the number of incoming messages has changed. */ | 161 | /** Emitted, when the number of incoming messages has changed. */ |
161 | void numIncomingChanged(int); | 162 | void numIncomingChanged(int); |
162 | 163 | ||
163 | /** Emitted, when the number of outgoing messages has changed. */ | 164 | /** Emitted, when the number of outgoing messages has changed. */ |
164 | void numOutgoingChanged(int); | 165 | void numOutgoingChanged(int); |
165 | 166 | ||
166 | /** Send status message, which can e.g. be displayed in the status bar. */ | 167 | /** Send status message, which can e.g. be displayed in the status bar. */ |
167 | void statusMessage(const QString &); | 168 | void statusMessage(const QString &); |
168 | 169 | ||
169 | void calendarViewExpanded( bool ); | 170 | void calendarViewExpanded( bool ); |
170 | void updateSearchDialog(); | 171 | void updateSearchDialog(); |
171 | 172 | ||
172 | 173 | ||
173 | public slots: | 174 | public slots: |
174 | void recheckTimerAlarm(); | 175 | void recheckTimerAlarm(); |
175 | void checkNextTimerAlarm(); | 176 | void checkNextTimerAlarm(); |
176 | void addAlarm(const QDateTime &qdt, const QString ¬i ); | 177 | void addAlarm(const QDateTime &qdt, const QString ¬i ); |
177 | void addSuspendAlarm(const QDateTime &qdt, const QString ¬i ); | 178 | void addSuspendAlarm(const QDateTime &qdt, const QString ¬i ); |
178 | void removeAlarm(const QDateTime &qdt, const QString ¬i ); | 179 | void removeAlarm(const QDateTime &qdt, const QString ¬i ); |
179 | 180 | ||
180 | /** options dialog made a changed to the configuration. we catch this | 181 | /** options dialog made a changed to the configuration. we catch this |
181 | * and notify all widgets which need to update their configuration. */ | 182 | * and notify all widgets which need to update their configuration. */ |
182 | void updateConfig(); | 183 | void updateConfig(); |
183 | 184 | ||
184 | /** | 185 | /** |
185 | Load calendar from file \a filename. If \a merge is true, load | 186 | Load calendar from file \a filename. If \a merge is true, load |
186 | calendar into existing one, if it is false, clear calendar, before | 187 | calendar into existing one, if it is false, clear calendar, before |
187 | loading. Return true, if calendar could be successfully loaded. | 188 | loading. Return true, if calendar could be successfully loaded. |
188 | */ | 189 | */ |
189 | bool openCalendar(QString filename, bool merge=false); | 190 | bool openCalendar(QString filename, bool merge=false); |
190 | bool syncCalendar(QString filename,int mode = 0 ); | 191 | bool syncCalendar(QString filename,int mode = 0 ); |
191 | 192 | ||
192 | /** | 193 | /** |
193 | Save calendar data to file. Return true if calendar could be | 194 | Save calendar data to file. Return true if calendar could be |
194 | successfully saved. | 195 | successfully saved. |
195 | */ | 196 | */ |
196 | bool saveCalendar(QString filename); | 197 | bool saveCalendar(QString filename); |
197 | 198 | ||
198 | /** | 199 | /** |
199 | Close calendar. Clear calendar data and reset views to display an empty | 200 | Close calendar. Clear calendar data and reset views to display an empty |
200 | calendar. | 201 | calendar. |
201 | */ | 202 | */ |
202 | void closeCalendar(); | 203 | void closeCalendar(); |
203 | 204 | ||
204 | /** Archive old events of calendar */ | 205 | /** Archive old events of calendar */ |
205 | void archiveCalendar(); | 206 | void archiveCalendar(); |
206 | 207 | ||
207 | void showIncidence(); | 208 | void showIncidence(); |
208 | void editIncidence(); | 209 | void editIncidence(); |
209 | void editIncidenceDescription(); | 210 | void editIncidenceDescription(); |
210 | void deleteIncidence(); | 211 | void deleteIncidence(); |
211 | 212 | ||
212 | /** create an editeventwin with supplied date/time, and if bool is true, | 213 | /** create an editeventwin with supplied date/time, and if bool is true, |
213 | * make the event take all day. */ | 214 | * make the event take all day. */ |
214 | void newEvent(QDateTime, QDateTime, bool allDay = false); | 215 | void newEvent(QDateTime, QDateTime, bool allDay = false); |
215 | void newEvent(QDateTime fh); | 216 | void newEvent(QDateTime fh); |
216 | void newEvent(QDate dt); | 217 | void newEvent(QDate dt); |
217 | /** create new event without having a date hint. Takes current date as | 218 | /** create new event without having a date hint. Takes current date as |
218 | default hint. */ | 219 | default hint. */ |
219 | void newEvent(); | 220 | void newEvent(); |
220 | void newFloatingEvent(); | 221 | void newFloatingEvent(); |
221 | 222 | ||
222 | /** Create a read-only viewer dialog for the supplied incidence. It calls the correct showXXX method*/ | 223 | /** Create a read-only viewer dialog for the supplied incidence. It calls the correct showXXX method*/ |
223 | void showIncidence(Incidence *); | 224 | void showIncidence(Incidence *); |
224 | /** Create an editor for the supplied incidence. It calls the correct editXXX method*/ | 225 | /** Create an editor for the supplied incidence. It calls the correct editXXX method*/ |
225 | void editIncidence(Incidence *); | 226 | void editIncidence(Incidence *); |
226 | /** Delete the supplied incidence. It calls the correct deleteXXX method*/ | 227 | /** Delete the supplied incidence. It calls the correct deleteXXX method*/ |
227 | void deleteIncidence(Incidence *); | 228 | void deleteIncidence(Incidence *); |
228 | void cloneIncidence(Incidence *); | 229 | void cloneIncidence(Incidence *); |
229 | void cancelIncidence(Incidence *); | 230 | void cancelIncidence(Incidence *); |
230 | /** Create an editor for the supplied event. */ | 231 | /** Create an editor for the supplied event. */ |
231 | void editEvent(Event *); | 232 | void editEvent(Event *); |
232 | /** Delete the supplied event. */ | 233 | /** Delete the supplied event. */ |
233 | void deleteEvent(Event *); | 234 | void deleteEvent(Event *); |
234 | /** Delete the event with the given unique ID. Returns false, if event wasn't | 235 | /** Delete the event with the given unique ID. Returns false, if event wasn't |
235 | found. */ | 236 | found. */ |
236 | bool deleteEvent(const QString &uid); | 237 | bool deleteEvent(const QString &uid); |
237 | /** Create a read-only viewer dialog for the supplied event. */ | 238 | /** Create a read-only viewer dialog for the supplied event. */ |
238 | void showEvent(Event *); | 239 | void showEvent(Event *); |
239 | 240 | ||
240 | void editJournal(Journal *); | 241 | void editJournal(Journal *); |
241 | void showJournal(Journal *); | 242 | void showJournal(Journal *); |
242 | void deleteJournal(Journal *); | 243 | void deleteJournal(Journal *); |
243 | /** Create an editor dialog for a todo */ | 244 | /** Create an editor dialog for a todo */ |
244 | void editTodo(Todo *); | 245 | void editTodo(Todo *); |
245 | /** Create a read-only viewer dialog for the supplied todo */ | 246 | /** Create a read-only viewer dialog for the supplied todo */ |
246 | void showTodo(Todo *); | 247 | void showTodo(Todo *); |
247 | /** create new todo */ | 248 | /** create new todo */ |
248 | void newTodo(); | 249 | void newTodo(); |
249 | /** create new todo with a parent todo */ | 250 | /** create new todo with a parent todo */ |
250 | void newSubTodo(); | 251 | void newSubTodo(); |
251 | /** create new todo with a parent todo */ | 252 | /** create new todo with a parent todo */ |
252 | void newSubTodo(Todo *); | 253 | void newSubTodo(Todo *); |
253 | /** Delete todo */ | 254 | /** Delete todo */ |
254 | void deleteTodo(Todo *); | 255 | void deleteTodo(Todo *); |
255 | 256 | ||
256 | 257 | ||
257 | /** Check if clipboard contains vCalendar event. The signal pasteEnabled() is | 258 | /** Check if clipboard contains vCalendar event. The signal pasteEnabled() is |
258 | * emitted as result. */ | 259 | * emitted as result. */ |
259 | void checkClipboard(); | 260 | void checkClipboard(); |
260 | 261 | ||
261 | /** using the KConfig associated with the kapp variable, read in the | 262 | /** using the KConfig associated with the kapp variable, read in the |
262 | * settings from the config file. | 263 | * settings from the config file. |
263 | */ | 264 | */ |
264 | void readSettings(); | 265 | void readSettings(); |
265 | 266 | ||
266 | /** write current state to config file. */ | 267 | /** write current state to config file. */ |
267 | void writeSettings(); | 268 | void writeSettings(); |
268 | 269 | ||
269 | /** read settings for calendar filters */ | 270 | /** read settings for calendar filters */ |
270 | void readFilterSettings(KConfig *config); | 271 | void readFilterSettings(KConfig *config); |
271 | 272 | ||
272 | /** write settings for calendar filters */ | 273 | /** write settings for calendar filters */ |
273 | void writeFilterSettings(KConfig *config); | 274 | void writeFilterSettings(KConfig *config); |
274 | 275 | ||
275 | /** 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 |
276 | * activated view so that it can make appropriate display changes. */ | 277 | * activated view so that it can make appropriate display changes. */ |
277 | void changeEventDisplay(Event *, int); | 278 | void changeEventDisplay(Event *, int); |
278 | void changeIncidenceDisplay(Incidence *, int); | 279 | void changeIncidenceDisplay(Incidence *, int); |
279 | void changeTodoDisplay(Todo *, int); | 280 | void changeTodoDisplay(Todo *, int); |
280 | 281 | ||
281 | void eventAdded(Event *); | 282 | void eventAdded(Event *); |
282 | void eventChanged(Event *); | 283 | void eventChanged(Event *); |
283 | void eventToBeDeleted(Event *); | 284 | void eventToBeDeleted(Event *); |
284 | void eventDeleted(); | 285 | void eventDeleted(); |
285 | 286 | ||
286 | void todoAdded(Todo *); | 287 | void todoAdded(Todo *); |
287 | void todoChanged(Todo *); | 288 | void todoChanged(Todo *); |
288 | void todoToBeDeleted(Todo *); | 289 | void todoToBeDeleted(Todo *); |
289 | void todoDeleted(); | 290 | void todoDeleted(); |
290 | 291 | ||
291 | void updateView(const QDate &start, const QDate &end); | 292 | void updateView(const QDate &start, const QDate &end); |
292 | void updateView(); | 293 | void updateView(); |
293 | 294 | ||
294 | /** Full update of visible todo views */ | 295 | /** Full update of visible todo views */ |
295 | void updateTodoViews(); | 296 | void updateTodoViews(); |
296 | 297 | ||
297 | void updateUnmanagedViews(); | 298 | void updateUnmanagedViews(); |
298 | 299 | ||
299 | /** cut the current appointment to the clipboard */ | 300 | /** cut the current appointment to the clipboard */ |
300 | void edit_cut(); | 301 | void edit_cut(); |
301 | 302 | ||
302 | /** copy the current appointment(s) to the clipboard */ | 303 | /** copy the current appointment(s) to the clipboard */ |
303 | void edit_copy(); | 304 | void edit_copy(); |
304 | 305 | ||
305 | /** paste the current vobject(s) in the clipboard buffer into calendar */ | 306 | /** paste the current vobject(s) in the clipboard buffer into calendar */ |
306 | void edit_paste(); | 307 | void edit_paste(); |
307 | 308 | ||
308 | /** edit viewing and configuration options. */ | 309 | /** edit viewing and configuration options. */ |
309 | void edit_options(); | 310 | void edit_options(); |
310 | void edit_sync_options(); | 311 | void edit_sync_options(); |
311 | /** | 312 | /** |
312 | Functions for printing, previewing a print, and setting up printing | 313 | Functions for printing, previewing a print, and setting up printing |
313 | parameters. | 314 | parameters. |
314 | */ | 315 | */ |
315 | void print(); | 316 | void print(); |
316 | void printSetup(); | 317 | void printSetup(); |
317 | void printPreview(); | 318 | void printPreview(); |
318 | 319 | ||
319 | /** Export as iCalendar file */ | 320 | /** Export as iCalendar file */ |
320 | void exportICalendar(); | 321 | void exportICalendar(); |
321 | 322 | ||
322 | /** Export as vCalendar file */ | 323 | /** Export as vCalendar file */ |
323 | bool exportVCalendar( QString fn); | 324 | bool exportVCalendar( QString fn); |
324 | 325 | ||
325 | /** pop up a dialog to show an existing appointment. */ | 326 | /** pop up a dialog to show an existing appointment. */ |
326 | void appointment_show(); | 327 | void appointment_show(); |
327 | /** | 328 | /** |
328 | * pop up an Appointment Dialog to edit an existing appointment.Get | 329 | * pop up an Appointment Dialog to edit an existing appointment.Get |
329 | * 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 |
330 | * currently in the View, called currIds. | 331 | * currently in the View, called currIds. |
331 | */ | 332 | */ |
332 | void appointment_edit(); | 333 | void appointment_edit(); |
333 | /** | 334 | /** |
334 | * pop up dialog confirming deletion of currently selected event in the | 335 | * pop up dialog confirming deletion of currently selected event in the |
335 | * View. | 336 | * View. |
336 | */ | 337 | */ |
337 | void appointment_delete(); | 338 | void appointment_delete(); |
338 | 339 | ||
339 | /** 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 |
340 | attachment. */ | 341 | attachment. */ |
341 | void action_mail(); | 342 | void action_mail(); |
342 | 343 | ||
343 | /* frees a subtodo from it's relation */ | 344 | /* frees a subtodo from it's relation */ |
344 | void todo_unsub( Todo * ); | 345 | void todo_unsub( Todo * ); |
345 | 346 | ||
346 | /** Take ownership of selected event. */ | 347 | /** Take ownership of selected event. */ |
347 | void takeOverEvent(); | 348 | void takeOverEvent(); |
348 | 349 | ||
349 | /** Take ownership of all events in calendar. */ | 350 | /** Take ownership of all events in calendar. */ |
350 | void takeOverCalendar(); | 351 | void takeOverCalendar(); |
351 | 352 | ||
352 | /** query whether or not the calendar is "dirty". */ | 353 | /** query whether or not the calendar is "dirty". */ |
353 | bool isModified(); | 354 | bool isModified(); |
354 | /** 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. */ |
355 | void setModified(bool modified=true); | 356 | void setModified(bool modified=true); |
356 | 357 | ||
357 | /** query if the calendar is read-only. */ | 358 | /** query if the calendar is read-only. */ |
358 | bool isReadOnly(); | 359 | bool isReadOnly(); |
359 | /** set state of calendar to read-only */ | 360 | /** set state of calendar to read-only */ |
360 | void setReadOnly(bool readOnly=true); | 361 | void setReadOnly(bool readOnly=true); |
361 | 362 | ||
362 | void eventUpdated(Incidence *); | 363 | void eventUpdated(Incidence *); |
363 | 364 | ||
364 | /* iTIP scheduling actions */ | 365 | /* iTIP scheduling actions */ |
365 | void schedule_publish(Incidence *incidence = 0); | 366 | void schedule_publish(Incidence *incidence = 0); |
366 | void schedule_request(Incidence *incidence = 0); | 367 | void schedule_request(Incidence *incidence = 0); |
367 | void schedule_refresh(Incidence *incidence = 0); | 368 | void schedule_refresh(Incidence *incidence = 0); |
368 | void schedule_cancel(Incidence *incidence = 0); | 369 | void schedule_cancel(Incidence *incidence = 0); |
369 | void schedule_add(Incidence *incidence = 0); | 370 | void schedule_add(Incidence *incidence = 0); |
370 | void schedule_reply(Incidence *incidence = 0); | 371 | void schedule_reply(Incidence *incidence = 0); |
371 | void schedule_counter(Incidence *incidence = 0); | 372 | void schedule_counter(Incidence *incidence = 0); |
372 | void schedule_declinecounter(Incidence *incidence = 0); | 373 | void schedule_declinecounter(Incidence *incidence = 0); |
373 | void schedule_publish_freebusy(int daysToPublish = 30); | 374 | void schedule_publish_freebusy(int daysToPublish = 30); |
374 | 375 | ||
375 | void openAddressbook(); | 376 | void openAddressbook(); |
376 | 377 | ||
377 | void editFilters(); | 378 | void editFilters(); |
378 | void toggleFilerEnabled(); | 379 | void toggleFilerEnabled(); |
379 | 380 | ||
380 | void toggleFilter(); | 381 | void toggleFilter(); |
381 | void showFilter(bool visible); | 382 | void showFilter(bool visible); |
382 | void updateFilter(); | 383 | void updateFilter(); |
383 | void filterEdited(); | 384 | void filterEdited(); |
384 | void selectFilter( int ); | 385 | void selectFilter( int ); |
385 | 386 | ||
386 | void showIntro(); | 387 | void showIntro(); |
387 | 388 | ||
388 | /** Move the curdatepient view date to today */ | 389 | /** Move the curdatepient view date to today */ |
389 | void goToday(); | 390 | void goToday(); |
390 | 391 | ||
391 | /** Move to the next date(s) in the current view */ | 392 | /** Move to the next date(s) in the current view */ |
392 | void goNext(); | 393 | void goNext(); |
393 | 394 | ||
394 | /** Move to the previous date(s) in the current view */ | 395 | /** Move to the previous date(s) in the current view */ |
395 | void goPrevious(); | 396 | void goPrevious(); |
396 | /** Move to the next date(s) in the current view */ | 397 | /** Move to the next date(s) in the current view */ |
397 | void goNextMonth(); | 398 | void goNextMonth(); |
398 | 399 | ||
399 | /** Move to the previous date(s) in the current view */ | 400 | /** Move to the previous date(s) in the current view */ |
400 | void goPreviousMonth(); | 401 | void goPreviousMonth(); |
401 | 402 | ||
402 | void toggleExpand(); | 403 | void toggleExpand(); |
403 | void toggleDateNavigatorWidget(); | 404 | void toggleDateNavigatorWidget(); |
404 | void toggleAllDaySize(); | 405 | void toggleAllDaySize(); |
405 | void dialogClosing(Incidence *); | 406 | void dialogClosing(Incidence *); |
406 | 407 | ||
407 | /** Look for new messages in the inbox */ | 408 | /** Look for new messages in the inbox */ |
408 | void lookForIncomingMessages(); | 409 | void lookForIncomingMessages(); |
409 | /** Look for new messages in the outbox */ | 410 | /** Look for new messages in the outbox */ |
410 | void lookForOutgoingMessages(); | 411 | void lookForOutgoingMessages(); |
411 | 412 | ||
412 | void processMainViewSelection( Incidence * ); | 413 | void processMainViewSelection( Incidence * ); |
413 | void processTodoListSelection( Incidence * ); | 414 | void processTodoListSelection( Incidence * ); |
414 | 415 | ||
415 | void processIncidenceSelection( Incidence * ); | 416 | void processIncidenceSelection( Incidence * ); |
416 | 417 | ||
417 | void purgeCompleted(); | 418 | void purgeCompleted(); |
418 | bool removeCompletedSubTodos( Todo* ); | 419 | bool removeCompletedSubTodos( Todo* ); |
419 | void slotCalendarChanged(); | 420 | void slotCalendarChanged(); |
420 | bool importBday(); | 421 | bool importBday(); |
421 | bool addAnniversary( QDate data, QString name, KCal::Attendee* a , bool birthday ); | 422 | bool addAnniversary( QDate data, QString name, KCal::Attendee* a , bool birthday ); |
422 | bool importQtopia( const QString &categoriesFile, | 423 | bool importQtopia( const QString &categoriesFile, |
423 | const QString &datebookFile, | 424 | const QString &datebookFile, |
424 | const QString &tasklistFile ); | 425 | const QString &tasklistFile ); |
425 | void syncSharp( ); | 426 | void syncSharp( ); |
426 | void slotSelectPickerDate( QDate ) ; | 427 | void slotSelectPickerDate( QDate ) ; |
427 | void showDatePicker( ) ; | 428 | void showDatePicker( ) ; |
428 | void moveIncidence(Incidence *) ; | 429 | void moveIncidence(Incidence *) ; |
429 | void beamIncidence(Incidence *) ; | 430 | void beamIncidence(Incidence *) ; |
430 | void beamCalendar() ; | 431 | void beamCalendar() ; |
431 | void beamFilteredCalendar() ; | 432 | void beamFilteredCalendar() ; |
432 | void beamIncidenceList(QPtrList<Incidence>) ; | 433 | void beamIncidenceList(QPtrList<Incidence>) ; |
433 | void manageCategories(); | 434 | void manageCategories(); |
434 | int addCategories(); | 435 | int addCategories(); |
435 | void removeCategories(); | 436 | void removeCategories(); |
436 | void setSyncDevice( QString ); | 437 | void setSyncDevice( QString ); |
437 | void setSyncName( QString ); | 438 | void setSyncName( QString ); |
438 | protected slots: | 439 | protected slots: |
439 | void timerAlarm(); | 440 | void timerAlarm(); |
440 | void suspendAlarm(); | 441 | void suspendAlarm(); |
441 | void beamDone( Ir *ir ); | 442 | void beamDone( Ir *ir ); |
442 | /** Select a view or adapt the current view to display the specified dates. */ | 443 | /** Select a view or adapt the current view to display the specified dates. */ |
443 | void showDates( const KCal::DateList & ); | 444 | void showDates( const KCal::DateList & ); |
444 | void selectWeekNum ( int ); | 445 | void selectWeekNum ( int ); |
445 | 446 | ||
446 | public: | 447 | public: |
447 | // show a standard warning | 448 | // show a standard warning |
448 | // returns KMsgBox::yesNoCancel() | 449 | // returns KMsgBox::yesNoCancel() |
449 | int msgCalModified(); | 450 | int msgCalModified(); |
450 | void confSync(); | 451 | void confSync(); |
451 | void setLoadedFileVersion(QDateTime); | 452 | void setLoadedFileVersion(QDateTime); |
452 | bool checkFileVersion(QString fn); | 453 | bool checkFileVersion(QString fn); |
453 | bool checkFileChanged(QString fn); | 454 | bool checkFileChanged(QString fn); |
454 | Event* getLastSyncEvent(); | 455 | Event* getLastSyncEvent(); |
455 | /** Adapt navigation units correpsonding to step size of navigation of the | 456 | /** Adapt navigation units correpsonding to step size of navigation of the |
456 | * current view. | 457 | * current view. |
457 | */ | 458 | */ |
458 | void adaptNavigationUnits(); | 459 | void adaptNavigationUnits(); |
459 | bool synchronizeCalendar( Calendar* local, Calendar* remote, int mode ); | 460 | bool synchronizeCalendar( Calendar* local, Calendar* remote, int mode ); |
460 | int takeEvent( Incidence* local, Incidence* remote, int mode, bool full = false ); | 461 | int takeEvent( Incidence* local, Incidence* remote, int mode, bool full = false ); |
461 | //Attendee* getYourAttendee(Event *event); | 462 | //Attendee* getYourAttendee(Event *event); |
462 | protected: | 463 | protected: |
463 | void schedule(Scheduler::Method, Incidence *incidence = 0); | 464 | void schedule(Scheduler::Method, Incidence *incidence = 0); |
464 | 465 | ||
465 | // returns KMsgBox::OKCandel() | 466 | // returns KMsgBox::OKCandel() |
466 | int msgItemDelete(); | 467 | int msgItemDelete(); |
467 | void showEventEditor(); | 468 | void showEventEditor(); |
468 | void showTodoEditor(); | 469 | void showTodoEditor(); |
469 | void writeLocale(); | 470 | void writeLocale(); |
470 | Todo *selectedTodo(); | 471 | Todo *selectedTodo(); |
471 | 472 | ||
472 | private: | 473 | private: |
473 | AlarmDialog * mAlarmDialog; | 474 | AlarmDialog * mAlarmDialog; |
474 | QString mAlarmNotification; | 475 | QString mAlarmNotification; |
475 | QString mSuspendAlarmNotification; | 476 | QString mSuspendAlarmNotification; |
476 | QTimer* mSuspendTimer; | 477 | QTimer* mSuspendTimer; |
477 | QTimer* mAlarmTimer; | 478 | QTimer* mAlarmTimer; |
478 | QTimer* mRecheckAlarmTimer; | 479 | QTimer* mRecheckAlarmTimer; |
479 | void computeAlarm( QString ); | 480 | void computeAlarm( QString ); |
480 | void startAlarm( QString, QString ); | 481 | void startAlarm( QString, QString ); |
481 | void setSyncEventsReadOnly(); | 482 | void setSyncEventsReadOnly(); |
482 | 483 | ||
483 | QDateTime loadedFileVersion; | 484 | QDateTime loadedFileVersion; |
484 | void checkSharpEvent( Event* lastSync, Incidence* toDelete ); | 485 | void checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ); |
485 | void checkZaurusId( int id, bool todo = false ); | 486 | void checkZaurusId( int id, bool todo = false ); |
486 | int mGlobalSyncMode; | 487 | int mGlobalSyncMode; |
487 | QString mCurrentSyncDevice; | 488 | QString mCurrentSyncDevice; |
488 | QString mCurrentSyncName; | 489 | QString mCurrentSyncName; |
489 | KOBeamPrefs* beamDialog; | 490 | KOBeamPrefs* beamDialog; |
490 | void init(); | 491 | void init(); |
491 | int mDatePickerMode; | 492 | int mDatePickerMode; |
492 | bool mFlagEditDescription; | 493 | bool mFlagEditDescription; |
493 | QDateTime mLastCalendarSync; | 494 | QDateTime mLastCalendarSync; |
494 | void createPrinter(); | 495 | void createPrinter(); |
495 | 496 | ||
496 | void calendarModified( bool, Calendar * ); | 497 | void calendarModified( bool, Calendar * ); |
497 | 498 | ||
498 | CalPrinter *mCalPrinter; | 499 | CalPrinter *mCalPrinter; |
499 | 500 | ||
500 | QSplitter *mPanner; | 501 | QSplitter *mPanner; |
501 | QSplitter *mLeftSplitter; | 502 | QSplitter *mLeftSplitter; |
502 | QWidget *mLeftFrame; | 503 | QWidget *mLeftFrame; |
503 | QWidgetStack *mRightFrame; | 504 | QWidgetStack *mRightFrame; |
504 | 505 | ||
505 | KDatePicker* mDatePicker; | 506 | KDatePicker* mDatePicker; |
506 | QVBox* mDateFrame; | 507 | QVBox* mDateFrame; |
507 | NavigatorBar *mNavigatorBar; | 508 | NavigatorBar *mNavigatorBar; |
508 | 509 | ||
509 | KDateNavigator *mDateNavigator; // widget showing small month view. | 510 | KDateNavigator *mDateNavigator; // widget showing small month view. |
510 | 511 | ||
511 | KOFilterView *mFilterView; | 512 | KOFilterView *mFilterView; |
512 | 513 | ||
513 | ResourceView *mResourceView; | 514 | ResourceView *mResourceView; |
514 | 515 | ||
515 | // calendar object for this viewing instance | 516 | // calendar object for this viewing instance |
516 | Calendar *mCalendar; | 517 | Calendar *mCalendar; |
517 | 518 | ||
518 | CalendarResourceManager *mResourceManager; | 519 | CalendarResourceManager *mResourceManager; |
519 | 520 | ||
520 | FileStorage *mStorage; | 521 | FileStorage *mStorage; |
521 | 522 | ||
522 | DateNavigator *mNavigator; | 523 | DateNavigator *mNavigator; |
523 | 524 | ||
524 | KOViewManager *mViewManager; | 525 | KOViewManager *mViewManager; |
525 | KODialogManager *mDialogManager; | 526 | KODialogManager *mDialogManager; |
526 | 527 | ||
527 | // Calendar filters | 528 | // Calendar filters |
528 | QPtrList<CalFilter> mFilters; | 529 | QPtrList<CalFilter> mFilters; |
529 | 530 | ||
530 | // various housekeeping variables. | 531 | // various housekeeping variables. |
531 | bool mModified; // flag indicating if calendar is modified | 532 | bool mModified; // flag indicating if calendar is modified |
532 | bool mReadOnly; // flag indicating if calendar is read-only | 533 | bool mReadOnly; // flag indicating if calendar is read-only |
533 | QDate mSaveSingleDate; | 534 | QDate mSaveSingleDate; |
534 | 535 | ||
535 | Incidence *mSelectedIncidence; | 536 | Incidence *mSelectedIncidence; |
536 | Incidence *mMoveIncidence; | 537 | Incidence *mMoveIncidence; |
537 | 538 | QPtrList<Event> mExternLastSyncEvent; | |
538 | KOTodoView *mTodoList; | 539 | KOTodoView *mTodoList; |
539 | KOEventEditor * mEventEditor; | 540 | KOEventEditor * mEventEditor; |
540 | KOTodoEditor * mTodoEditor; | 541 | KOTodoEditor * mTodoEditor; |
541 | KOEventViewerDialog * mEventViewerDialog; | 542 | KOEventViewerDialog * mEventViewerDialog; |
542 | void keyPressEvent ( QKeyEvent *e) ; | 543 | void keyPressEvent ( QKeyEvent *e) ; |
543 | //QMap<Incidence*,KOIncidenceEditor*> mDialogList; | 544 | //QMap<Incidence*,KOIncidenceEditor*> mDialogList; |
544 | }; | 545 | }; |
545 | 546 | ||
546 | 547 | ||
547 | class CalendarViewVisitor : public Incidence::Visitor | 548 | class CalendarViewVisitor : public Incidence::Visitor |
548 | { | 549 | { |
549 | public: | 550 | public: |
550 | CalendarViewVisitor() : mView( 0 ) {} | 551 | CalendarViewVisitor() : mView( 0 ) {} |
551 | 552 | ||
552 | bool act( Incidence *incidence, CalendarView *view ) | 553 | bool act( Incidence *incidence, CalendarView *view ) |
553 | { | 554 | { |
554 | mView = view; | 555 | mView = view; |
555 | return incidence->accept( *this ); | 556 | return incidence->accept( *this ); |
556 | } | 557 | } |
557 | 558 | ||
558 | protected: | 559 | protected: |
559 | CalendarView *mView; | 560 | CalendarView *mView; |
560 | }; | 561 | }; |
561 | 562 | ||
562 | class ShowIncidenceVisitor : public CalendarViewVisitor | 563 | class ShowIncidenceVisitor : public CalendarViewVisitor |
563 | { | 564 | { |
564 | protected: | 565 | protected: |
565 | bool visit( Event *event ) { mView->showEvent( event ); return true; } | 566 | bool visit( Event *event ) { mView->showEvent( event ); return true; } |
566 | bool visit( Todo *todo ) { mView->showTodo( todo ); return true; } | 567 | bool visit( Todo *todo ) { mView->showTodo( todo ); return true; } |
567 | bool visit( Journal * j ) { mView->showJournal( j );return true; } | 568 | bool visit( Journal * j ) { mView->showJournal( j );return true; } |
568 | }; | 569 | }; |
569 | 570 | ||
570 | class EditIncidenceVisitor : public CalendarViewVisitor | 571 | class EditIncidenceVisitor : public CalendarViewVisitor |
571 | { | 572 | { |
572 | protected: | 573 | protected: |
573 | bool visit( Event *event ) { mView->editEvent( event ); return true; } | 574 | bool visit( Event *event ) { mView->editEvent( event ); return true; } |
574 | bool visit( Todo *todo ) { mView->editTodo( todo ); return true; } | 575 | bool visit( Todo *todo ) { mView->editTodo( todo ); return true; } |
575 | bool visit( Journal *j ) { mView->editJournal( j); return true; } | 576 | bool visit( Journal *j ) { mView->editJournal( j); return true; } |
576 | }; | 577 | }; |
577 | 578 | ||
578 | class DeleteIncidenceVisitor : public CalendarViewVisitor | 579 | class DeleteIncidenceVisitor : public CalendarViewVisitor |
579 | { | 580 | { |
580 | protected: | 581 | protected: |
581 | bool visit( Event *event ) { mView->deleteEvent( event ); return true; } | 582 | bool visit( Event *event ) { mView->deleteEvent( event ); return true; } |
582 | bool visit( Todo *todo ) { mView->deleteTodo( todo ); return true; } | 583 | bool visit( Todo *todo ) { mView->deleteTodo( todo ); return true; } |
583 | bool visit( Journal * j) {mView->deleteJournal( j ); return true; } | 584 | bool visit( Journal * j) {mView->deleteJournal( j ); return true; } |
584 | }; | 585 | }; |
585 | 586 | ||
586 | #endif | 587 | #endif |
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp index 3ba5ab2..f3231ff 100644 --- a/korganizer/koprefs.cpp +++ b/korganizer/koprefs.cpp | |||
@@ -1,559 +1,560 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KOrganizer. | 2 | This file is part of KOrganizer. |
3 | Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> | 3 | Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify | 5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or | 7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | This program is distributed in the hope that it will be useful, | 10 | This program is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 | 18 | ||
19 | As a special exception, permission is given to link this program | 19 | As a special exception, permission is given to link this program |
20 | with any edition of Qt, and distribute the resulting executable, | 20 | with any edition of Qt, and distribute the resulting executable, |
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 | 23 | ||
24 | #include <time.h> | 24 | #include <time.h> |
25 | #ifndef _WIN32_ | 25 | #ifndef _WIN32_ |
26 | #include <unistd.h> | 26 | #include <unistd.h> |
27 | #endif | 27 | #endif |
28 | #include <qdir.h> | 28 | #include <qdir.h> |
29 | #include <qtextstream.h> | 29 | #include <qtextstream.h> |
30 | #include <qtextcodec.h> | 30 | #include <qtextcodec.h> |
31 | #include <qstring.h> | 31 | #include <qstring.h> |
32 | #include <qfont.h> | 32 | #include <qfont.h> |
33 | #include <qcolor.h> | 33 | #include <qcolor.h> |
34 | #include <qstringlist.h> | 34 | #include <qstringlist.h> |
35 | #include <stdlib.h> | 35 | #include <stdlib.h> |
36 | 36 | ||
37 | #include <kglobal.h> | 37 | #include <kglobal.h> |
38 | #include <kconfig.h> | 38 | #include <kconfig.h> |
39 | #include <klocale.h> | 39 | #include <klocale.h> |
40 | #include <kdebug.h> | 40 | #include <kdebug.h> |
41 | #include <kemailsettings.h> | 41 | #include <kemailsettings.h> |
42 | #include <kstaticdeleter.h> | 42 | #include <kstaticdeleter.h> |
43 | 43 | ||
44 | #include "koprefs.h" | 44 | #include "koprefs.h" |
45 | #include "mainwindow.h" | 45 | #include "mainwindow.h" |
46 | 46 | ||
47 | const char *germanwords[][2] = { | 47 | const char *germanwords[][2] = { |
48 | #include "wordsgerman.h" | 48 | #include "wordsgerman.h" |
49 | "", "" | 49 | "", "" |
50 | }; | 50 | }; |
51 | 51 | ||
52 | KOPrefs *KOPrefs::mInstance = 0; | 52 | KOPrefs *KOPrefs::mInstance = 0; |
53 | static KStaticDeleter<KOPrefs> insd; | 53 | static KStaticDeleter<KOPrefs> insd; |
54 | 54 | ||
55 | KOPrefs::KOPrefs() : | 55 | KOPrefs::KOPrefs() : |
56 | KPimPrefs("korganizerrc") | 56 | KPimPrefs("korganizerrc") |
57 | { | 57 | { |
58 | mCategoryColors.setAutoDelete(true); | 58 | mCategoryColors.setAutoDelete(true); |
59 | mLocaleDict = 0; | 59 | mLocaleDict = 0; |
60 | fillMailDefaults(); | 60 | fillMailDefaults(); |
61 | mDefaultCategoryColor = QColor(175,210,255);//196,196,196); | 61 | mDefaultCategoryColor = QColor(175,210,255);//196,196,196); |
62 | QColor defaultHolidayColor = QColor(255,0,0); | 62 | QColor defaultHolidayColor = QColor(255,0,0); |
63 | QColor defaultHighlightColor = QColor(129,112,255);//64,64,255); | 63 | QColor defaultHighlightColor = QColor(129,112,255);//64,64,255); |
64 | QColor defaultAgendaBgColor = QColor(239,241,169);//128,128,128); | 64 | QColor defaultAgendaBgColor = QColor(239,241,169);//128,128,128); |
65 | QColor defaultWorkingHoursColor = QColor(170,223,150);//160,160,160); | 65 | QColor defaultWorkingHoursColor = QColor(170,223,150);//160,160,160); |
66 | QColor defaultTodoDueTodayColor = QColor(255,220,100); | 66 | QColor defaultTodoDueTodayColor = QColor(255,220,100); |
67 | QColor defaultTodoOverdueColor = QColor(255,153,125); | 67 | QColor defaultTodoOverdueColor = QColor(255,153,125); |
68 | 68 | ||
69 | mTimeBarFont = QFont("helvetica",10);//,QFont::Bold); | 69 | mTimeBarFont = QFont("helvetica",10);//,QFont::Bold); |
70 | mDefaultViewFont = QFont("helvetica",10); | 70 | mDefaultViewFont = QFont("helvetica",10); |
71 | mDefaultMonthViewFont = QFont("helvetica",8); | 71 | mDefaultMonthViewFont = QFont("helvetica",8); |
72 | mMarcusBainsFont= QFont("helvetica",10); | 72 | mMarcusBainsFont= QFont("helvetica",10); |
73 | mDateNavigatorFont= QFont("helvetica",10, QFont::Bold); | 73 | mDateNavigatorFont= QFont("helvetica",10, QFont::Bold); |
74 | mEditBoxFont = QFont("helvetica",12); | 74 | mEditBoxFont = QFont("helvetica",12); |
75 | mJornalViewFont = QFont("helvetica",12); | 75 | mJornalViewFont = QFont("helvetica",12); |
76 | 76 | ||
77 | KPrefs::setCurrentGroup("General"); | 77 | KPrefs::setCurrentGroup("General"); |
78 | addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); | 78 | addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); |
79 | 79 | ||
80 | addItemBool("ShowIconNewTodo",&mShowIconNewTodo,true); | 80 | addItemBool("ShowIconNewTodo",&mShowIconNewTodo,true); |
81 | addItemBool("ShowIconNewEvent",&mShowIconNewEvent,true); | 81 | addItemBool("ShowIconNewEvent",&mShowIconNewEvent,true); |
82 | addItemBool("ShowIconSearch",&mShowIconSearch,true); | 82 | addItemBool("ShowIconSearch",&mShowIconSearch,true); |
83 | addItemBool("ShowIconList",&mShowIconList,true); | 83 | addItemBool("ShowIconList",&mShowIconList,true); |
84 | addItemBool("ShowIconDay1",&mShowIconDay1,true); | 84 | addItemBool("ShowIconDay1",&mShowIconDay1,true); |
85 | addItemBool("ShowIconDay5",&mShowIconDay5,true); | 85 | addItemBool("ShowIconDay5",&mShowIconDay5,true); |
86 | addItemBool("ShowIconDay7",&mShowIconDay7,true); | 86 | addItemBool("ShowIconDay7",&mShowIconDay7,true); |
87 | addItemBool("ShowIconMonth",&mShowIconMonth,true); | 87 | addItemBool("ShowIconMonth",&mShowIconMonth,true); |
88 | addItemBool("ShowIconTodoview",&mShowIconTodoview,true); | 88 | addItemBool("ShowIconTodoview",&mShowIconTodoview,true); |
89 | addItemBool("ShowIconBackFast",&mShowIconBackFast,true); | 89 | addItemBool("ShowIconBackFast",&mShowIconBackFast,true); |
90 | addItemBool("ShowIconBack",&mShowIconBack,true); | 90 | addItemBool("ShowIconBack",&mShowIconBack,true); |
91 | addItemBool("ShowIconToday",&mShowIconToday,true); | 91 | addItemBool("ShowIconToday",&mShowIconToday,true); |
92 | addItemBool("ShowIconForward",&mShowIconForward,true); | 92 | addItemBool("ShowIconForward",&mShowIconForward,true); |
93 | addItemBool("ShowIconForwardFast",&mShowIconForwardFast,true); | 93 | addItemBool("ShowIconForwardFast",&mShowIconForwardFast,true); |
94 | addItemBool("ShowIconWhatsThis",&mShowIconWhatsThis,false); | 94 | addItemBool("ShowIconWhatsThis",&mShowIconWhatsThis,false); |
95 | addItemBool("ShowIconNextDays",&mShowIconNextDays,true); | 95 | addItemBool("ShowIconNextDays",&mShowIconNextDays,true); |
96 | addItemBool("ShowIconNext",&mShowIconNext,true); | 96 | addItemBool("ShowIconNext",&mShowIconNext,true); |
97 | addItemBool("ShowIconJournal",&mShowIconJournal,true); | 97 | addItemBool("ShowIconJournal",&mShowIconJournal,true); |
98 | addItemBool("ShowIconStretch",&mShowIconStretch,true); | 98 | addItemBool("ShowIconStretch",&mShowIconStretch,true); |
99 | addItemBool("LanguageChanged",&mLanguageChanged,false); | 99 | addItemBool("LanguageChanged",&mLanguageChanged,false); |
100 | 100 | ||
101 | addItemBool("AskForQuit",&mAskForQuit,false); | 101 | addItemBool("AskForQuit",&mAskForQuit,false); |
102 | 102 | ||
103 | #ifndef DESKTOP_VERSION | 103 | #ifndef DESKTOP_VERSION |
104 | addItemBool("ShowFullMenu",&mShowFullMenu,false); | 104 | addItemBool("ShowFullMenu",&mShowFullMenu,false); |
105 | #else | 105 | #else |
106 | addItemBool("ShowFullMenu",&mShowFullMenu,true); | 106 | addItemBool("ShowFullMenu",&mShowFullMenu,true); |
107 | #endif | 107 | #endif |
108 | addItemBool("ToolBarHor",&mToolBarHor, true ); | 108 | addItemBool("ToolBarHor",&mToolBarHor, true ); |
109 | addItemBool("ToolBarUp",&mToolBarUp, false ); | 109 | addItemBool("ToolBarUp",&mToolBarUp, false ); |
110 | addItemBool("ToolBarMiniIcons",&mToolBarMiniIcons, false ); | 110 | addItemBool("ToolBarMiniIcons",&mToolBarMiniIcons, false ); |
111 | addItemInt("Whats Next Days",&mWhatsNextDays,3); | 111 | addItemInt("Whats Next Days",&mWhatsNextDays,3); |
112 | addItemInt("Whats Next Prios",&mWhatsNextPrios,1); | 112 | addItemInt("Whats Next Prios",&mWhatsNextPrios,1); |
113 | 113 | ||
114 | addItemBool("ShowTodoInAgenda",&mShowTodoInAgenda,true); | 114 | addItemBool("ShowTodoInAgenda",&mShowTodoInAgenda,true); |
115 | addItemBool("ShowCompletedTodo",&mShowCompletedTodo,true); | 115 | addItemBool("ShowCompletedTodo",&mShowCompletedTodo,true); |
116 | addItemInt("AllDay Size",&mAllDaySize,28); | 116 | addItemInt("AllDay Size",&mAllDaySize,28); |
117 | QString defAlarm = KGlobal::iconLoader()->iconPath()+"koalarm.wav"; | 117 | QString defAlarm = KGlobal::iconLoader()->iconPath()+"koalarm.wav"; |
118 | addItemString("DefaultAlarmFile",&mDefaultAlarmFile,defAlarm ); | 118 | addItemString("DefaultAlarmFile",&mDefaultAlarmFile,defAlarm ); |
119 | 119 | ||
120 | addItemStringList("LocationDefaults",&mLocationDefaults ); | 120 | addItemStringList("LocationDefaults",&mLocationDefaults ); |
121 | addItemStringList("EventSummary User",&mEventSummaryUser); | 121 | addItemStringList("EventSummary User",&mEventSummaryUser); |
122 | addItemStringList("TodoSummary User",&mTodoSummaryUser); | 122 | addItemStringList("TodoSummary User",&mTodoSummaryUser); |
123 | 123 | ||
124 | addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); | 124 | addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); |
125 | addItemBool("Enable Project View",&mEnableProjectView,false); | 125 | addItemBool("Enable Project View",&mEnableProjectView,false); |
126 | addItemBool("Auto Save",&mAutoSave,false); | 126 | addItemBool("Auto Save",&mAutoSave,false); |
127 | addItemInt("Auto Save Interval",&mAutoSaveInterval,3); | 127 | addItemInt("Auto Save Interval",&mAutoSaveInterval,3); |
128 | addItemBool("Confirm Deletes",&mConfirm,true); | 128 | addItemBool("Confirm Deletes",&mConfirm,true); |
129 | addItemString("Archive File",&mArchiveFile); | 129 | addItemString("Archive File",&mArchiveFile); |
130 | addItemString("Html Export File",&mHtmlExportFile, | 130 | addItemString("Html Export File",&mHtmlExportFile, |
131 | QDir::homeDirPath() + "/" + i18n("Default export file", "calendar.html")); | 131 | QDir::homeDirPath() + "/" + i18n("Default export file", "calendar.html")); |
132 | addItemBool("Html With Save",&mHtmlWithSave,false); | 132 | addItemBool("Html With Save",&mHtmlWithSave,false); |
133 | 133 | ||
134 | KPrefs::setCurrentGroup("Personal Settings"); | 134 | KPrefs::setCurrentGroup("Personal Settings"); |
135 | 135 | ||
136 | addItemInt("Mail Client",&mMailClient,MailClientKMail); | 136 | addItemInt("Mail Client",&mMailClient,MailClientKMail); |
137 | addItemBool("Use Control Center Email",&mEmailControlCenter,false); | 137 | addItemBool("Use Control Center Email",&mEmailControlCenter,false); |
138 | addItemBool("Bcc",&mBcc,false); | 138 | addItemBool("Bcc",&mBcc,false); |
139 | 139 | ||
140 | KPrefs::setCurrentGroup("Time & Date"); | 140 | KPrefs::setCurrentGroup("Time & Date"); |
141 | 141 | ||
142 | // addItemString("Time Zone",&mTimeZone,"+0100"); | 142 | // addItemString("Time Zone",&mTimeZone,"+0100"); |
143 | addItemString("TimeZoneName",&mTimeZoneId,i18n ("+01:00 Europe/Oslo(CET)") ); | 143 | addItemString("TimeZoneName",&mTimeZoneId,i18n ("+01:00 Europe/Oslo(CET)") ); |
144 | // addItemInt("TimeZoneOffset",&mTimeZoneOffset,60); | 144 | // addItemInt("TimeZoneOffset",&mTimeZoneOffset,60); |
145 | addItemBool("UseDaylightsaving",&mUseDaylightsaving,true); | 145 | addItemBool("UseDaylightsaving",&mUseDaylightsaving,true); |
146 | addItemInt("DaylightsavingStart",&mDaylightsavingStart,90); | 146 | addItemInt("DaylightsavingStart",&mDaylightsavingStart,90); |
147 | addItemInt("DaylightsavingEnd",&mDaylightsavingEnd,304); | 147 | addItemInt("DaylightsavingEnd",&mDaylightsavingEnd,304); |
148 | 148 | ||
149 | 149 | ||
150 | addItemInt("Default Start Time",&mStartTime,10); | 150 | addItemInt("Default Start Time",&mStartTime,10); |
151 | addItemInt("Default Duration",&mDefaultDuration,2); | 151 | addItemInt("Default Duration",&mDefaultDuration,2); |
152 | addItemInt("Default Alarm Time",&mAlarmTime,3); | 152 | addItemInt("Default Alarm Time",&mAlarmTime,3); |
153 | addItemInt("Daylight Savings",&mDaylightSavings,0); | 153 | addItemInt("Daylight Savings",&mDaylightSavings,0); |
154 | KPrefs::setCurrentGroup("AlarmSettings"); | 154 | KPrefs::setCurrentGroup("AlarmSettings"); |
155 | addItemInt("AlarmPlayBeeps",&mAlarmPlayBeeps,20); | 155 | addItemInt("AlarmPlayBeeps",&mAlarmPlayBeeps,20); |
156 | addItemInt("AlarmSuspendTime",&mAlarmSuspendTime,7); | 156 | addItemInt("AlarmSuspendTime",&mAlarmSuspendTime,7); |
157 | addItemInt("AlarmSuspendCount",&mAlarmSuspendCount,5); | 157 | addItemInt("AlarmSuspendCount",&mAlarmSuspendCount,5); |
158 | addItemInt("AlarmBeepInterval",&mAlarmBeepInterval,3); | 158 | addItemInt("AlarmBeepInterval",&mAlarmBeepInterval,3); |
159 | 159 | ||
160 | 160 | ||
161 | KPrefs::setCurrentGroup("Calendar"); | 161 | KPrefs::setCurrentGroup("Calendar"); |
162 | 162 | ||
163 | addItemInt("Default Calendar Format",&mDefaultFormat,FormatICalendar); | 163 | addItemInt("Default Calendar Format",&mDefaultFormat,FormatICalendar); |
164 | 164 | ||
165 | KPrefs::setCurrentGroup("Fonts"); | 165 | KPrefs::setCurrentGroup("Fonts"); |
166 | // qDebug(" KPrefs::setCurrentGroup(Fonts); "); | 166 | // qDebug(" KPrefs::setCurrentGroup(Fonts); "); |
167 | addItemFont("TimeBar Font",&mTimeBarFont); | 167 | addItemFont("TimeBar Font",&mTimeBarFont); |
168 | addItemFont("MonthView Font",&mMonthViewFont); | 168 | addItemFont("MonthView Font",&mMonthViewFont); |
169 | addItemFont("AgendaView Font",&mAgendaViewFont); | 169 | addItemFont("AgendaView Font",&mAgendaViewFont); |
170 | addItemFont("MarcusBains Font",&mMarcusBainsFont); | 170 | addItemFont("MarcusBains Font",&mMarcusBainsFont); |
171 | addItemFont("TimeLabels Font",&mTimeLabelsFont); | 171 | addItemFont("TimeLabels Font",&mTimeLabelsFont); |
172 | addItemFont("TodoView Font",&mTodoViewFont); | 172 | addItemFont("TodoView Font",&mTodoViewFont); |
173 | addItemFont("ListView Font",&mListViewFont); | 173 | addItemFont("ListView Font",&mListViewFont); |
174 | addItemFont("DateNavigator Font",&mDateNavigatorFont); | 174 | addItemFont("DateNavigator Font",&mDateNavigatorFont); |
175 | addItemFont("EditBox Font",&mEditBoxFont); | 175 | addItemFont("EditBox Font",&mEditBoxFont); |
176 | addItemFont("JournalView Font",&mJornalViewFont); | 176 | addItemFont("JournalView Font",&mJornalViewFont); |
177 | addItemFont("WhatsNextView Font",&mWhatsNextFont); | 177 | addItemFont("WhatsNextView Font",&mWhatsNextFont); |
178 | addItemFont("EventView Font",&mEventViewFont); | 178 | addItemFont("EventView Font",&mEventViewFont); |
179 | 179 | ||
180 | KPrefs::setCurrentGroup("SyncProfiles"); | 180 | // KPrefs::setCurrentGroup("SyncProfiles"); |
181 | addItemString("LocalMachineName",&mLocalMachineName, "undefined"); | 181 | // addItemString("LocalMachineName",&mLocalMachineName, "undefined"); |
182 | addItemStringList("SyncProfileNames",&mSyncProfileNames); | 182 | // addItemStringList("SyncProfileNames",&mSyncProfileNames); |
183 | // addItemStringList("ExternSyncProfiles",&mExternSyncProfileNames); | ||
183 | 184 | ||
184 | KPrefs::setCurrentGroup("RemoteSyncing"); | 185 | KPrefs::setCurrentGroup("RemoteSyncing"); |
185 | addItemBool("UsePasswd",&mUsePassWd,false); | 186 | // addItemBool("UsePasswd",&mUsePassWd,false); |
186 | addItemBool("WriteBackFile",&mWriteBackFile,true); | 187 | // addItemBool("WriteBackFile",&mWriteBackFile,true); |
187 | addItemBool("WriteBackExistingOnly",&mWriteBackExistingOnly,false); | 188 | // addItemBool("WriteBackExistingOnly",&mWriteBackExistingOnly,false); |
188 | addItemBool("AskForPreferences",&mAskForPreferences,true); | 189 | // addItemBool("AskForPreferences",&mAskForPreferences,true); |
189 | addItemBool("ShowSyncSummary",&mShowSyncSummary,true); | 190 | // addItemBool("ShowSyncSummary",&mShowSyncSummary,true); |
190 | addItemBool("ShowSyncEvents",&mShowSyncEvents,false); | 191 | addItemBool("ShowSyncEvents",&mShowSyncEvents,false); |
191 | addItemInt("LastSyncTime",&mLastSyncTime,0); | 192 | addItemInt("LastSyncTime",&mLastSyncTime,0); |
192 | addItemInt("SyncAlgoPrefs",&mSyncAlgoPrefs,3); | 193 | addItemInt("SyncAlgoPrefs",&mSyncAlgoPrefs,3); |
193 | addItemInt("RingSyncAlgoPrefs",&mRingSyncAlgoPrefs,3); | 194 | addItemInt("RingSyncAlgoPrefs",&mRingSyncAlgoPrefs,3); |
194 | 195 | ||
195 | #ifdef _WIN32_ | 196 | #ifdef _WIN32_ |
196 | QString hdp= locateLocal("data","korganizer")+"\\\\"; | 197 | QString hdp= locateLocal("data","korganizer")+"\\\\"; |
197 | #else | 198 | #else |
198 | QString hdp= locateLocal("data","korganizer")+"/"; | 199 | QString hdp= locateLocal("data","korganizer")+"/"; |
199 | #endif | 200 | #endif |
200 | addItemString("RemoteIP",&mRemoteIP, "192.168.0.65"); | 201 | // addItemString("RemoteIP",&mRemoteIP, "192.168.0.65"); |
201 | addItemString("RemoteUser",&mRemoteUser, "zaurus"); | 202 | // addItemString("RemoteUser",&mRemoteUser, "zaurus"); |
202 | addItemString("RemotePassWd",&mRemotePassWd, ""); | 203 | // addItemString("RemotePassWd",&mRemotePassWd, ""); |
203 | addItemString("RemoteFile", &mRemoteFile, hdp+"mycalendar.ics"); | 204 | // addItemString("RemoteFile", &mRemoteFile, hdp+"mycalendar.ics"); |
204 | addItemString("LocalTempFile",&mLocalTempFile, "/tmp/tempsyncfile.ics" ); | 205 | // addItemString("LocalTempFile",&mLocalTempFile, "/tmp/tempsyncfile.ics" ); |
205 | 206 | ||
206 | 207 | ||
207 | KPrefs::setCurrentGroup("LoadSaveFileNames"); | 208 | KPrefs::setCurrentGroup("LoadSaveFileNames"); |
208 | 209 | ||
209 | addItemString("LastImportFile", &mLastImportFile ,hdp +"import.ics" ); | 210 | addItemString("LastImportFile", &mLastImportFile ,hdp +"import.ics" ); |
210 | addItemString("LastVcalFile", &mLastVcalFile ,hdp +"export.vcs" ); | 211 | addItemString("LastVcalFile", &mLastVcalFile ,hdp +"export.vcs" ); |
211 | addItemString("LastSaveFile", &mLastSaveFile ,hdp +"mybackup.ics" ); | 212 | addItemString("LastSaveFile", &mLastSaveFile ,hdp +"mybackup.ics" ); |
212 | addItemString("LastLoadFile", &mLastLoadFile ,hdp +"mybackup.ics" ); | 213 | addItemString("LastLoadFile", &mLastLoadFile ,hdp +"mybackup.ics" ); |
213 | addItemString("LastSyncedLocalFile", &mLastSyncedLocalFile ,hdp +"lastsync.ics" ); | 214 | addItemString("LastSyncedLocalFile", &mLastSyncedLocalFile ,hdp +"lastsync.ics" ); |
214 | 215 | ||
215 | 216 | ||
216 | KPrefs::setCurrentGroup("Locale"); | 217 | KPrefs::setCurrentGroup("Locale"); |
217 | addItemInt("PreferredLanguage",&mPreferredLanguage,0); | 218 | addItemInt("PreferredLanguage",&mPreferredLanguage,0); |
218 | addItemInt("PreferredTime",&mPreferredTime,0); | 219 | addItemInt("PreferredTime",&mPreferredTime,0); |
219 | addItemInt("PreferredDate",&mPreferredDate,0); | 220 | addItemInt("PreferredDate",&mPreferredDate,0); |
220 | addItemBool("WeekStartsOnSunday",&mWeekStartsOnSunday,false); | 221 | addItemBool("WeekStartsOnSunday",&mWeekStartsOnSunday,false); |
221 | addItemBool("QuickSavingWOUnicode",&mUseQuicksave,false); | 222 | addItemBool("QuickSavingWOUnicode",&mUseQuicksave,false); |
222 | addItemBool("ShortDateInViewer",&mShortDateInViewer,false); | 223 | addItemBool("ShortDateInViewer",&mShortDateInViewer,false); |
223 | addItemString("UserDateFormatLong", &mUserDateFormatLong, "%A %d %b %y"); | 224 | addItemString("UserDateFormatLong", &mUserDateFormatLong, "%A %d %b %y"); |
224 | addItemString("UserDateFormatShort", &mUserDateFormatShort, "%aK %d.%m.%y"); | 225 | addItemString("UserDateFormatShort", &mUserDateFormatShort, "%aK %d.%m.%y"); |
225 | 226 | ||
226 | 227 | ||
227 | KPrefs::setCurrentGroup("Colors"); | 228 | KPrefs::setCurrentGroup("Colors"); |
228 | addItemColor("Holiday Color",&mHolidayColor,defaultHolidayColor); | 229 | addItemColor("Holiday Color",&mHolidayColor,defaultHolidayColor); |
229 | addItemColor("Highlight Color",&mHighlightColor,defaultHighlightColor); | 230 | addItemColor("Highlight Color",&mHighlightColor,defaultHighlightColor); |
230 | addItemColor("Event Color",&mEventColor,mDefaultCategoryColor); | 231 | addItemColor("Event Color",&mEventColor,mDefaultCategoryColor); |
231 | addItemColor("Agenda Background Color",&mAgendaBgColor,defaultAgendaBgColor); | 232 | addItemColor("Agenda Background Color",&mAgendaBgColor,defaultAgendaBgColor); |
232 | addItemColor("WorkingHours Color",&mWorkingHoursColor,defaultWorkingHoursColor); | 233 | addItemColor("WorkingHours Color",&mWorkingHoursColor,defaultWorkingHoursColor); |
233 | addItemColor("Todo due today Color",&mTodoDueTodayColor,defaultTodoDueTodayColor); | 234 | addItemColor("Todo due today Color",&mTodoDueTodayColor,defaultTodoDueTodayColor); |
234 | addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor); | 235 | addItemColor("Todo overdue Color",&mTodoOverdueColor,defaultTodoOverdueColor); |
235 | addItemColor("MonthViewEvenColor",&mMonthViewEvenColor,QColor( 160,160,255 )); | 236 | addItemColor("MonthViewEvenColor",&mMonthViewEvenColor,QColor( 160,160,255 )); |
236 | addItemColor("MonthViewOddColor",&mMonthViewOddColor,QColor( 160,255,160 )); | 237 | addItemColor("MonthViewOddColor",&mMonthViewOddColor,QColor( 160,255,160 )); |
237 | addItemColor("MonthViewHolidayColor",&mMonthViewHolidayColor,QColor( 255,160,160 )); | 238 | addItemColor("MonthViewHolidayColor",&mMonthViewHolidayColor,QColor( 255,160,160 )); |
238 | addItemBool("MonthViewUsesDayColors",&mMonthViewUsesDayColors,true); | 239 | addItemBool("MonthViewUsesDayColors",&mMonthViewUsesDayColors,true); |
239 | addItemBool("MonthViewSatSunTog",&mMonthViewSatSunTog,true); | 240 | addItemBool("MonthViewSatSunTog",&mMonthViewSatSunTog,true); |
240 | addItemBool("HightlightDateTimeEdit",&mHightlightDateTimeEdit,false); | 241 | addItemBool("HightlightDateTimeEdit",&mHightlightDateTimeEdit,false); |
241 | addItemColor("AppColor1",&mAppColor1,QColor( 130,170,255 )); | 242 | addItemColor("AppColor1",&mAppColor1,QColor( 130,170,255 )); |
242 | addItemColor("AppColor2",&mAppColor2,QColor( 174,216,255 )); | 243 | addItemColor("AppColor2",&mAppColor2,QColor( 174,216,255 )); |
243 | addItemBool("UseAppColors",&mUseAppColors,false); | 244 | addItemBool("UseAppColors",&mUseAppColors,false); |
244 | 245 | ||
245 | 246 | ||
246 | 247 | ||
247 | KPrefs::setCurrentGroup("Views"); | 248 | KPrefs::setCurrentGroup("Views"); |
248 | addItemInt("Hour Size",&mHourSize,8); | 249 | addItemInt("Hour Size",&mHourSize,8); |
249 | addItemBool("Show Daily Recurrences",&mDailyRecur,true); | 250 | addItemBool("Show Daily Recurrences",&mDailyRecur,true); |
250 | addItemBool("Show Weekly Recurrences",&mWeeklyRecur,true); | 251 | addItemBool("Show Weekly Recurrences",&mWeeklyRecur,true); |
251 | addItemBool("Show Month Daily Recurrences",&mMonthDailyRecur,true); | 252 | addItemBool("Show Month Daily Recurrences",&mMonthDailyRecur,true); |
252 | addItemBool("Show Month Weekly Recurrences",&mMonthWeeklyRecur,true); | 253 | addItemBool("Show Month Weekly Recurrences",&mMonthWeeklyRecur,true); |
253 | addItemBool("ShowShortMonthName",&mMonthShowShort,false); | 254 | addItemBool("ShowShortMonthName",&mMonthShowShort,false); |
254 | addItemBool("ShowIconsInMonthCell",&mMonthShowIcons,true); | 255 | addItemBool("ShowIconsInMonthCell",&mMonthShowIcons,true); |
255 | addItemBool("Enable ToolTips",&mEnableToolTips,false); | 256 | addItemBool("Enable ToolTips",&mEnableToolTips,false); |
256 | addItemBool("Enable MonthView ScrollBars",&mEnableMonthScroll,false); | 257 | addItemBool("Enable MonthView ScrollBars",&mEnableMonthScroll,false); |
257 | addItemBool("Marcus Bains shows seconds",&mMarcusBainsShowSeconds,false); | 258 | addItemBool("Marcus Bains shows seconds",&mMarcusBainsShowSeconds,false); |
258 | addItemBool("Show Marcus Bains",&mMarcusBainsEnabled,true); | 259 | addItemBool("Show Marcus Bains",&mMarcusBainsEnabled,true); |
259 | addItemBool("EditOnDoubleClick",&mEditOnDoubleClick,true); | 260 | addItemBool("EditOnDoubleClick",&mEditOnDoubleClick,true); |
260 | addItemBool("ViewChangeHoldFullscreen",&mViewChangeHoldFullscreen,false); | 261 | addItemBool("ViewChangeHoldFullscreen",&mViewChangeHoldFullscreen,false); |
261 | addItemBool("ViewChangeHoldNonFullscreen",&mViewChangeHoldNonFullscreen,false); | 262 | addItemBool("ViewChangeHoldNonFullscreen",&mViewChangeHoldNonFullscreen,false); |
262 | addItemBool("CenterOnCurrentTime",&mCenterOnCurrentTime,false); | 263 | addItemBool("CenterOnCurrentTime",&mCenterOnCurrentTime,false); |
263 | addItemBool("SetTimeToDayStartAt",&mSetTimeToDayStartAt,true); | 264 | addItemBool("SetTimeToDayStartAt",&mSetTimeToDayStartAt,true); |
264 | addItemBool("HighlightCurrentDay",&mHighlightCurrentDay,true); | 265 | addItemBool("HighlightCurrentDay",&mHighlightCurrentDay,true); |
265 | addItemBool("WNViewShowsParents",&mWNViewShowsParents,true); | 266 | addItemBool("WNViewShowsParents",&mWNViewShowsParents,true); |
266 | addItemBool("WNViewShowLocation",&mWNViewShowLocation,false); | 267 | addItemBool("WNViewShowLocation",&mWNViewShowLocation,false); |
267 | addItemBool("UseHighlightLightColor",&mUseHighlightLightColor,false); | 268 | addItemBool("UseHighlightLightColor",&mUseHighlightLightColor,false); |
268 | addItemBool("ListViewMonthTimespan",&mListViewMonthTimespan,true); | 269 | addItemBool("ListViewMonthTimespan",&mListViewMonthTimespan,true); |
269 | addItemBool("TodoViewUsesCatColors",&mTodoViewUsesCatColors,false); | 270 | addItemBool("TodoViewUsesCatColors",&mTodoViewUsesCatColors,false); |
270 | addItemBool("TodoViewShowsPercentage",&mTodoViewShowsPercentage,false); | 271 | addItemBool("TodoViewShowsPercentage",&mTodoViewShowsPercentage,false); |
271 | addItemBool("TodoViewUsesSmallFont",&mTodoViewUsesSmallFont,false); | 272 | addItemBool("TodoViewUsesSmallFont",&mTodoViewUsesSmallFont,false); |
272 | addItemBool("TodoViewUsesForegroundColor",&mTodoViewUsesForegroundColor,false); | 273 | addItemBool("TodoViewUsesForegroundColor",&mTodoViewUsesForegroundColor,false); |
273 | addItemBool("MonthViewUsesForegroundColor",&mMonthViewUsesForegroundColor,false); | 274 | addItemBool("MonthViewUsesForegroundColor",&mMonthViewUsesForegroundColor,false); |
274 | #ifdef DESKTOP_VERSION | 275 | #ifdef DESKTOP_VERSION |
275 | addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,true); | 276 | addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,true); |
276 | #else | 277 | #else |
277 | addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,false); | 278 | addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,false); |
278 | #endif | 279 | #endif |
279 | addItemInt("Day Begins",&mDayBegins,7); | 280 | addItemInt("Day Begins",&mDayBegins,7); |
280 | addItemInt("Working Hours Start",&mWorkingHoursStart,8); | 281 | addItemInt("Working Hours Start",&mWorkingHoursStart,8); |
281 | addItemInt("Working Hours End",&mWorkingHoursEnd,17); | 282 | addItemInt("Working Hours End",&mWorkingHoursEnd,17); |
282 | addItemBool("Exclude Holidays",&mExcludeHolidays,true); | 283 | addItemBool("Exclude Holidays",&mExcludeHolidays,true); |
283 | addItemBool("Exclude Saturdays",&mExcludeSaturdays,true); | 284 | addItemBool("Exclude Saturdays",&mExcludeSaturdays,true); |
284 | 285 | ||
285 | addItemBool("Month View Uses Category Color",&mMonthViewUsesCategoryColor,false); | 286 | addItemBool("Month View Uses Category Color",&mMonthViewUsesCategoryColor,false); |
286 | addItemBool("Full View Month",&mFullViewMonth,true); | 287 | addItemBool("Full View Month",&mFullViewMonth,true); |
287 | addItemBool("Full View Todo",&mFullViewTodo,true); | 288 | addItemBool("Full View Todo",&mFullViewTodo,true); |
288 | addItemBool("Quick Todo",&mEnableQuickTodo,false); | 289 | addItemBool("Quick Todo",&mEnableQuickTodo,false); |
289 | 290 | ||
290 | addItemInt("Next X Days",&mNextXDays,3); | 291 | addItemInt("Next X Days",&mNextXDays,3); |
291 | 292 | ||
292 | KPrefs::setCurrentGroup("Printer"); | 293 | KPrefs::setCurrentGroup("Printer"); |
293 | 294 | ||
294 | KPrefs::setCurrentGroup("Layout"); | 295 | KPrefs::setCurrentGroup("Layout"); |
295 | 296 | ||
296 | addItemBool("CompactDialogs",&mCompactDialogs,false); | 297 | addItemBool("CompactDialogs",&mCompactDialogs,false); |
297 | addItemBool("VerticalScreen",&mVerticalScreen,true); | 298 | addItemBool("VerticalScreen",&mVerticalScreen,true); |
298 | 299 | ||
299 | KPrefs::setCurrentGroup("KOrganizer Plugins"); | 300 | KPrefs::setCurrentGroup("KOrganizer Plugins"); |
300 | 301 | ||
301 | addItemStringList("SelectedPlugins",&mSelectedPlugins,"holidays"); | 302 | addItemStringList("SelectedPlugins",&mSelectedPlugins,"holidays"); |
302 | 303 | ||
303 | KPrefs::setCurrentGroup("Group Scheduling"); | 304 | KPrefs::setCurrentGroup("Group Scheduling"); |
304 | 305 | ||
305 | addItemInt("IMIPScheduler",&mIMIPScheduler,IMIPKMail); | 306 | addItemInt("IMIPScheduler",&mIMIPScheduler,IMIPKMail); |
306 | addItemInt("IMIPSend",&mIMIPSend,IMIPdirectsend); | 307 | addItemInt("IMIPSend",&mIMIPSend,IMIPdirectsend); |
307 | addItemStringList("AdditionalMails",&mAdditionalMails,""); | 308 | addItemStringList("AdditionalMails",&mAdditionalMails,""); |
308 | addItemInt("IMIP auto refresh",&mIMIPAutoRefresh,neverAuto); | 309 | addItemInt("IMIP auto refresh",&mIMIPAutoRefresh,neverAuto); |
309 | addItemInt("IMIP auto insert request",&mIMIPAutoInsertRequest,neverAuto); | 310 | addItemInt("IMIP auto insert request",&mIMIPAutoInsertRequest,neverAuto); |
310 | addItemInt("IMIP auto insert reply",&mIMIPAutoInsertReply,neverAuto); | 311 | addItemInt("IMIP auto insert reply",&mIMIPAutoInsertReply,neverAuto); |
311 | addItemInt("IMIP auto FreeBusy",&mIMIPAutoFreeBusy,neverAuto); | 312 | addItemInt("IMIP auto FreeBusy",&mIMIPAutoFreeBusy,neverAuto); |
312 | addItemInt("IMIP auto save FreeBusy",&mIMIPAutoFreeBusyReply,neverAuto); | 313 | addItemInt("IMIP auto save FreeBusy",&mIMIPAutoFreeBusyReply,neverAuto); |
313 | 314 | ||
314 | KPrefs::setCurrentGroup( "Editors" ); | 315 | KPrefs::setCurrentGroup( "Editors" ); |
315 | 316 | ||
316 | addItemStringList( "EventTemplates", &mEventTemplates ); | 317 | addItemStringList( "EventTemplates", &mEventTemplates ); |
317 | addItemStringList( "TodoTemplates", &mTodoTemplates ); | 318 | addItemStringList( "TodoTemplates", &mTodoTemplates ); |
318 | 319 | ||
319 | addItemInt("DestinationPolicy",&mDestination,standardDestination); | 320 | addItemInt("DestinationPolicy",&mDestination,standardDestination); |
320 | 321 | ||
321 | 322 | ||
322 | 323 | ||
323 | } | 324 | } |
324 | 325 | ||
325 | 326 | ||
326 | KOPrefs::~KOPrefs() | 327 | KOPrefs::~KOPrefs() |
327 | { | 328 | { |
328 | if (mInstance == this) | 329 | if (mInstance == this) |
329 | mInstance = insd.setObject(0); | 330 | mInstance = insd.setObject(0); |
330 | setLocaleDict( 0 ); | 331 | setLocaleDict( 0 ); |
331 | if ( mLocaleDict ) | 332 | if ( mLocaleDict ) |
332 | delete mLocaleDict; | 333 | delete mLocaleDict; |
333 | //qDebug("KOPrefs::~KOPrefs() "); | 334 | //qDebug("KOPrefs::~KOPrefs() "); |
334 | } | 335 | } |
335 | 336 | ||
336 | 337 | ||
337 | KOPrefs *KOPrefs::instance() | 338 | KOPrefs *KOPrefs::instance() |
338 | { | 339 | { |
339 | if (!mInstance) { | 340 | if (!mInstance) { |
340 | mInstance = insd.setObject(new KOPrefs()); | 341 | mInstance = insd.setObject(new KOPrefs()); |
341 | mInstance->readConfig(); | 342 | mInstance->readConfig(); |
342 | } | 343 | } |
343 | 344 | ||
344 | return mInstance; | 345 | return mInstance; |
345 | } | 346 | } |
346 | 347 | ||
347 | void KOPrefs::usrSetDefaults() | 348 | void KOPrefs::usrSetDefaults() |
348 | { | 349 | { |
349 | 350 | ||
350 | } | 351 | } |
351 | 352 | ||
352 | void KOPrefs::fillMailDefaults() | 353 | void KOPrefs::fillMailDefaults() |
353 | { | 354 | { |
354 | if (mName.isEmpty()) mName = i18n("Anonymous"); | 355 | if (mName.isEmpty()) mName = i18n("Anonymous"); |
355 | if (mEmail.isEmpty()) mEmail = i18n("nobody@nowhere"); | 356 | if (mEmail.isEmpty()) mEmail = i18n("nobody@nowhere"); |
356 | } | 357 | } |
357 | 358 | ||
358 | void KOPrefs::setTimeZoneIdDefault() | 359 | void KOPrefs::setTimeZoneIdDefault() |
359 | { | 360 | { |
360 | mTimeZoneId = i18n("+01:00 Europe/Oslo(CET)"); | 361 | mTimeZoneId = i18n("+01:00 Europe/Oslo(CET)"); |
361 | } | 362 | } |
362 | 363 | ||
363 | void KOPrefs::setCategoryDefaults() | 364 | void KOPrefs::setCategoryDefaults() |
364 | { | 365 | { |
365 | mCustomCategories.clear(); | 366 | mCustomCategories.clear(); |
366 | mCustomCategories = getDefaultList(); | 367 | mCustomCategories = getDefaultList(); |
367 | 368 | ||
368 | QStringList::Iterator it; | 369 | QStringList::Iterator it; |
369 | for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { | 370 | for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { |
370 | setCategoryColor(*it,mDefaultCategoryColor); | 371 | setCategoryColor(*it,mDefaultCategoryColor); |
371 | } | 372 | } |
372 | } | 373 | } |
373 | 374 | ||
374 | QStringList KOPrefs::getDefaultList() | 375 | QStringList KOPrefs::getDefaultList() |
375 | { | 376 | { |
376 | QStringList retval ; | 377 | QStringList retval ; |
377 | retval << i18n("Anniversary") << i18n("Appointment") << i18n("Birthday") << i18n("Business") << i18n("Business Travel") << i18n("Cinema") << i18n("Customer") | 378 | retval << i18n("Anniversary") << i18n("Appointment") << i18n("Birthday") << i18n("Business") << i18n("Business Travel") << i18n("Cinema") << i18n("Customer") |
378 | << i18n("Break")<< i18n("Breakfast")<< i18n("Competition")<< i18n("Dinner") | 379 | << i18n("Break")<< i18n("Breakfast")<< i18n("Competition")<< i18n("Dinner") |
379 | << i18n("Education")<< i18n("Family") << i18n("Favorites") << i18n("Festival")<< i18n("Fishing")<< i18n("Flight") << i18n("Gifts") | 380 | << i18n("Education")<< i18n("Family") << i18n("Favorites") << i18n("Festival")<< i18n("Fishing")<< i18n("Flight") << i18n("Gifts") |
380 | << i18n("Holiday") << i18n("Holiday Cards")<< i18n("Hot Contacts") << i18n("Hiking") << i18n("Hunting") << i18n("Key Customer") << i18n("Kids") | 381 | << i18n("Holiday") << i18n("Holiday Cards")<< i18n("Hot Contacts") << i18n("Hiking") << i18n("Hunting") << i18n("Key Customer") << i18n("Kids") |
381 | << i18n("Lunch") << i18n("Meeting") << i18n("Miscellaneous") << i18n("Partner")<< i18n("Party") << i18n("Personal") << i18n("Personal Travel") | 382 | << i18n("Lunch") << i18n("Meeting") << i18n("Miscellaneous") << i18n("Partner")<< i18n("Party") << i18n("Personal") << i18n("Personal Travel") |
382 | << i18n("PHB") << i18n("Phone Calls") << i18n("Projects") << i18n("Recurring") << i18n("School") << i18n("Shopping") | 383 | << i18n("PHB") << i18n("Phone Calls") << i18n("Projects") << i18n("Recurring") << i18n("School") << i18n("Shopping") |
383 | << i18n("Speach") << i18n("Special Occasion") << i18n("Sports") << i18n("Talk") << i18n("Travel") << i18n("TV")<< i18n("University") | 384 | << i18n("Speach") << i18n("Special Occasion") << i18n("Sports") << i18n("Talk") << i18n("Travel") << i18n("TV")<< i18n("University") |
384 | << i18n("Vacation") << i18n("VIP") << i18n("SyncEvent") ; | 385 | << i18n("Vacation") << i18n("VIP") << i18n("SyncEvent") ; |
385 | retval.sort(); | 386 | retval.sort(); |
386 | return retval; | 387 | return retval; |
387 | } | 388 | } |
388 | 389 | ||
389 | void KOPrefs::usrReadConfig() | 390 | void KOPrefs::usrReadConfig() |
390 | { | 391 | { |
391 | mLocaleDict = 0; | 392 | mLocaleDict = 0; |
392 | // pending LR fix translation | 393 | // pending LR fix translation |
393 | // qDebug("KOPrefs::usrReadConfig() fix translation "); | 394 | // qDebug("KOPrefs::usrReadConfig() fix translation "); |
394 | if ( mPreferredLanguage == 1 ) { | 395 | if ( mPreferredLanguage == 1 ) { |
395 | mLocaleDict = new QDict<QString>; | 396 | mLocaleDict = new QDict<QString>; |
396 | int i = 0; | 397 | int i = 0; |
397 | QString fw ( germanwords[i] [0]); | 398 | QString fw ( germanwords[i] [0]); |
398 | while ( !fw.isEmpty() ) { | 399 | while ( !fw.isEmpty() ) { |
399 | mLocaleDict->insert( fw, new QString (germanwords[i] [1] )); | 400 | mLocaleDict->insert( fw, new QString (germanwords[i] [1] )); |
400 | ++i; | 401 | ++i; |
401 | fw = germanwords[i] [0]; | 402 | fw = germanwords[i] [0]; |
402 | } | 403 | } |
403 | 404 | ||
404 | setLocaleDict( mLocaleDict ); | 405 | setLocaleDict( mLocaleDict ); |
405 | } | 406 | } |
406 | if ( mPreferredLanguage == 3 ) { | 407 | if ( mPreferredLanguage == 3 ) { |
407 | QString fileName = MainWindow::resourcePath()+"usertranslation.txt"; | 408 | QString fileName = MainWindow::resourcePath()+"usertranslation.txt"; |
408 | QFile file( fileName ); | 409 | QFile file( fileName ); |
409 | if (file.open( IO_ReadOnly ) ) { | 410 | if (file.open( IO_ReadOnly ) ) { |
410 | QTextStream ts( &file ); | 411 | QTextStream ts( &file ); |
411 | ts.setCodec( QTextCodec::codecForLocale() ); | 412 | ts.setCodec( QTextCodec::codecForLocale() ); |
412 | QString text = ts.read(); | 413 | QString text = ts.read(); |
413 | file.close(); | 414 | file.close(); |
414 | 415 | ||
415 | QString line; | 416 | QString line; |
416 | QString we; | 417 | QString we; |
417 | QString wt; | 418 | QString wt; |
418 | int br = 0; | 419 | int br = 0; |
419 | int nbr; | 420 | int nbr; |
420 | nbr = text.find ( "},", br ); | 421 | nbr = text.find ( "},", br ); |
421 | line = text.mid( br, nbr - br ); | 422 | line = text.mid( br, nbr - br ); |
422 | br = nbr+1; | 423 | br = nbr+1; |
423 | int se, ee, st, et; | 424 | int se, ee, st, et; |
424 | mLocaleDict = new QDict<QString>; | 425 | mLocaleDict = new QDict<QString>; |
425 | QString end = "{ \"\",\"\" }"; | 426 | QString end = "{ \"\",\"\" }"; |
426 | while ( (line != end) && (br > 1) ) { | 427 | while ( (line != end) && (br > 1) ) { |
427 | //qDebug("%d *%s* ", br, line.latin1()); | 428 | //qDebug("%d *%s* ", br, line.latin1()); |
428 | se = line.find("\"")+1; | 429 | se = line.find("\"")+1; |
429 | et = line.findRev("\"",-1); | 430 | et = line.findRev("\"",-1); |
430 | ee = line.find("\",\""); | 431 | ee = line.find("\",\""); |
431 | st = ee+3; | 432 | st = ee+3; |
432 | we = line.mid( se, ee-se ); | 433 | we = line.mid( se, ee-se ); |
433 | wt = line.mid( st, et-st ); | 434 | wt = line.mid( st, et-st ); |
434 | //qDebug("*%s* *%s* ", we.latin1(), wt.latin1()); | 435 | //qDebug("*%s* *%s* ", we.latin1(), wt.latin1()); |
435 | mLocaleDict->insert( we, new QString (wt) ); | 436 | mLocaleDict->insert( we, new QString (wt) ); |
436 | nbr = text.find ( "}", br ); | 437 | nbr = text.find ( "}", br ); |
437 | line = text.mid( br, nbr - br ); | 438 | line = text.mid( br, nbr - br ); |
438 | br = nbr+1; | 439 | br = nbr+1; |
439 | } | 440 | } |
440 | //qDebug("end *%s* ", end.latin1()); | 441 | //qDebug("end *%s* ", end.latin1()); |
441 | 442 | ||
442 | setLocaleDict( mLocaleDict ); | 443 | setLocaleDict( mLocaleDict ); |
443 | } else { | 444 | } else { |
444 | qDebug("KO: Cannot find translation file usertranslation.txt"); | 445 | qDebug("KO: Cannot find translation file usertranslation.txt"); |
445 | } | 446 | } |
446 | } | 447 | } |
447 | config()->setGroup("General"); | 448 | config()->setGroup("General"); |
448 | 449 | ||
449 | mCustomCategories = config()->readListEntry("Custom Categories"); | 450 | mCustomCategories = config()->readListEntry("Custom Categories"); |
450 | if ( KOPrefs::instance()->mLanguageChanged ) { | 451 | if ( KOPrefs::instance()->mLanguageChanged ) { |
451 | mLocationDefaults.clear(); | 452 | mLocationDefaults.clear(); |
452 | mEventSummaryUser.clear(); | 453 | mEventSummaryUser.clear(); |
453 | mTodoSummaryUser.clear(); | 454 | mTodoSummaryUser.clear(); |
454 | } | 455 | } |
455 | if (mLocationDefaults.isEmpty()) { | 456 | if (mLocationDefaults.isEmpty()) { |
456 | mLocationDefaults << i18n("Home") << i18n("Office") << i18n("Libary") << i18n("School") << i18n("Doctor") << i18n("Beach") | 457 | mLocationDefaults << i18n("Home") << i18n("Office") << i18n("Libary") << i18n("School") << i18n("Doctor") << i18n("Beach") |
457 | << i18n("University") << i18n("Restaurant") << i18n("Bar") << i18n("Conference room") << i18n("Cinema") << i18n("Lake") << i18n("Kindergarden") | 458 | << i18n("University") << i18n("Restaurant") << i18n("Bar") << i18n("Conference room") << i18n("Cinema") << i18n("Lake") << i18n("Kindergarden") |
458 | << i18n("Germany") << i18n("Sweden") << i18n("Forest") << i18n("Desert") << i18n("Kitchen") ; | 459 | << i18n("Germany") << i18n("Sweden") << i18n("Forest") << i18n("Desert") << i18n("Kitchen") ; |
459 | // << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") | 460 | // << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") |
460 | mLocationDefaults.sort(); | 461 | mLocationDefaults.sort(); |
461 | } | 462 | } |
462 | 463 | ||
463 | if (mEventSummaryUser.isEmpty()) { | 464 | if (mEventSummaryUser.isEmpty()) { |
464 | mEventSummaryUser = getDefaultList() ; | 465 | mEventSummaryUser = getDefaultList() ; |
465 | } | 466 | } |
466 | if (mTodoSummaryUser.isEmpty()) { | 467 | if (mTodoSummaryUser.isEmpty()) { |
467 | mTodoSummaryUser = getDefaultList() ; | 468 | mTodoSummaryUser = getDefaultList() ; |
468 | } | 469 | } |
469 | 470 | ||
470 | if (mCustomCategories.isEmpty()) setCategoryDefaults(); | 471 | if (mCustomCategories.isEmpty()) setCategoryDefaults(); |
471 | 472 | ||
472 | config()->setGroup("Personal Settings"); | 473 | config()->setGroup("Personal Settings"); |
473 | mName = config()->readEntry("user_name",""); | 474 | mName = config()->readEntry("user_name",""); |
474 | mEmail = config()->readEntry("user_email",""); | 475 | mEmail = config()->readEntry("user_email",""); |
475 | fillMailDefaults(); | 476 | fillMailDefaults(); |
476 | 477 | ||
477 | config()->setGroup("Category Colors"); | 478 | config()->setGroup("Category Colors"); |
478 | QStringList::Iterator it; | 479 | QStringList::Iterator it; |
479 | for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { | 480 | for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { |
480 | setCategoryColor(*it,config()->readColorEntry(*it,&mDefaultCategoryColor)); | 481 | setCategoryColor(*it,config()->readColorEntry(*it,&mDefaultCategoryColor)); |
481 | 482 | ||
482 | } | 483 | } |
483 | 484 | ||
484 | if (mTimeZoneId.isEmpty()) { | 485 | if (mTimeZoneId.isEmpty()) { |
485 | setTimeZoneIdDefault(); | 486 | setTimeZoneIdDefault(); |
486 | } | 487 | } |
487 | KPimPrefs::usrReadConfig(); | 488 | KPimPrefs::usrReadConfig(); |
488 | } | 489 | } |
489 | 490 | ||
490 | 491 | ||
491 | void KOPrefs::usrWriteConfig() | 492 | void KOPrefs::usrWriteConfig() |
492 | { | 493 | { |
493 | config()->setGroup("General"); | 494 | config()->setGroup("General"); |
494 | config()->writeEntry("Custom Categories",mCustomCategories); | 495 | config()->writeEntry("Custom Categories",mCustomCategories); |
495 | 496 | ||
496 | config()->setGroup("Personal Settings"); | 497 | config()->setGroup("Personal Settings"); |
497 | config()->writeEntry("user_name",mName); | 498 | config()->writeEntry("user_name",mName); |
498 | config()->writeEntry("user_email",mEmail); | 499 | config()->writeEntry("user_email",mEmail); |
499 | 500 | ||
500 | config()->setGroup("Category Colors"); | 501 | config()->setGroup("Category Colors"); |
501 | QDictIterator<QColor> it(mCategoryColors); | 502 | QDictIterator<QColor> it(mCategoryColors); |
502 | while (it.current()) { | 503 | while (it.current()) { |
503 | config()->writeEntry(it.currentKey(),*(it.current())); | 504 | config()->writeEntry(it.currentKey(),*(it.current())); |
504 | ++it; | 505 | ++it; |
505 | } | 506 | } |
506 | 507 | ||
507 | 508 | ||
508 | KPimPrefs::usrWriteConfig(); | 509 | KPimPrefs::usrWriteConfig(); |
509 | } | 510 | } |
510 | 511 | ||
511 | void KOPrefs::setCategoryColor(QString cat,const QColor & color) | 512 | void KOPrefs::setCategoryColor(QString cat,const QColor & color) |
512 | { | 513 | { |
513 | mCategoryColors.replace(cat,new QColor(color)); | 514 | mCategoryColors.replace(cat,new QColor(color)); |
514 | } | 515 | } |
515 | 516 | ||
516 | QColor *KOPrefs::categoryColor(QString cat) | 517 | QColor *KOPrefs::categoryColor(QString cat) |
517 | { | 518 | { |
518 | QColor *color = 0; | 519 | QColor *color = 0; |
519 | 520 | ||
520 | if (!cat.isEmpty()) color = mCategoryColors[cat]; | 521 | if (!cat.isEmpty()) color = mCategoryColors[cat]; |
521 | 522 | ||
522 | if (color) return color; | 523 | if (color) return color; |
523 | else return &mDefaultCategoryColor; | 524 | else return &mDefaultCategoryColor; |
524 | } | 525 | } |
525 | 526 | ||
526 | void KOPrefs::setFullName(const QString &name) | 527 | void KOPrefs::setFullName(const QString &name) |
527 | { | 528 | { |
528 | mName = name; | 529 | mName = name; |
529 | } | 530 | } |
530 | 531 | ||
531 | void KOPrefs::setEmail(const QString &email) | 532 | void KOPrefs::setEmail(const QString &email) |
532 | { | 533 | { |
533 | //qDebug(" KOPrefs::setEmai*********** %s",email.latin1() ); | 534 | //qDebug(" KOPrefs::setEmai*********** %s",email.latin1() ); |
534 | mEmail = email; | 535 | mEmail = email; |
535 | } | 536 | } |
536 | 537 | ||
537 | QString KOPrefs::fullName() | 538 | QString KOPrefs::fullName() |
538 | { | 539 | { |
539 | if (mEmailControlCenter) { | 540 | if (mEmailControlCenter) { |
540 | KEMailSettings settings; | 541 | KEMailSettings settings; |
541 | return settings.getSetting(KEMailSettings::RealName); | 542 | return settings.getSetting(KEMailSettings::RealName); |
542 | } else { | 543 | } else { |
543 | return mName; | 544 | return mName; |
544 | } | 545 | } |
545 | } | 546 | } |
546 | 547 | ||
547 | QString KOPrefs::email() | 548 | QString KOPrefs::email() |
548 | { | 549 | { |
549 | if (mEmailControlCenter) { | 550 | if (mEmailControlCenter) { |
550 | KEMailSettings settings; | 551 | KEMailSettings settings; |
551 | return settings.getSetting(KEMailSettings::EmailAddress); | 552 | return settings.getSetting(KEMailSettings::EmailAddress); |
552 | } else { | 553 | } else { |
553 | return mEmail; | 554 | return mEmail; |
554 | } | 555 | } |
555 | } | 556 | } |
556 | KConfig* KOPrefs::getConfig() | 557 | KConfig* KOPrefs::getConfig() |
557 | { | 558 | { |
558 | return config(); | 559 | return config(); |
559 | } | 560 | } |
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h index fe044e6..424fa98 100644 --- a/korganizer/koprefs.h +++ b/korganizer/koprefs.h | |||
@@ -1,299 +1,300 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KOrganizer. | 2 | This file is part of KOrganizer. |
3 | Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> | 3 | Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify | 5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or | 7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | This program is distributed in the hope that it will be useful, | 10 | This program is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 | 18 | ||
19 | As a special exception, permission is given to link this program | 19 | As a special exception, permission is given to link this program |
20 | with any edition of Qt, and distribute the resulting executable, | 20 | with any edition of Qt, and distribute the resulting executable, |
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 | ||
30 | class KConfig; | 30 | class KConfig; |
31 | class QFont; | 31 | class QFont; |
32 | class QColor; | 32 | class QColor; |
33 | class QStringList; | 33 | class QStringList; |
34 | 34 | ||
35 | class KOPrefs : public KPimPrefs | 35 | class 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 | 213 | ||
214 | int mLastSyncTime; | 214 | int mLastSyncTime; |
215 | int mSyncAlgoPrefs; | 215 | int mSyncAlgoPrefs; |
216 | int mRingSyncAlgoPrefs; | 216 | int mRingSyncAlgoPrefs; |
217 | QStringList mSyncProfileNames; | 217 | QStringList mSyncProfileNames; |
218 | QStringList mExternSyncProfiles; | ||
218 | QString mLocalMachineName; | 219 | QString mLocalMachineName; |
219 | void setCategoryColor(QString cat,const QColor & color); | 220 | void setCategoryColor(QString cat,const QColor & color); |
220 | QColor *categoryColor(QString cat); | 221 | QColor *categoryColor(QString cat); |
221 | 222 | ||
222 | QString mArchiveFile; | 223 | QString mArchiveFile; |
223 | QString mHtmlExportFile; | 224 | QString mHtmlExportFile; |
224 | bool mHtmlWithSave; | 225 | bool mHtmlWithSave; |
225 | 226 | ||
226 | QStringList mSelectedPlugins; | 227 | QStringList mSelectedPlugins; |
227 | 228 | ||
228 | QString mLastImportFile; | 229 | QString mLastImportFile; |
229 | QString mLastVcalFile; | 230 | QString mLastVcalFile; |
230 | QString mLastSaveFile; | 231 | QString mLastSaveFile; |
231 | QString mLastLoadFile; | 232 | QString mLastLoadFile; |
232 | QString mLastSyncedLocalFile; | 233 | QString mLastSyncedLocalFile; |
233 | 234 | ||
234 | 235 | ||
235 | QString mDefaultAlarmFile; | 236 | QString mDefaultAlarmFile; |
236 | int mIMIPScheduler; | 237 | int mIMIPScheduler; |
237 | int mIMIPSend; | 238 | int mIMIPSend; |
238 | QStringList mAdditionalMails; | 239 | QStringList mAdditionalMails; |
239 | int mIMIPAutoRefresh; | 240 | int mIMIPAutoRefresh; |
240 | int mIMIPAutoInsertReply; | 241 | int mIMIPAutoInsertReply; |
241 | int mIMIPAutoInsertRequest; | 242 | int mIMIPAutoInsertRequest; |
242 | int mIMIPAutoFreeBusy; | 243 | int mIMIPAutoFreeBusy; |
243 | int mIMIPAutoFreeBusyReply; | 244 | int mIMIPAutoFreeBusyReply; |
244 | 245 | ||
245 | QStringList mTodoTemplates; | 246 | QStringList mTodoTemplates; |
246 | QStringList mEventTemplates; | 247 | QStringList mEventTemplates; |
247 | 248 | ||
248 | int mDestination; | 249 | int mDestination; |
249 | 250 | ||
250 | 251 | ||
251 | bool mEditOnDoubleClick; | 252 | bool mEditOnDoubleClick; |
252 | bool mViewChangeHoldFullscreen; | 253 | bool mViewChangeHoldFullscreen; |
253 | bool mViewChangeHoldNonFullscreen; | 254 | bool mViewChangeHoldNonFullscreen; |
254 | bool mCenterOnCurrentTime; | 255 | bool mCenterOnCurrentTime; |
255 | bool mSetTimeToDayStartAt; | 256 | bool mSetTimeToDayStartAt; |
256 | bool mHighlightCurrentDay; | 257 | bool mHighlightCurrentDay; |
257 | bool mUseHighlightLightColor; | 258 | bool mUseHighlightLightColor; |
258 | bool mListViewMonthTimespan; | 259 | bool mListViewMonthTimespan; |
259 | bool mWNViewShowsParents; | 260 | bool mWNViewShowsParents; |
260 | bool mWNViewShowLocation; | 261 | bool mWNViewShowLocation; |
261 | bool mTodoViewShowsPercentage; | 262 | bool mTodoViewShowsPercentage; |
262 | bool mTodoViewUsesCatColors; | 263 | bool mTodoViewUsesCatColors; |
263 | bool mTodoViewUsesSmallFont; | 264 | bool mTodoViewUsesSmallFont; |
264 | bool mTodoViewUsesForegroundColor; | 265 | bool mTodoViewUsesForegroundColor; |
265 | bool mMonthViewUsesForegroundColor; | 266 | bool mMonthViewUsesForegroundColor; |
266 | 267 | ||
267 | bool mHightlightDateTimeEdit; | 268 | bool mHightlightDateTimeEdit; |
268 | int mPreferredLanguage; | 269 | int mPreferredLanguage; |
269 | bool mUseQuicksave; | 270 | bool mUseQuicksave; |
270 | int mPreferredTime; | 271 | int mPreferredTime; |
271 | int mPreferredDate; | 272 | int mPreferredDate; |
272 | bool mWeekStartsOnSunday; | 273 | bool mWeekStartsOnSunday; |
273 | bool mShortDateInViewer; | 274 | bool mShortDateInViewer; |
274 | QString mUserDateFormatLong; | 275 | QString mUserDateFormatLong; |
275 | QString mUserDateFormatShort; | 276 | QString mUserDateFormatShort; |
276 | 277 | ||
277 | QStringList mLocationDefaults; | 278 | QStringList mLocationDefaults; |
278 | QStringList mEventSummaryUser; | 279 | QStringList mEventSummaryUser; |
279 | QStringList mTodoSummaryUser; | 280 | QStringList mTodoSummaryUser; |
280 | 281 | ||
281 | bool mUseInternalAlarmNotification; | 282 | bool mUseInternalAlarmNotification; |
282 | int mAlarmPlayBeeps; | 283 | int mAlarmPlayBeeps; |
283 | int mAlarmSuspendTime; | 284 | int mAlarmSuspendTime; |
284 | int mAlarmSuspendCount; | 285 | int mAlarmSuspendCount; |
285 | int mAlarmBeepInterval; | 286 | int mAlarmBeepInterval; |
286 | 287 | ||
287 | private: | 288 | private: |
288 | QDict<QColor> mCategoryColors; | 289 | QDict<QColor> mCategoryColors; |
289 | QColor mDefaultCategoryColor; | 290 | QColor mDefaultCategoryColor; |
290 | 291 | ||
291 | QFont mDefaultTimeBarFont; | 292 | QFont mDefaultTimeBarFont; |
292 | QFont mDefaultViewFont; | 293 | QFont mDefaultViewFont; |
293 | QFont mDefaultMonthViewFont; | 294 | QFont mDefaultMonthViewFont; |
294 | 295 | ||
295 | QString mName; | 296 | QString mName; |
296 | QString mEmail; | 297 | QString mEmail; |
297 | }; | 298 | }; |
298 | 299 | ||
299 | #endif | 300 | #endif |
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 44b1264..6020a46 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -455,783 +455,786 @@ void MainWindow::initActions() | |||
455 | icon = loadPixmap( pathString + "day" ); | 455 | icon = loadPixmap( pathString + "day" ); |
456 | configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 ); | 456 | configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 ); |
457 | QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this ); | 457 | QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this ); |
458 | day1_action->addTo( viewMenu ); | 458 | day1_action->addTo( viewMenu ); |
459 | // action->addTo( toolBar ); | 459 | // action->addTo( toolBar ); |
460 | connect( day1_action, SIGNAL( activated() ), | 460 | connect( day1_action, SIGNAL( activated() ), |
461 | mView->viewManager(), SLOT( showDayView() ) ); | 461 | mView->viewManager(), SLOT( showDayView() ) ); |
462 | 462 | ||
463 | icon = loadPixmap( pathString + "workweek" ); | 463 | icon = loadPixmap( pathString + "workweek" ); |
464 | configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 ); | 464 | configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 ); |
465 | QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this ); | 465 | QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this ); |
466 | day5_action->addTo( viewMenu ); | 466 | day5_action->addTo( viewMenu ); |
467 | connect( day5_action, SIGNAL( activated() ), | 467 | connect( day5_action, SIGNAL( activated() ), |
468 | mView->viewManager(), SLOT( showWorkWeekView() ) ); | 468 | mView->viewManager(), SLOT( showWorkWeekView() ) ); |
469 | 469 | ||
470 | icon = loadPixmap( pathString + "week" ); | 470 | icon = loadPixmap( pathString + "week" ); |
471 | configureToolBarMenu->insertItem(icon, i18n("Week"), 60 ); | 471 | configureToolBarMenu->insertItem(icon, i18n("Week"), 60 ); |
472 | QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this ); | 472 | QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this ); |
473 | day7_action->addTo( viewMenu ); | 473 | day7_action->addTo( viewMenu ); |
474 | connect( day7_action, SIGNAL( activated() ), | 474 | connect( day7_action, SIGNAL( activated() ), |
475 | mView->viewManager(), SLOT( showWeekView() ) ); | 475 | mView->viewManager(), SLOT( showWeekView() ) ); |
476 | 476 | ||
477 | icon = loadPixmap( pathString + "month" ); | 477 | icon = loadPixmap( pathString + "month" ); |
478 | configureToolBarMenu->insertItem(icon, i18n("Month"), 70 ); | 478 | configureToolBarMenu->insertItem(icon, i18n("Month"), 70 ); |
479 | QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this ); | 479 | QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this ); |
480 | month_action->addTo( viewMenu ); | 480 | month_action->addTo( viewMenu ); |
481 | connect( month_action, SIGNAL( activated() ), | 481 | connect( month_action, SIGNAL( activated() ), |
482 | mView->viewManager(), SLOT( showMonthView() ) ); | 482 | mView->viewManager(), SLOT( showMonthView() ) ); |
483 | 483 | ||
484 | icon = loadPixmap( pathString + "todo" ); | 484 | icon = loadPixmap( pathString + "todo" ); |
485 | configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 ); | 485 | configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 ); |
486 | QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this ); | 486 | QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this ); |
487 | todoview_action->addTo( viewMenu ); | 487 | todoview_action->addTo( viewMenu ); |
488 | connect( todoview_action, SIGNAL( activated() ), | 488 | connect( todoview_action, SIGNAL( activated() ), |
489 | mView->viewManager(), SLOT( showTodoView() ) ); | 489 | mView->viewManager(), SLOT( showTodoView() ) ); |
490 | 490 | ||
491 | icon = loadPixmap( pathString + "journal" ); | 491 | icon = loadPixmap( pathString + "journal" ); |
492 | configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 ); | 492 | configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 ); |
493 | QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this ); | 493 | QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this ); |
494 | viewjournal_action->addTo( viewMenu ); | 494 | viewjournal_action->addTo( viewMenu ); |
495 | connect( viewjournal_action, SIGNAL( activated() ), | 495 | connect( viewjournal_action, SIGNAL( activated() ), |
496 | mView->viewManager(), SLOT( showJournalView() ) ); | 496 | mView->viewManager(), SLOT( showJournalView() ) ); |
497 | 497 | ||
498 | icon = loadPixmap( pathString + "xdays" ); | 498 | icon = loadPixmap( pathString + "xdays" ); |
499 | configureToolBarMenu->insertItem(icon, i18n("Next days"), 100,4 ); | 499 | configureToolBarMenu->insertItem(icon, i18n("Next days"), 100,4 ); |
500 | QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this ); | 500 | QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this ); |
501 | xdays_action->addTo( viewMenu ); | 501 | xdays_action->addTo( viewMenu ); |
502 | connect( xdays_action, SIGNAL( activated() ), | 502 | connect( xdays_action, SIGNAL( activated() ), |
503 | mView->viewManager(), SLOT( showNextXView() ) ); | 503 | mView->viewManager(), SLOT( showNextXView() ) ); |
504 | 504 | ||
505 | icon = loadPixmap( pathString + "whatsnext" ); | 505 | icon = loadPixmap( pathString + "whatsnext" ); |
506 | configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110, 4 ); | 506 | configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110, 4 ); |
507 | QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this ); | 507 | QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this ); |
508 | whatsnext_action->addTo( viewMenu ); | 508 | whatsnext_action->addTo( viewMenu ); |
509 | connect( whatsnext_action, SIGNAL( activated() ), | 509 | connect( whatsnext_action, SIGNAL( activated() ), |
510 | mView->viewManager(), SLOT( showWhatsNextView() ) ); | 510 | mView->viewManager(), SLOT( showWhatsNextView() ) ); |
511 | 511 | ||
512 | #if 0 | 512 | #if 0 |
513 | action = new QAction( "view_timespan", "Time Span", 0, this ); | 513 | action = new QAction( "view_timespan", "Time Span", 0, this ); |
514 | action->addTo( viewMenu ); | 514 | action->addTo( viewMenu ); |
515 | connect( action, SIGNAL( activated() ), | 515 | connect( action, SIGNAL( activated() ), |
516 | mView->viewManager(), SLOT( showTimeSpanView() ) ); | 516 | mView->viewManager(), SLOT( showTimeSpanView() ) ); |
517 | #endif | 517 | #endif |
518 | 518 | ||
519 | mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0, | 519 | mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0, |
520 | this ); | 520 | this ); |
521 | mNewSubTodoAction->addTo( actionMenu ); | 521 | mNewSubTodoAction->addTo( actionMenu ); |
522 | connect( mNewSubTodoAction, SIGNAL( activated() ), | 522 | connect( mNewSubTodoAction, SIGNAL( activated() ), |
523 | mView, SLOT( newSubTodo() ) ); | 523 | mView, SLOT( newSubTodo() ) ); |
524 | 524 | ||
525 | actionMenu->insertSeparator(); | 525 | actionMenu->insertSeparator(); |
526 | 526 | ||
527 | mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this ); | 527 | mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this ); |
528 | mShowAction->addTo( actionMenu ); | 528 | mShowAction->addTo( actionMenu ); |
529 | connect( mShowAction, SIGNAL( activated() ), | 529 | connect( mShowAction, SIGNAL( activated() ), |
530 | mView, SLOT( showIncidence() ) ); | 530 | mView, SLOT( showIncidence() ) ); |
531 | 531 | ||
532 | mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this ); | 532 | mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this ); |
533 | mEditAction->addTo( actionMenu ); | 533 | mEditAction->addTo( actionMenu ); |
534 | connect( mEditAction, SIGNAL( activated() ), | 534 | connect( mEditAction, SIGNAL( activated() ), |
535 | mView, SLOT( editIncidence() ) ); | 535 | mView, SLOT( editIncidence() ) ); |
536 | 536 | ||
537 | mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this ); | 537 | mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this ); |
538 | mDeleteAction->addTo( actionMenu ); | 538 | mDeleteAction->addTo( actionMenu ); |
539 | connect( mDeleteAction, SIGNAL( activated() ), | 539 | connect( mDeleteAction, SIGNAL( activated() ), |
540 | mView, SLOT( deleteIncidence() ) ); | 540 | mView, SLOT( deleteIncidence() ) ); |
541 | 541 | ||
542 | actionMenu->insertSeparator(); | 542 | actionMenu->insertSeparator(); |
543 | 543 | ||
544 | action = new QAction( "purge_completed", i18n("Purge Completed"), 0, | 544 | action = new QAction( "purge_completed", i18n("Purge Completed"), 0, |
545 | this ); | 545 | this ); |
546 | action->addTo( actionMenu ); | 546 | action->addTo( actionMenu ); |
547 | connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); | 547 | connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); |
548 | 548 | ||
549 | icon = loadPixmap( pathString + "search" ); | 549 | icon = loadPixmap( pathString + "search" ); |
550 | QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); | 550 | QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); |
551 | configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4); | 551 | configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4); |
552 | search_action->addTo( actionMenu ); | 552 | search_action->addTo( actionMenu ); |
553 | connect( search_action, SIGNAL( activated() ), | 553 | connect( search_action, SIGNAL( activated() ), |
554 | mView->dialogManager(), SLOT( showSearchDialog() ) ); | 554 | mView->dialogManager(), SLOT( showSearchDialog() ) ); |
555 | 555 | ||
556 | icon = loadPixmap( pathString + "today" ); | 556 | icon = loadPixmap( pathString + "today" ); |
557 | configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130); | 557 | configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130); |
558 | QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this ); | 558 | QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this ); |
559 | today_action->addTo( actionMenu ); | 559 | today_action->addTo( actionMenu ); |
560 | connect( today_action, SIGNAL( activated() ), | 560 | connect( today_action, SIGNAL( activated() ), |
561 | mView, SLOT( goToday() ) ); | 561 | mView, SLOT( goToday() ) ); |
562 | 562 | ||
563 | if ( KOPrefs::instance()->mShowFullMenu ) { | 563 | if ( KOPrefs::instance()->mShowFullMenu ) { |
564 | actionMenu->insertSeparator(); | 564 | actionMenu->insertSeparator(); |
565 | actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); | 565 | actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); |
566 | 566 | ||
567 | } | 567 | } |
568 | // actionMenu->insertSeparator(); | 568 | // actionMenu->insertSeparator(); |
569 | action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, | 569 | action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, |
570 | this ); | 570 | this ); |
571 | action->addTo( importMenu ); | 571 | action->addTo( importMenu ); |
572 | connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); | 572 | connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); |
573 | action = new QAction( "import_quick", i18n("Import last file"), 0, | 573 | action = new QAction( "import_quick", i18n("Import last file"), 0, |
574 | this ); | 574 | this ); |
575 | action->addTo( importMenu ); | 575 | action->addTo( importMenu ); |
576 | connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); | 576 | connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); |
577 | importMenu->insertSeparator(); | 577 | importMenu->insertSeparator(); |
578 | action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, | 578 | action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, |
579 | this ); | 579 | this ); |
580 | action->addTo( importMenu ); | 580 | action->addTo( importMenu ); |
581 | connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); | 581 | connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); |
582 | #ifndef DESKTOP_VERSION | 582 | #ifndef DESKTOP_VERSION |
583 | importMenu->insertSeparator(); | 583 | importMenu->insertSeparator(); |
584 | action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, | 584 | action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, |
585 | this ); | 585 | this ); |
586 | action->addTo( importMenu ); | 586 | action->addTo( importMenu ); |
587 | connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); | 587 | connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); |
588 | #else | 588 | #else |
589 | #ifdef _WIN32_ | 589 | #ifdef _WIN32_ |
590 | importMenu->insertSeparator(); | 590 | importMenu->insertSeparator(); |
591 | action = new QAction( "import_ol", i18n("Import from OL"), 0, | 591 | action = new QAction( "import_ol", i18n("Import from OL"), 0, |
592 | this ); | 592 | this ); |
593 | action->addTo( importMenu ); | 593 | action->addTo( importMenu ); |
594 | connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); | 594 | connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); |
595 | #endif | 595 | #endif |
596 | #endif | 596 | #endif |
597 | 597 | ||
598 | importMenu->insertSeparator(); | 598 | importMenu->insertSeparator(); |
599 | action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, | 599 | action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, |
600 | this ); | 600 | this ); |
601 | action->addTo( importMenu ); | 601 | action->addTo( importMenu ); |
602 | connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); | 602 | connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); |
603 | 603 | ||
604 | action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0, | 604 | action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0, |
605 | this ); | 605 | this ); |
606 | action->addTo( importMenu ); | 606 | action->addTo( importMenu ); |
607 | connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); | 607 | connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); |
608 | 608 | ||
609 | importMenu->insertSeparator(); | 609 | importMenu->insertSeparator(); |
610 | action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, | 610 | action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, |
611 | this ); | 611 | this ); |
612 | action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); | 612 | action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); |
613 | importMenu->insertSeparator(); | 613 | importMenu->insertSeparator(); |
614 | action = new QAction( "manage cat", i18n("Manage new categories..."), 0, | 614 | action = new QAction( "manage cat", i18n("Manage new categories..."), 0, |
615 | this ); | 615 | this ); |
616 | action->addTo( importMenu ); | 616 | action->addTo( importMenu ); |
617 | connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) ); | 617 | connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) ); |
618 | #ifndef DESKTOP_VERSION | 618 | #ifndef DESKTOP_VERSION |
619 | importMenu->insertSeparator(); | 619 | importMenu->insertSeparator(); |
620 | action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, | 620 | action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, |
621 | this ); | 621 | this ); |
622 | action->addTo( importMenu ); | 622 | action->addTo( importMenu ); |
623 | connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) ); | 623 | connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) ); |
624 | 624 | ||
625 | action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0, | 625 | action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0, |
626 | this ); | 626 | this ); |
627 | action->addTo( importMenu ); | 627 | action->addTo( importMenu ); |
628 | connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) ); | 628 | connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) ); |
629 | #else | 629 | #else |
630 | importMenu->insertSeparator(); | 630 | importMenu->insertSeparator(); |
631 | icon = loadPixmap( pathString + "print" ); | 631 | icon = loadPixmap( pathString + "print" ); |
632 | action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this ); | 632 | action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this ); |
633 | action->addTo( importMenu ); | 633 | action->addTo( importMenu ); |
634 | connect( action, SIGNAL( activated() ), | 634 | connect( action, SIGNAL( activated() ), |
635 | this, SLOT( printCal() ) ); | 635 | this, SLOT( printCal() ) ); |
636 | 636 | ||
637 | icon = loadPixmap( pathString + "print" ); | 637 | icon = loadPixmap( pathString + "print" ); |
638 | action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this ); | 638 | action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this ); |
639 | action->addTo( importMenu ); | 639 | action->addTo( importMenu ); |
640 | connect( action, SIGNAL( activated() ), | 640 | connect( action, SIGNAL( activated() ), |
641 | this, SLOT( printSel() ) ); | 641 | this, SLOT( printSel() ) ); |
642 | #endif | 642 | #endif |
643 | importMenu->insertSeparator(); | 643 | importMenu->insertSeparator(); |
644 | action = new QAction( "beam all", i18n("Save"), 0, | 644 | action = new QAction( "beam all", i18n("Save"), 0, |
645 | this ); | 645 | this ); |
646 | action->addTo( importMenu ); | 646 | action->addTo( importMenu ); |
647 | connect( action, SIGNAL( activated() ), this, SLOT( save() ) ); | 647 | connect( action, SIGNAL( activated() ), this, SLOT( save() ) ); |
648 | action = new QAction( "beam all", i18n("Exit (+save)"), 0, | 648 | action = new QAction( "beam all", i18n("Exit (+save)"), 0, |
649 | this ); | 649 | this ); |
650 | action->addTo( importMenu ); | 650 | action->addTo( importMenu ); |
651 | connect( action, SIGNAL( activated() ), this, SLOT( close() ) ); | 651 | connect( action, SIGNAL( activated() ), this, SLOT( close() ) ); |
652 | 652 | ||
653 | //menuBar->insertItem( "Configure",configureMenu ); | 653 | //menuBar->insertItem( "Configure",configureMenu ); |
654 | //configureMenu->insertItem( "Toolbar",configureToolBarMenu ); | 654 | //configureMenu->insertItem( "Toolbar",configureToolBarMenu ); |
655 | icon = loadPixmap( "korganizer/korganizer" ); | 655 | icon = loadPixmap( "korganizer/korganizer" ); |
656 | action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this ); | 656 | action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this ); |
657 | action->addTo( helpMenu ); | 657 | action->addTo( helpMenu ); |
658 | connect( action, SIGNAL( activated() ), | 658 | connect( action, SIGNAL( activated() ), |
659 | SLOT( keyBindings() ) ); | 659 | SLOT( keyBindings() ) ); |
660 | action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this ); | 660 | action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this ); |
661 | action->addTo( helpMenu ); | 661 | action->addTo( helpMenu ); |
662 | connect( action, SIGNAL( activated() ), | 662 | connect( action, SIGNAL( activated() ), |
663 | SLOT( features() ) ); | 663 | SLOT( features() ) ); |
664 | action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this ); | 664 | action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this ); |
665 | action->addTo( helpMenu ); | 665 | action->addTo( helpMenu ); |
666 | connect( action, SIGNAL( activated() ), | 666 | connect( action, SIGNAL( activated() ), |
667 | SLOT( aboutAutoSaving() ) ); | 667 | SLOT( aboutAutoSaving() ) ); |
668 | action = new QAction( "Problemd", i18n("Known Problems..."), 0,this ); | 668 | action = new QAction( "Problemd", i18n("Known Problems..."), 0,this ); |
669 | action->addTo( helpMenu ); | 669 | action->addTo( helpMenu ); |
670 | connect( action, SIGNAL( activated() ), | 670 | connect( action, SIGNAL( activated() ), |
671 | SLOT( aboutKnownBugs() ) ); | 671 | SLOT( aboutKnownBugs() ) ); |
672 | action = new QAction( "Translate Howto", i18n("User translation..."), 0,this ); | 672 | action = new QAction( "Translate Howto", i18n("User translation..."), 0,this ); |
673 | action->addTo( helpMenu ); | 673 | action->addTo( helpMenu ); |
674 | connect( action, SIGNAL( activated() ), | 674 | connect( action, SIGNAL( activated() ), |
675 | SLOT( usertrans() ) ); | 675 | SLOT( usertrans() ) ); |
676 | action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this ); | 676 | action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this ); |
677 | action->addTo( helpMenu ); | 677 | action->addTo( helpMenu ); |
678 | connect( action, SIGNAL( activated() ), | 678 | connect( action, SIGNAL( activated() ), |
679 | SLOT( synchowto() ) ); | 679 | SLOT( synchowto() ) ); |
680 | action = new QAction( "Whats New", i18n("What's new?"), 0,this ); | 680 | action = new QAction( "Whats New", i18n("What's new?"), 0,this ); |
681 | action->addTo( helpMenu ); | 681 | action->addTo( helpMenu ); |
682 | connect( action, SIGNAL( activated() ), | 682 | connect( action, SIGNAL( activated() ), |
683 | SLOT( whatsNew() ) ); | 683 | SLOT( whatsNew() ) ); |
684 | action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this ); | 684 | action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this ); |
685 | action->addTo( helpMenu ); | 685 | action->addTo( helpMenu ); |
686 | connect( action, SIGNAL( activated() ), | 686 | connect( action, SIGNAL( activated() ), |
687 | SLOT( faq() ) ); | 687 | SLOT( faq() ) ); |
688 | 688 | ||
689 | 689 | ||
690 | action = new QAction( "about", i18n("About..."), 0, this ); | 690 | action = new QAction( "about", i18n("About..."), 0, this ); |
691 | action->addTo( helpMenu ); | 691 | action->addTo( helpMenu ); |
692 | connect( action, SIGNAL( activated() ), | 692 | connect( action, SIGNAL( activated() ), |
693 | SLOT( about() ) ); | 693 | SLOT( about() ) ); |
694 | //menuBar->insertSeparator(); | 694 | //menuBar->insertSeparator(); |
695 | 695 | ||
696 | // ****************************************************** | 696 | // ****************************************************** |
697 | // menubar icons | 697 | // menubar icons |
698 | 698 | ||
699 | 699 | ||
700 | iconToolBar->setHorizontalStretchable (true ); | 700 | iconToolBar->setHorizontalStretchable (true ); |
701 | //menuBar->insertItem( iconToolBar ); | 701 | //menuBar->insertItem( iconToolBar ); |
702 | //xdays_action | 702 | //xdays_action |
703 | if (p-> mShowIconNewEvent) | 703 | if (p-> mShowIconNewEvent) |
704 | ne_action->addTo( iconToolBar ); | 704 | ne_action->addTo( iconToolBar ); |
705 | if (p->mShowIconNewTodo ) | 705 | if (p->mShowIconNewTodo ) |
706 | nt_action->addTo( iconToolBar ); | 706 | nt_action->addTo( iconToolBar ); |
707 | if (p-> mShowIconSearch) | 707 | if (p-> mShowIconSearch) |
708 | search_action->addTo( iconToolBar ); | 708 | search_action->addTo( iconToolBar ); |
709 | if (p-> mShowIconNext) | 709 | if (p-> mShowIconNext) |
710 | whatsnext_action->addTo( iconToolBar ); | 710 | whatsnext_action->addTo( iconToolBar ); |
711 | if (p-> mShowIconNextDays) | 711 | if (p-> mShowIconNextDays) |
712 | xdays_action->addTo( iconToolBar ); | 712 | xdays_action->addTo( iconToolBar ); |
713 | if (p-> mShowIconList) | 713 | if (p-> mShowIconList) |
714 | showlist_action->addTo( iconToolBar ); | 714 | showlist_action->addTo( iconToolBar ); |
715 | if (p-> mShowIconDay1) | 715 | if (p-> mShowIconDay1) |
716 | day1_action->addTo( iconToolBar ); | 716 | day1_action->addTo( iconToolBar ); |
717 | if (p-> mShowIconDay5) | 717 | if (p-> mShowIconDay5) |
718 | day5_action->addTo( iconToolBar ); | 718 | day5_action->addTo( iconToolBar ); |
719 | if (p-> mShowIconDay7) | 719 | if (p-> mShowIconDay7) |
720 | day7_action->addTo( iconToolBar ); | 720 | day7_action->addTo( iconToolBar ); |
721 | if (p-> mShowIconMonth) | 721 | if (p-> mShowIconMonth) |
722 | month_action->addTo( iconToolBar ); | 722 | month_action->addTo( iconToolBar ); |
723 | if (p-> mShowIconTodoview) | 723 | if (p-> mShowIconTodoview) |
724 | todoview_action->addTo( iconToolBar ); | 724 | todoview_action->addTo( iconToolBar ); |
725 | if (p-> mShowIconJournal) | 725 | if (p-> mShowIconJournal) |
726 | viewjournal_action->addTo( iconToolBar ); | 726 | viewjournal_action->addTo( iconToolBar ); |
727 | icon = loadPixmap( pathString + "2leftarrowB" ); | 727 | icon = loadPixmap( pathString + "2leftarrowB" ); |
728 | configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14); | 728 | configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14); |
729 | if (p-> mShowIconBackFast) { | 729 | if (p-> mShowIconBackFast) { |
730 | action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this ); | 730 | action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this ); |
731 | connect( action, SIGNAL( activated() ), | 731 | connect( action, SIGNAL( activated() ), |
732 | mView, SLOT( goPreviousMonth() ) ); | 732 | mView, SLOT( goPreviousMonth() ) ); |
733 | action->addTo( iconToolBar ); | 733 | action->addTo( iconToolBar ); |
734 | } | 734 | } |
735 | icon = loadPixmap( pathString + "1leftarrowB" ); | 735 | icon = loadPixmap( pathString + "1leftarrowB" ); |
736 | configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15); | 736 | configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15); |
737 | if (p-> mShowIconBack) { | 737 | if (p-> mShowIconBack) { |
738 | action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this ); | 738 | action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this ); |
739 | connect( action, SIGNAL( activated() ), | 739 | connect( action, SIGNAL( activated() ), |
740 | mView, SLOT( goPrevious() ) ); | 740 | mView, SLOT( goPrevious() ) ); |
741 | action->addTo( iconToolBar ); | 741 | action->addTo( iconToolBar ); |
742 | } | 742 | } |
743 | if (p-> mShowIconToday) | 743 | if (p-> mShowIconToday) |
744 | today_action->addTo( iconToolBar ); | 744 | today_action->addTo( iconToolBar ); |
745 | icon = loadPixmap( pathString + "1rightarrowB" ); | 745 | icon = loadPixmap( pathString + "1rightarrowB" ); |
746 | configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220); | 746 | configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220); |
747 | if (p-> mShowIconForward) { | 747 | if (p-> mShowIconForward) { |
748 | action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this ); | 748 | action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this ); |
749 | connect( action, SIGNAL( activated() ), | 749 | connect( action, SIGNAL( activated() ), |
750 | mView, SLOT( goNext() ) ); | 750 | mView, SLOT( goNext() ) ); |
751 | action->addTo( iconToolBar ); | 751 | action->addTo( iconToolBar ); |
752 | } | 752 | } |
753 | icon = loadPixmap( pathString + "2rightarrowB" ); | 753 | icon = loadPixmap( pathString + "2rightarrowB" ); |
754 | configureToolBarMenu->insertItem(icon, i18n("Next month"), 230); | 754 | configureToolBarMenu->insertItem(icon, i18n("Next month"), 230); |
755 | if (p-> mShowIconForwardFast) { | 755 | if (p-> mShowIconForwardFast) { |
756 | action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this ); | 756 | action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this ); |
757 | connect( action, SIGNAL( activated() ), | 757 | connect( action, SIGNAL( activated() ), |
758 | mView, SLOT( goNextMonth() ) ); | 758 | mView, SLOT( goNextMonth() ) ); |
759 | action->addTo( iconToolBar ); | 759 | action->addTo( iconToolBar ); |
760 | } | 760 | } |
761 | 761 | ||
762 | 762 | ||
763 | configureToolBarMenu->insertItem(i18n("What's This?"), 300); | 763 | configureToolBarMenu->insertItem(i18n("What's This?"), 300); |
764 | 764 | ||
765 | if (p-> mShowIconNewEvent) | 765 | if (p-> mShowIconNewEvent) |
766 | configureToolBarMenu->setItemChecked( 10, true ); | 766 | configureToolBarMenu->setItemChecked( 10, true ); |
767 | if (p->mShowIconNewTodo ) | 767 | if (p->mShowIconNewTodo ) |
768 | configureToolBarMenu->setItemChecked( 20, true ); | 768 | configureToolBarMenu->setItemChecked( 20, true ); |
769 | if (p-> mShowIconSearch) | 769 | if (p-> mShowIconSearch) |
770 | configureToolBarMenu->setItemChecked( 120, true ); | 770 | configureToolBarMenu->setItemChecked( 120, true ); |
771 | if (p-> mShowIconList) | 771 | if (p-> mShowIconList) |
772 | configureToolBarMenu->setItemChecked( 30, true ); | 772 | configureToolBarMenu->setItemChecked( 30, true ); |
773 | if (p-> mShowIconDay1) | 773 | if (p-> mShowIconDay1) |
774 | configureToolBarMenu->setItemChecked( 40, true ); | 774 | configureToolBarMenu->setItemChecked( 40, true ); |
775 | if (p-> mShowIconDay5) | 775 | if (p-> mShowIconDay5) |
776 | configureToolBarMenu->setItemChecked( 50, true ); | 776 | configureToolBarMenu->setItemChecked( 50, true ); |
777 | if (p-> mShowIconDay7) | 777 | if (p-> mShowIconDay7) |
778 | configureToolBarMenu->setItemChecked( 60, true ); | 778 | configureToolBarMenu->setItemChecked( 60, true ); |
779 | if (p-> mShowIconMonth) | 779 | if (p-> mShowIconMonth) |
780 | configureToolBarMenu->setItemChecked( 70, true ); | 780 | configureToolBarMenu->setItemChecked( 70, true ); |
781 | if (p-> mShowIconTodoview) | 781 | if (p-> mShowIconTodoview) |
782 | configureToolBarMenu->setItemChecked( 80, true ); | 782 | configureToolBarMenu->setItemChecked( 80, true ); |
783 | if (p-> mShowIconBackFast) | 783 | if (p-> mShowIconBackFast) |
784 | configureToolBarMenu->setItemChecked( 200, true ); | 784 | configureToolBarMenu->setItemChecked( 200, true ); |
785 | if (p-> mShowIconBack) | 785 | if (p-> mShowIconBack) |
786 | configureToolBarMenu->setItemChecked( 210, true ); | 786 | configureToolBarMenu->setItemChecked( 210, true ); |
787 | if (p-> mShowIconToday) | 787 | if (p-> mShowIconToday) |
788 | configureToolBarMenu->setItemChecked( 130, true ); | 788 | configureToolBarMenu->setItemChecked( 130, true ); |
789 | if (p-> mShowIconForward) | 789 | if (p-> mShowIconForward) |
790 | configureToolBarMenu->setItemChecked( 220, true ); | 790 | configureToolBarMenu->setItemChecked( 220, true ); |
791 | if (p-> mShowIconForwardFast) | 791 | if (p-> mShowIconForwardFast) |
792 | configureToolBarMenu->setItemChecked( 230, true ); | 792 | configureToolBarMenu->setItemChecked( 230, true ); |
793 | if (p-> mShowIconNextDays) | 793 | if (p-> mShowIconNextDays) |
794 | configureToolBarMenu->setItemChecked( 100, true ); | 794 | configureToolBarMenu->setItemChecked( 100, true ); |
795 | if (p-> mShowIconNext) | 795 | if (p-> mShowIconNext) |
796 | configureToolBarMenu->setItemChecked( 110, true ); | 796 | configureToolBarMenu->setItemChecked( 110, true ); |
797 | if (p-> mShowIconJournal) | 797 | if (p-> mShowIconJournal) |
798 | configureToolBarMenu->setItemChecked( 90, true ); | 798 | configureToolBarMenu->setItemChecked( 90, true ); |
799 | if (p-> mShowIconWhatsThis) | 799 | if (p-> mShowIconWhatsThis) |
800 | configureToolBarMenu->setItemChecked( 300, true ); | 800 | configureToolBarMenu->setItemChecked( 300, true ); |
801 | 801 | ||
802 | QLabel* dummy = new QLabel( iconToolBar ); | 802 | QLabel* dummy = new QLabel( iconToolBar ); |
803 | dummy->setBackgroundColor( iconToolBar->backgroundColor() ); | 803 | dummy->setBackgroundColor( iconToolBar->backgroundColor() ); |
804 | if (!p-> mShowIconStretch) | 804 | if (!p-> mShowIconStretch) |
805 | iconToolBar->setStretchableWidget ( dummy ) ; | 805 | iconToolBar->setStretchableWidget ( dummy ) ; |
806 | else | 806 | else |
807 | configureToolBarMenu->setItemChecked( 5, true ); | 807 | configureToolBarMenu->setItemChecked( 5, true ); |
808 | if (p-> mShowIconWhatsThis) | 808 | if (p-> mShowIconWhatsThis) |
809 | QWhatsThis::whatsThisButton ( iconToolBar ); | 809 | QWhatsThis::whatsThisButton ( iconToolBar ); |
810 | connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) ); | 810 | connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) ); |
811 | configureAgenda( p->mHourSize ); | 811 | configureAgenda( p->mHourSize ); |
812 | connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); | 812 | connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); |
813 | } | 813 | } |
814 | void MainWindow::fillSyncMenu() | 814 | void MainWindow::fillSyncMenu() |
815 | { | 815 | { |
816 | syncMenu->clear(); | 816 | syncMenu->clear(); |
817 | syncMenu->insertItem( i18n("Configure..."), 0 ); | 817 | syncMenu->insertItem( i18n("Configure..."), 0 ); |
818 | syncMenu->insertSeparator(); | 818 | syncMenu->insertSeparator(); |
819 | syncMenu->insertItem( i18n("Multiple sync"), 1 ); | 819 | syncMenu->insertItem( i18n("Multiple sync"), 1 ); |
820 | syncMenu->insertSeparator(); | 820 | syncMenu->insertSeparator(); |
821 | KConfig config ( locateLocal( "config","syncprofilesrc" ) ); | 821 | KConfig config ( locateLocal( "config","syncprofilesrc" ) ); |
822 | config.setGroup("General"); | 822 | config.setGroup("General"); |
823 | QStringList prof = config.readListEntry("SyncProfileNames"); | 823 | QStringList prof = config.readListEntry("SyncProfileNames"); |
824 | KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined"); | 824 | KOPrefs::instance()->mLocalMachineName = config.readEntry("LocalMachineName","undefined"); |
825 | if ( prof.count() < 3 ) { | 825 | if ( prof.count() < 3 ) { |
826 | prof.clear(); | 826 | prof.clear(); |
827 | prof << i18n("Sharp_DTM"); | 827 | prof << i18n("Sharp_DTM"); |
828 | prof << i18n("Local_file"); | 828 | prof << i18n("Local_file"); |
829 | prof << i18n("Last_file"); | 829 | prof << i18n("Last_file"); |
830 | KSyncProfile* temp = new KSyncProfile (); | 830 | KSyncProfile* temp = new KSyncProfile (); |
831 | temp->setName( prof[0] ); | 831 | temp->setName( prof[0] ); |
832 | temp->writeConfig(&config); | 832 | temp->writeConfig(&config); |
833 | temp->setName( prof[1] ); | 833 | temp->setName( prof[1] ); |
834 | temp->writeConfig(&config); | 834 | temp->writeConfig(&config); |
835 | temp->setName( prof[2] ); | 835 | temp->setName( prof[2] ); |
836 | temp->writeConfig(&config); | 836 | temp->writeConfig(&config); |
837 | config.setGroup("General"); | 837 | config.setGroup("General"); |
838 | config.writeEntry("SyncProfileNames",prof); | 838 | config.writeEntry("SyncProfileNames",prof); |
839 | config.writeEntry("ExternSyncProfiles","Sharp_DTM"); | ||
839 | config.sync(); | 840 | config.sync(); |
840 | delete temp; | 841 | delete temp; |
841 | } | 842 | } |
843 | KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); | ||
842 | KOPrefs::instance()->mSyncProfileNames = prof; | 844 | KOPrefs::instance()->mSyncProfileNames = prof; |
843 | int i; | 845 | int i; |
844 | for ( i = 0; i < prof.count(); ++i ) { | 846 | for ( i = 0; i < prof.count(); ++i ) { |
845 | 847 | ||
846 | syncMenu->insertItem( prof[i], 1000+i ); | 848 | syncMenu->insertItem( prof[i], 1000+i ); |
847 | if ( i == 2 ) | 849 | if ( i == 2 ) |
848 | syncMenu->insertSeparator(); | 850 | syncMenu->insertSeparator(); |
849 | } | 851 | } |
850 | QDir app_dir; | 852 | QDir app_dir; |
851 | if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { | 853 | if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { |
852 | syncMenu->setItemEnabled( false , 1000 ); | 854 | syncMenu->setItemEnabled( false , 1000 ); |
853 | } | 855 | } |
856 | mView->setupExternSyncProfiles(); | ||
854 | } | 857 | } |
855 | 858 | ||
856 | int MainWindow::ringSync() | 859 | int MainWindow::ringSync() |
857 | { | 860 | { |
858 | int syncedProfiles = 0; | 861 | int syncedProfiles = 0; |
859 | int i; | 862 | int i; |
860 | QTime timer; | 863 | QTime timer; |
861 | KConfig config ( locateLocal( "config","syncprofilesrc" ) ); | 864 | KConfig config ( locateLocal( "config","syncprofilesrc" ) ); |
862 | QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames; | 865 | QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames; |
863 | KSyncProfile* temp = new KSyncProfile (); | 866 | KSyncProfile* temp = new KSyncProfile (); |
864 | KOPrefs::instance()->mAskForPreferences = false; | 867 | KOPrefs::instance()->mAskForPreferences = false; |
865 | for ( i = 0; i < syncProfileNames.count(); ++i ) { | 868 | for ( i = 0; i < syncProfileNames.count(); ++i ) { |
866 | mCurrentSyncProfile = i; | 869 | mCurrentSyncProfile = i; |
867 | temp->setName(syncProfileNames[mCurrentSyncProfile]); | 870 | temp->setName(syncProfileNames[mCurrentSyncProfile]); |
868 | temp->readConfig(&config); | 871 | temp->readConfig(&config); |
869 | if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) { | 872 | if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) { |
870 | setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); | 873 | setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); |
871 | ++syncedProfiles; | 874 | ++syncedProfiles; |
872 | // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); | 875 | // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); |
873 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); | 876 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); |
874 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); | 877 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); |
875 | KOPrefs::instance()->mShowSyncSummary = false; | 878 | KOPrefs::instance()->mShowSyncSummary = false; |
876 | mView->setSyncDevice(syncProfileNames[i] ); | 879 | mView->setSyncDevice(syncProfileNames[i] ); |
877 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); | 880 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); |
878 | if ( i == 0 ) { | 881 | if ( i == 0 ) { |
879 | syncSharp(); | 882 | syncSharp(); |
880 | } else { | 883 | } else { |
881 | if ( temp->getIsLocalFileSync() ) { | 884 | if ( temp->getIsLocalFileSync() ) { |
882 | if ( syncWithFile( temp->getRemoteFileName( ), true ) ) | 885 | if ( syncWithFile( temp->getRemoteFileName( ), true ) ) |
883 | KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); | 886 | KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); |
884 | } else { | 887 | } else { |
885 | syncRemote( temp, false ); | 888 | syncRemote( temp, false ); |
886 | 889 | ||
887 | } | 890 | } |
888 | } | 891 | } |
889 | timer.start(); | 892 | timer.start(); |
890 | setCaption(i18n("Multiple sync in progress ... please wait!") ); | 893 | setCaption(i18n("Multiple sync in progress ... please wait!") ); |
891 | while ( timer.elapsed () < 2000 ) { | 894 | while ( timer.elapsed () < 2000 ) { |
892 | qApp->processEvents(); | 895 | qApp->processEvents(); |
893 | #ifndef _WIN32_ | 896 | #ifndef _WIN32_ |
894 | sleep (1); | 897 | sleep (1); |
895 | #endif | 898 | #endif |
896 | } | 899 | } |
897 | 900 | ||
898 | } | 901 | } |
899 | 902 | ||
900 | } | 903 | } |
901 | delete temp; | 904 | delete temp; |
902 | return syncedProfiles; | 905 | return syncedProfiles; |
903 | } | 906 | } |
904 | 907 | ||
905 | void MainWindow::multiSync( bool askforPrefs ) | 908 | void MainWindow::multiSync( bool askforPrefs ) |
906 | { | 909 | { |
907 | if (mBlockSaveFlag) | 910 | if (mBlockSaveFlag) |
908 | return; | 911 | return; |
909 | mBlockSaveFlag = true; | 912 | mBlockSaveFlag = true; |
910 | QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); | 913 | QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); |
911 | if ( QMessageBox::information( this, i18n("KO/Pi Sync"), | 914 | if ( QMessageBox::information( this, i18n("KO/Pi Sync"), |
912 | question, | 915 | question, |
913 | i18n("Yes"), i18n("No"), | 916 | i18n("Yes"), i18n("No"), |
914 | 0, 0 ) != 0 ) { | 917 | 0, 0 ) != 0 ) { |
915 | mBlockSaveFlag = false; | 918 | mBlockSaveFlag = false; |
916 | setCaption(i18n("Aborted! Nothing synced!")); | 919 | setCaption(i18n("Aborted! Nothing synced!")); |
917 | return; | 920 | return; |
918 | } | 921 | } |
919 | mView->setSyncDevice(i18n("Multiple profiles") ); | 922 | mView->setSyncDevice(i18n("Multiple profiles") ); |
920 | KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs; | 923 | KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs; |
921 | if ( askforPrefs ) { | 924 | if ( askforPrefs ) { |
922 | mView->edit_sync_options(); | 925 | mView->edit_sync_options(); |
923 | KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs; | 926 | KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs; |
924 | } | 927 | } |
925 | setCaption(i18n("Multiple sync started.") ); | 928 | setCaption(i18n("Multiple sync started.") ); |
926 | qApp->processEvents(); | 929 | qApp->processEvents(); |
927 | int num = ringSync() ; | 930 | int num = ringSync() ; |
928 | if ( num > 1 ) | 931 | if ( num > 1 ) |
929 | ringSync(); | 932 | ringSync(); |
930 | mBlockSaveFlag = false; | 933 | mBlockSaveFlag = false; |
931 | if ( num ) | 934 | if ( num ) |
932 | save(); | 935 | save(); |
933 | if ( num ) | 936 | if ( num ) |
934 | setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); | 937 | setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); |
935 | else | 938 | else |
936 | setCaption(i18n("Nothing synced! No profiles defined for multisync!")); | 939 | setCaption(i18n("Nothing synced! No profiles defined for multisync!")); |
937 | return; | 940 | return; |
938 | } | 941 | } |
939 | void MainWindow::slotSyncMenu( int action ) | 942 | void MainWindow::slotSyncMenu( int action ) |
940 | { | 943 | { |
941 | //qDebug("syncaction %d ", action); | 944 | //qDebug("syncaction %d ", action); |
942 | if ( action == 0 ) { | 945 | if ( action == 0 ) { |
943 | 946 | ||
944 | confSync(); | 947 | confSync(); |
945 | 948 | ||
946 | return; | 949 | return; |
947 | } | 950 | } |
948 | if ( action == 1 ) { | 951 | if ( action == 1 ) { |
949 | multiSync( true ); | 952 | multiSync( true ); |
950 | return; | 953 | return; |
951 | } | 954 | } |
952 | 955 | ||
953 | if (mBlockSaveFlag) | 956 | if (mBlockSaveFlag) |
954 | return; | 957 | return; |
955 | mBlockSaveFlag = true; | 958 | mBlockSaveFlag = true; |
956 | mCurrentSyncProfile = action - 1000 ; | 959 | mCurrentSyncProfile = action - 1000 ; |
957 | mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); | 960 | mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); |
958 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); | 961 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); |
959 | KConfig config ( locateLocal( "config","syncprofilesrc" ) ); | 962 | KConfig config ( locateLocal( "config","syncprofilesrc" ) ); |
960 | KSyncProfile* temp = new KSyncProfile (); | 963 | KSyncProfile* temp = new KSyncProfile (); |
961 | temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); | 964 | temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); |
962 | temp->readConfig(&config); | 965 | temp->readConfig(&config); |
963 | KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); | 966 | KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); |
964 | KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); | 967 | KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); |
965 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); | 968 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); |
966 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); | 969 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); |
967 | KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); | 970 | KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); |
968 | if ( action == 1000 ) { | 971 | if ( action == 1000 ) { |
969 | syncSharp(); | 972 | syncSharp(); |
970 | 973 | ||
971 | } else if ( action == 1001 ) { | 974 | } else if ( action == 1001 ) { |
972 | syncLocalFile(); | 975 | syncLocalFile(); |
973 | 976 | ||
974 | } else if ( action == 1002 ) { | 977 | } else if ( action == 1002 ) { |
975 | quickSyncLocalFile(); | 978 | quickSyncLocalFile(); |
976 | 979 | ||
977 | } else if ( action >= 1003 ) { | 980 | } else if ( action >= 1003 ) { |
978 | if ( temp->getIsLocalFileSync() ) { | 981 | if ( temp->getIsLocalFileSync() ) { |
979 | if ( syncWithFile( temp->getRemoteFileName( ), false ) ) | 982 | if ( syncWithFile( temp->getRemoteFileName( ), false ) ) |
980 | KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); | 983 | KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); |
981 | } else { | 984 | } else { |
982 | syncRemote( temp ); | 985 | syncRemote( temp ); |
983 | 986 | ||
984 | } | 987 | } |
985 | } | 988 | } |
986 | delete temp; | 989 | delete temp; |
987 | mBlockSaveFlag = false; | 990 | mBlockSaveFlag = false; |
988 | } | 991 | } |
989 | void MainWindow::setDefaultPreferences() | 992 | void MainWindow::setDefaultPreferences() |
990 | { | 993 | { |
991 | KOPrefs *p = KOPrefs::instance(); | 994 | KOPrefs *p = KOPrefs::instance(); |
992 | 995 | ||
993 | p->mCompactDialogs = true; | 996 | p->mCompactDialogs = true; |
994 | p->mConfirm = true; | 997 | p->mConfirm = true; |
995 | // p->mEnableQuickTodo = false; | 998 | // p->mEnableQuickTodo = false; |
996 | } | 999 | } |
997 | 1000 | ||
998 | QString MainWindow::resourcePath() | 1001 | QString MainWindow::resourcePath() |
999 | { | 1002 | { |
1000 | return KGlobal::iconLoader()->iconPath(); | 1003 | return KGlobal::iconLoader()->iconPath(); |
1001 | } | 1004 | } |
1002 | 1005 | ||
1003 | void MainWindow::displayText( QString text ,QString cap ) | 1006 | void MainWindow::displayText( QString text ,QString cap ) |
1004 | { | 1007 | { |
1005 | QDialog dia( this, "name", true ); ; | 1008 | QDialog dia( this, "name", true ); ; |
1006 | dia.setCaption( cap ); | 1009 | dia.setCaption( cap ); |
1007 | QVBoxLayout* lay = new QVBoxLayout( &dia ); | 1010 | QVBoxLayout* lay = new QVBoxLayout( &dia ); |
1008 | lay->setSpacing( 3 ); | 1011 | lay->setSpacing( 3 ); |
1009 | lay->setMargin( 3 ); | 1012 | lay->setMargin( 3 ); |
1010 | QTextBrowser tb ( &dia ); | 1013 | QTextBrowser tb ( &dia ); |
1011 | lay->addWidget( &tb ); | 1014 | lay->addWidget( &tb ); |
1012 | tb.setText( text ); | 1015 | tb.setText( text ); |
1013 | #ifdef DESKTOP_VERSION | 1016 | #ifdef DESKTOP_VERSION |
1014 | dia.resize( 640, 480); | 1017 | dia.resize( 640, 480); |
1015 | #else | 1018 | #else |
1016 | dia.showMaximized(); | 1019 | dia.showMaximized(); |
1017 | #endif | 1020 | #endif |
1018 | dia.exec(); | 1021 | dia.exec(); |
1019 | } | 1022 | } |
1020 | void MainWindow::displayFile( QString fn, QString cap ) | 1023 | void MainWindow::displayFile( QString fn, QString cap ) |
1021 | { | 1024 | { |
1022 | QString fileName = resourcePath() + fn; | 1025 | QString fileName = resourcePath() + fn; |
1023 | QString text; | 1026 | QString text; |
1024 | QFile file( fileName ); | 1027 | QFile file( fileName ); |
1025 | if (!file.open( IO_ReadOnly ) ) { | 1028 | if (!file.open( IO_ReadOnly ) ) { |
1026 | return ; | 1029 | return ; |
1027 | 1030 | ||
1028 | } | 1031 | } |
1029 | QTextStream ts( &file ); | 1032 | QTextStream ts( &file ); |
1030 | text = ts.read(); | 1033 | text = ts.read(); |
1031 | file.close(); | 1034 | file.close(); |
1032 | displayText( text, cap); | 1035 | displayText( text, cap); |
1033 | } | 1036 | } |
1034 | void MainWindow::features() | 1037 | void MainWindow::features() |
1035 | { | 1038 | { |
1036 | 1039 | ||
1037 | displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") ); | 1040 | displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") ); |
1038 | } | 1041 | } |
1039 | 1042 | ||
1040 | void MainWindow::usertrans() | 1043 | void MainWindow::usertrans() |
1041 | { | 1044 | { |
1042 | 1045 | ||
1043 | displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") ); | 1046 | displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") ); |
1044 | } | 1047 | } |
1045 | void MainWindow::synchowto() | 1048 | void MainWindow::synchowto() |
1046 | { | 1049 | { |
1047 | 1050 | ||
1048 | displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") ); | 1051 | displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") ); |
1049 | } | 1052 | } |
1050 | void MainWindow::faq() | 1053 | void MainWindow::faq() |
1051 | { | 1054 | { |
1052 | displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") ); | 1055 | displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") ); |
1053 | 1056 | ||
1054 | } | 1057 | } |
1055 | void MainWindow::whatsNew() | 1058 | void MainWindow::whatsNew() |
1056 | { | 1059 | { |
1057 | displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") ); | 1060 | displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") ); |
1058 | 1061 | ||
1059 | } | 1062 | } |
1060 | void MainWindow::about() | 1063 | void MainWindow::about() |
1061 | { | 1064 | { |
1062 | QString version; | 1065 | QString version; |
1063 | #include <../version> | 1066 | #include <../version> |
1064 | QMessageBox::about( this, i18n("About KOrganizer/Pi"), | 1067 | QMessageBox::about( this, i18n("About KOrganizer/Pi"), |
1065 | i18n("KOrganizer/Platform-independent\n") + | 1068 | i18n("KOrganizer/Platform-independent\n") + |
1066 | "(KO/Pi) " + version + " - " + | 1069 | "(KO/Pi) " + version + " - " + |
1067 | 1070 | ||
1068 | #ifdef DESKTOP_VERSION | 1071 | #ifdef DESKTOP_VERSION |
1069 | i18n("Desktop Edition\n") + | 1072 | i18n("Desktop Edition\n") + |
1070 | #else | 1073 | #else |
1071 | i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") + | 1074 | i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") + |
1072 | #endif | 1075 | #endif |
1073 | i18n("(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n") ); | 1076 | i18n("(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n") ); |
1074 | } | 1077 | } |
1075 | void MainWindow::keyBindings() | 1078 | void MainWindow::keyBindings() |
1076 | { | 1079 | { |
1077 | QString cap = i18n("Key bindings KOrganizer/Pi"); | 1080 | QString cap = i18n("Key bindings KOrganizer/Pi"); |
1078 | QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + | 1081 | QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + |
1079 | i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ | 1082 | i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ |
1080 | i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + | 1083 | i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + |
1081 | i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ | 1084 | i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ |
1082 | i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+ | 1085 | i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+ |
1083 | i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ | 1086 | i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ |
1084 | i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ | 1087 | i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ |
1085 | i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+ | 1088 | i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+ |
1086 | i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ | 1089 | i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ |
1087 | i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ | 1090 | i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ |
1088 | i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ | 1091 | i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ |
1089 | i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ | 1092 | i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ |
1090 | i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ | 1093 | i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ |
1091 | i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+ | 1094 | i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+ |
1092 | i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ | 1095 | i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ |
1093 | i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ | 1096 | i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ |
1094 | i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ | 1097 | i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ |
1095 | i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ | 1098 | i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ |
1096 | i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ | 1099 | i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ |
1097 | i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ | 1100 | i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ |
1098 | i18n("<p><h3>In agenda view:</h3></p>\n") + | 1101 | i18n("<p><h3>In agenda view:</h3></p>\n") + |
1099 | i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ | 1102 | i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ |
1100 | i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ | 1103 | i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ |
1101 | i18n("<p><h3>In todo view:</h3></p>\n") + | 1104 | i18n("<p><h3>In todo view:</h3></p>\n") + |
1102 | i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ | 1105 | i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ |
1103 | i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ | 1106 | i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ |
1104 | i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ | 1107 | i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ |
1105 | i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ | 1108 | i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ |
1106 | i18n("<p><h3>In list view:</h3></p>\n") + | 1109 | i18n("<p><h3>In list view:</h3></p>\n") + |
1107 | i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ | 1110 | i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ |
1108 | i18n("<p><b>return</b>: Select item+one step down</p>\n")+ | 1111 | i18n("<p><b>return</b>: Select item+one step down</p>\n")+ |
1109 | i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ | 1112 | i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ |
1110 | i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ | 1113 | i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ |
1111 | i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ | 1114 | i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ |
1112 | i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ | 1115 | i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ |
1113 | i18n("<p><h3>In event/todo viewer:</h3></p>\n") + | 1116 | i18n("<p><h3>In event/todo viewer:</h3></p>\n") + |
1114 | i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ | 1117 | i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ |
1115 | i18n("<p><b>A</b>: Show agenda view.</p>\n")+ | 1118 | i18n("<p><b>A</b>: Show agenda view.</p>\n")+ |
1116 | i18n("<p><b>E</b>: Edit item</p>\n") + | 1119 | i18n("<p><b>E</b>: Edit item</p>\n") + |
1117 | i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + | 1120 | i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + |
1118 | i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + | 1121 | i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + |
1119 | i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ | 1122 | i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ |
1120 | i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ | 1123 | i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ |
1121 | i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ | 1124 | i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ |
1122 | i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ | 1125 | i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ |
1123 | i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ | 1126 | i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ |
1124 | i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + | 1127 | i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + |
1125 | i18n("<p><b>White</b>: Item readonly</p>\n"); | 1128 | i18n("<p><b>White</b>: Item readonly</p>\n"); |
1126 | displayText( text, cap); | 1129 | displayText( text, cap); |
1127 | 1130 | ||
1128 | } | 1131 | } |
1129 | void MainWindow::aboutAutoSaving() | 1132 | void MainWindow::aboutAutoSaving() |
1130 | { | 1133 | { |
1131 | QMessageBox* msg; | 1134 | QMessageBox* msg; |
1132 | msg = new QMessageBox( i18n("Auto Saving in KOrganizer/Pi"), | 1135 | msg = new QMessageBox( i18n("Auto Saving in KOrganizer/Pi"), |
1133 | i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configureable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n"), QMessageBox::NoIcon, | 1136 | i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configureable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n"), QMessageBox::NoIcon, |
1134 | QMessageBox::Ok, | 1137 | QMessageBox::Ok, |
1135 | QMessageBox::NoButton, | 1138 | QMessageBox::NoButton, |
1136 | QMessageBox::NoButton); | 1139 | QMessageBox::NoButton); |
1137 | msg->exec(); | 1140 | msg->exec(); |
1138 | delete msg; | 1141 | delete msg; |
1139 | 1142 | ||
1140 | 1143 | ||
1141 | } | 1144 | } |
1142 | void MainWindow::aboutKnownBugs() | 1145 | void MainWindow::aboutKnownBugs() |
1143 | { | 1146 | { |
1144 | QMessageBox* msg; | 1147 | QMessageBox* msg; |
1145 | msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), | 1148 | msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), |
1146 | i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+ | 1149 | i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+ |
1147 | i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ | 1150 | i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ |
1148 | i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") + | 1151 | i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") + |
1149 | i18n("\nor report them in the bugtracker on\n") + | 1152 | i18n("\nor report them in the bugtracker on\n") + |
1150 | i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), | 1153 | i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), |
1151 | QMessageBox::NoIcon, | 1154 | QMessageBox::NoIcon, |
1152 | QMessageBox::Ok, | 1155 | QMessageBox::Ok, |
1153 | QMessageBox::NoButton, | 1156 | QMessageBox::NoButton, |
1154 | QMessageBox::NoButton); | 1157 | QMessageBox::NoButton); |
1155 | msg->exec(); | 1158 | msg->exec(); |
1156 | delete msg; | 1159 | delete msg; |
1157 | 1160 | ||
1158 | } | 1161 | } |
1159 | 1162 | ||
1160 | QString MainWindow::defaultFileName() | 1163 | QString MainWindow::defaultFileName() |
1161 | { | 1164 | { |
1162 | return locateLocal( "data", "korganizer/mycalendar.ics" ); | 1165 | return locateLocal( "data", "korganizer/mycalendar.ics" ); |
1163 | } | 1166 | } |
1164 | 1167 | ||
1165 | void MainWindow::processIncidenceSelection( Incidence *incidence ) | 1168 | void MainWindow::processIncidenceSelection( Incidence *incidence ) |
1166 | { | 1169 | { |
1167 | if ( !incidence ) { | 1170 | if ( !incidence ) { |
1168 | enableIncidenceActions( false ); | 1171 | enableIncidenceActions( false ); |
1169 | 1172 | ||
1170 | mNewSubTodoAction->setEnabled( false ); | 1173 | mNewSubTodoAction->setEnabled( false ); |
1171 | setCaptionToDates(); | 1174 | setCaptionToDates(); |
1172 | return; | 1175 | return; |
1173 | 1176 | ||
1174 | } | 1177 | } |
1175 | 1178 | ||
1176 | //KGlobal::locale()->formatDateTime(nextA, true); | 1179 | //KGlobal::locale()->formatDateTime(nextA, true); |
1177 | QString startString = ""; | 1180 | QString startString = ""; |
1178 | if ( incidence->type() != "Todo" ) { | 1181 | if ( incidence->type() != "Todo" ) { |
1179 | if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { | 1182 | if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { |
1180 | if ( incidence->doesFloat() ) { | 1183 | if ( incidence->doesFloat() ) { |
1181 | startString += ": "+incidence->dtStartDateStr( true ); | 1184 | startString += ": "+incidence->dtStartDateStr( true ); |
1182 | startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); | 1185 | startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); |
1183 | 1186 | ||
1184 | } else { | 1187 | } else { |
1185 | startString = ": "+incidence->dtStartStr(true); | 1188 | startString = ": "+incidence->dtStartStr(true); |
1186 | startString += " --- "+((Event*)incidence)->dtEndStr(true); | 1189 | startString += " --- "+((Event*)incidence)->dtEndStr(true); |
1187 | 1190 | ||
1188 | } | 1191 | } |
1189 | 1192 | ||
1190 | } else { | 1193 | } else { |
1191 | if ( incidence->dtStart().time() != incidence->dtEnd().time() ) | 1194 | if ( incidence->dtStart().time() != incidence->dtEnd().time() ) |
1192 | startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ | 1195 | startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ |
1193 | "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); | 1196 | "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); |
1194 | startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); | 1197 | startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); |
1195 | } | 1198 | } |
1196 | 1199 | ||
1197 | } | 1200 | } |
1198 | else | 1201 | else |
1199 | startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); | 1202 | startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); |
1200 | if ( !incidence->location().isEmpty() ) | 1203 | if ( !incidence->location().isEmpty() ) |
1201 | startString += " (" +incidence->location()+")"; | 1204 | startString += " (" +incidence->location()+")"; |
1202 | setCaption( incidence->summary()+startString); | 1205 | setCaption( incidence->summary()+startString); |
1203 | 1206 | ||
1204 | enableIncidenceActions( true ); | 1207 | enableIncidenceActions( true ); |
1205 | 1208 | ||
1206 | if ( incidence->type() == "Event" ) { | 1209 | if ( incidence->type() == "Event" ) { |
1207 | mShowAction->setText( i18n("Show Event...") ); | 1210 | mShowAction->setText( i18n("Show Event...") ); |
1208 | mEditAction->setText( i18n("Edit Event...") ); | 1211 | mEditAction->setText( i18n("Edit Event...") ); |
1209 | mDeleteAction->setText( i18n("Delete Event...") ); | 1212 | mDeleteAction->setText( i18n("Delete Event...") ); |
1210 | 1213 | ||
1211 | mNewSubTodoAction->setEnabled( false ); | 1214 | mNewSubTodoAction->setEnabled( false ); |
1212 | } else if ( incidence->type() == "Todo" ) { | 1215 | } else if ( incidence->type() == "Todo" ) { |
1213 | mShowAction->setText( i18n("Show Todo...") ); | 1216 | mShowAction->setText( i18n("Show Todo...") ); |
1214 | mEditAction->setText( i18n("Edit Todo...") ); | 1217 | mEditAction->setText( i18n("Edit Todo...") ); |
1215 | mDeleteAction->setText( i18n("Delete Todo...") ); | 1218 | mDeleteAction->setText( i18n("Delete Todo...") ); |
1216 | 1219 | ||
1217 | mNewSubTodoAction->setEnabled( true ); | 1220 | mNewSubTodoAction->setEnabled( true ); |
1218 | } else { | 1221 | } else { |
1219 | mShowAction->setText( i18n("Show...") ); | 1222 | mShowAction->setText( i18n("Show...") ); |
1220 | mShowAction->setText( i18n("Edit...") ); | 1223 | mShowAction->setText( i18n("Edit...") ); |
1221 | mShowAction->setText( i18n("Delete...") ); | 1224 | mShowAction->setText( i18n("Delete...") ); |
1222 | 1225 | ||
1223 | mNewSubTodoAction->setEnabled( false ); | 1226 | mNewSubTodoAction->setEnabled( false ); |
1224 | } | 1227 | } |
1225 | } | 1228 | } |
1226 | 1229 | ||
1227 | void MainWindow::enableIncidenceActions( bool enabled ) | 1230 | void MainWindow::enableIncidenceActions( bool enabled ) |
1228 | { | 1231 | { |
1229 | mShowAction->setEnabled( enabled ); | 1232 | mShowAction->setEnabled( enabled ); |
1230 | mEditAction->setEnabled( enabled ); | 1233 | mEditAction->setEnabled( enabled ); |
1231 | mDeleteAction->setEnabled( enabled ); | 1234 | mDeleteAction->setEnabled( enabled ); |
1232 | } | 1235 | } |
1233 | 1236 | ||
1234 | void MainWindow::importOL() | 1237 | void MainWindow::importOL() |
1235 | { | 1238 | { |
1236 | #ifdef _WIN32_ | 1239 | #ifdef _WIN32_ |
1237 | KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); | 1240 | KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); |