summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-08-02 01:14:33 (UTC)
committer zautrix <zautrix>2004-08-02 01:14:33 (UTC)
commitf6a823824e6a8be3d842e99b43dacd495bb02ba4 (patch) (unidiff)
tree09f21069cd63a5e73b9fe735d82487d35e47033b
parent54157cb44316de72d776cfae70bdadf6c52f4773 (diff)
downloadkdepimpi-f6a823824e6a8be3d842e99b43dacd495bb02ba4.zip
kdepimpi-f6a823824e6a8be3d842e99b43dacd495bb02ba4.tar.gz
kdepimpi-f6a823824e6a8be3d842e99b43dacd495bb02ba4.tar.bz2
Hack, hack, hack ...
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp1
-rw-r--r--libkdepim/ksyncprefsdialog.cpp6
2 files changed, 7 insertions, 0 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index cbe2a10..53c079c 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -487,768 +487,769 @@ void CalendarView::suspendAlarm()
487 487
488} 488}
489 489
490void CalendarView::startAlarm( QString mess , QString filename) 490void 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
497void CalendarView::checkNextTimerAlarm() 497void CalendarView::checkNextTimerAlarm()
498{ 498{
499 mCalendar->checkAlarmForIncidence( 0, true ); 499 mCalendar->checkAlarmForIncidence( 0, true );
500} 500}
501 501
502void CalendarView::computeAlarm( QString msg ) 502void 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
591void CalendarView::addSuspendAlarm(const QDateTime &qdt, const QString &noti ) 591void CalendarView::addSuspendAlarm(const QDateTime &qdt, const QString &noti )
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
602void CalendarView::addAlarm(const QDateTime &qdt, const QString &noti ) 602void CalendarView::addAlarm(const QDateTime &qdt, const QString &noti )
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
629void CalendarView::recheckTimerAlarm() 629void 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}
635void CalendarView::removeAlarm(const QDateTime &qdt, const QString &noti ) 635void CalendarView::removeAlarm(const QDateTime &qdt, const QString &noti )
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}
646void CalendarView::selectWeekNum ( int num ) 646void CalendarView::selectWeekNum ( int num )
647{ 647{
648 dateNavigator()->selectWeek( num ); 648 dateNavigator()->selectWeek( num );
649 mViewManager->showWeekView(); 649 mViewManager->showWeekView();
650} 650}
651KOViewManager *CalendarView::viewManager() 651KOViewManager *CalendarView::viewManager()
652{ 652{
653 return mViewManager; 653 return mViewManager;
654} 654}
655 655
656KODialogManager *CalendarView::dialogManager() 656KODialogManager *CalendarView::dialogManager()
657{ 657{
658 return mDialogManager; 658 return mDialogManager;
659} 659}
660 660
661QDate CalendarView::startDate() 661QDate 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
668QDate CalendarView::endDate() 668QDate 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
676void CalendarView::createPrinter() 676void 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
686void CalendarView::confSync() 686void 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
714int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , bool full ) 714int 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}
849Event* CalendarView::getLastSyncEvent() 849Event* 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-"+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-"+mCurrentSyncDevice ); 856 lse->setUid( "last-syncEvent-"+mCurrentSyncDevice );
857 QString sum = ""; 857 QString sum = "";
858 if ( KOPrefs::instance()->mExternSyncProfiles.contains( mCurrentSyncDevice ) ) 858 if ( KOPrefs::instance()->mExternSyncProfiles.contains( mCurrentSyncDevice ) )
859 sum = "E: "; 859 sum = "E: ";
860 lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event")); 860 lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event"));
861 lse->setDtStart( mLastCalendarSync ); 861 lse->setDtStart( mLastCalendarSync );
862 lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); 862 lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
863 lse->setCategories( i18n("SyncEvent") ); 863 lse->setCategories( i18n("SyncEvent") );
864 lse->setReadOnly( true ); 864 lse->setReadOnly( true );
865 mCalendar->addEvent( lse ); 865 mCalendar->addEvent( lse );
866 } 866 }
867 867
868 return lse; 868 return lse;
869 869
870} 870}
871// probaly useless
871void CalendarView::setupExternSyncProfiles() 872void CalendarView::setupExternSyncProfiles()
872{ 873{
873 Event* lse; 874 Event* lse;
874 mExternLastSyncEvent.clear(); 875 mExternLastSyncEvent.clear();
875 int i; 876 int i;
876 for ( i = 0; i < KOPrefs::instance()->mExternSyncProfiles.count(); ++i ) { 877 for ( i = 0; i < KOPrefs::instance()->mExternSyncProfiles.count(); ++i ) {
877 lse = mCalendar->event( "last-syncEvent-"+ KOPrefs::instance()->mExternSyncProfiles[i] ); 878 lse = mCalendar->event( "last-syncEvent-"+ KOPrefs::instance()->mExternSyncProfiles[i] );
878 if ( lse ) 879 if ( lse )
879 mExternLastSyncEvent.append( lse ); 880 mExternLastSyncEvent.append( lse );
880 else 881 else
881 qDebug("Last Sync event not found for %s ", KOPrefs::instance()->mExternSyncProfiles[i].latin1()); 882 qDebug("Last Sync event not found for %s ", KOPrefs::instance()->mExternSyncProfiles[i].latin1());
882 } 883 }
883 884
884} 885}
885// we check, if the to delete event has a id for a profile 886// 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// if yes, we set this id in the profile to delete
887void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ) 888void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete )
888{ 889{
889 if ( ! lastSync.count() == 0 ) 890 if ( ! lastSync.count() == 0 )
890 return; 891 return;
891 if ( toDelete->type() == "Journal" ) 892 if ( toDelete->type() == "Journal" )
892 return; 893 return;
893 894
894 Event* eve = lastSync.first(); 895 Event* eve = lastSync.first();
895 896
896 while ( eve ) { 897 while ( eve ) {
897 int id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name 898 int id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name
898 if ( id >= 0 ) { 899 if ( id >= 0 ) {
899 QString des = eve->description(); 900 QString des = eve->description();
900 QString pref = "e"; 901 QString pref = "e";
901 if ( toDelete->type() == "Todo" ) 902 if ( toDelete->type() == "Todo" )
902 pref = "t"; 903 pref = "t";
903 des += pref+ QString::number ( id ) + ","; 904 des += pref+ QString::number ( id ) + ",";
904 eve->setReadOnly( false ); 905 eve->setReadOnly( false );
905 eve->setDescription( des ); 906 eve->setDescription( des );
906 eve->setReadOnly( true ); 907 eve->setReadOnly( true );
907 } 908 }
908 eve = lastSync.next(); 909 eve = lastSync.next();
909 } 910 }
910 911
911} 912}
912void CalendarView::checkExternalId( Incidence * inc ) 913void CalendarView::checkExternalId( Incidence * inc )
913{ 914{
914 QPtrList<Event> lastSync = mCalendar->getExternLastSyncEvents() ; 915 QPtrList<Event> lastSync = mCalendar->getExternLastSyncEvents() ;
915 checkExternSyncEvent( lastSync, inc ); 916 checkExternSyncEvent( lastSync, inc );
916 917
917} 918}
918bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode ) 919bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode )
919{ 920{
920 bool syncOK = true; 921 bool syncOK = true;
921 int addedEvent = 0; 922 int addedEvent = 0;
922 int addedEventR = 0; 923 int addedEventR = 0;
923 int deletedEventR = 0; 924 int deletedEventR = 0;
924 int deletedEventL = 0; 925 int deletedEventL = 0;
925 int changedLocal = 0; 926 int changedLocal = 0;
926 int changedRemote = 0; 927 int changedRemote = 0;
927 //QPtrList<Event> el = local->rawEvents(); 928 //QPtrList<Event> el = local->rawEvents();
928 Event* eventR; 929 Event* eventR;
929 QString uid; 930 QString uid;
930 int take; 931 int take;
931 Event* eventL; 932 Event* eventL;
932 Event* eventRSync; 933 Event* eventRSync;
933 Event* eventLSync; 934 Event* eventLSync;
934 QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents(); 935 QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents();
935 QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents(); 936 QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents();
936 bool fullDateRange = false; 937 bool fullDateRange = false;
937 mLastCalendarSync = QDateTime::currentDateTime(); 938 mLastCalendarSync = QDateTime::currentDateTime();
938 QDateTime modifiedCalendar = mLastCalendarSync;; 939 QDateTime modifiedCalendar = mLastCalendarSync;;
939 eventR = remote->event("last-syncEvent-"+mCurrentSyncName ); 940 eventR = remote->event("last-syncEvent-"+mCurrentSyncName );
940 if ( eventR ) { 941 if ( eventR ) {
941 eventRSync = (Event*) eventR->clone(); 942 eventRSync = (Event*) eventR->clone();
942 remote->deleteEvent(eventR ); 943 remote->deleteEvent(eventR );
943 944
944 } else { 945 } else {
945 fullDateRange = true; 946 fullDateRange = true;
946 eventRSync = new Event(); 947 eventRSync = new Event();
947 eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event")); 948 eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event"));
948 eventRSync->setUid("last-syncEvent-"+mCurrentSyncName ); 949 eventRSync->setUid("last-syncEvent-"+mCurrentSyncName );
949 eventRSync->setDtStart( mLastCalendarSync ); 950 eventRSync->setDtStart( mLastCalendarSync );
950 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); 951 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
951 eventRSync->setCategories( i18n("SyncEvent") ); 952 eventRSync->setCategories( i18n("SyncEvent") );
952 } 953 }
953 eventLSync = getLastSyncEvent(); 954 eventLSync = getLastSyncEvent();
954 if ( eventLSync->dtStart() == mLastCalendarSync ) 955 if ( eventLSync->dtStart() == mLastCalendarSync )
955 fullDateRange = true; 956 fullDateRange = true;
956 957
957 if ( ! fullDateRange ) { 958 if ( ! fullDateRange ) {
958 if ( eventLSync->dtStart() != eventRSync->dtStart() ) { 959 if ( eventLSync->dtStart() != eventRSync->dtStart() ) {
959 960
960 // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() ); 961 // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() );
961 //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec()); 962 //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec());
962 fullDateRange = true; 963 fullDateRange = true;
963 } 964 }
964 } 965 }
965 if ( fullDateRange ) 966 if ( fullDateRange )
966 mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365); 967 mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365);
967 else 968 else
968 mLastCalendarSync = eventLSync->dtStart(); 969 mLastCalendarSync = eventLSync->dtStart();
969 // for resyncing if own file has changed 970 // for resyncing if own file has changed
970 if ( mCurrentSyncDevice == "deleteaftersync" ) { 971 if ( mCurrentSyncDevice == "deleteaftersync" ) {
971 mLastCalendarSync = loadedFileVersion; 972 mLastCalendarSync = loadedFileVersion;
972 qDebug("setting mLastCalendarSync "); 973 qDebug("setting mLastCalendarSync ");
973 } 974 }
974 //qDebug("*************************** "); 975 //qDebug("*************************** ");
975 qDebug("mLastCalendarSync %s ",mLastCalendarSync.toString().latin1() ); 976 qDebug("mLastCalendarSync %s ",mLastCalendarSync.toString().latin1() );
976 QPtrList<Incidence> er = remote->rawIncidences(); 977 QPtrList<Incidence> er = remote->rawIncidences();
977 Incidence* inR = er.first(); 978 Incidence* inR = er.first();
978 Incidence* inL; 979 Incidence* inL;
979 QProgressBar bar( er.count(),0 ); 980 QProgressBar bar( er.count(),0 );
980 bar.setCaption (i18n("Syncing - close to abort!") ); 981 bar.setCaption (i18n("Syncing - close to abort!") );
981 982
982 int w = 300; 983 int w = 300;
983 if ( QApplication::desktop()->width() < 320 ) 984 if ( QApplication::desktop()->width() < 320 )
984 w = 220; 985 w = 220;
985 int h = bar.sizeHint().height() ; 986 int h = bar.sizeHint().height() ;
986 int dw = QApplication::desktop()->width(); 987 int dw = QApplication::desktop()->width();
987 int dh = QApplication::desktop()->height(); 988 int dh = QApplication::desktop()->height();
988 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 989 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
989 bar.show(); 990 bar.show();
990 int modulo = (er.count()/10)+1; 991 int modulo = (er.count()/10)+1;
991 int incCounter = 0; 992 int incCounter = 0;
992 while ( inR ) { 993 while ( inR ) {
993 if ( ! bar.isVisible() ) 994 if ( ! bar.isVisible() )
994 return false; 995 return false;
995 if ( incCounter % modulo == 0 ) 996 if ( incCounter % modulo == 0 )
996 bar.setProgress( incCounter ); 997 bar.setProgress( incCounter );
997 ++incCounter; 998 ++incCounter;
998 uid = inR->uid(); 999 uid = inR->uid();
999 bool skipIncidence = false; 1000 bool skipIncidence = false;
1000 if ( uid.left(15) == QString("last-syncEvent-") ) 1001 if ( uid.left(15) == QString("last-syncEvent-") )
1001 skipIncidence = true; 1002 skipIncidence = true;
1002 1003
1003 qApp->processEvents(); 1004 qApp->processEvents();
1004 if ( !skipIncidence ) { 1005 if ( !skipIncidence ) {
1005 inL = local->incidence( uid ); 1006 inL = local->incidence( uid );
1006 if ( inL ) { // maybe conflict - same uid in both calendars 1007 if ( inL ) { // maybe conflict - same uid in both calendars
1007 int maxrev = inL->revision(); 1008 int maxrev = inL->revision();
1008 if ( maxrev < inR->revision() ) 1009 if ( maxrev < inR->revision() )
1009 maxrev = inR->revision(); 1010 maxrev = inR->revision();
1010 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) { 1011 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) {
1011 //qDebug("take %d %s ", take, inL->summary().latin1()); 1012 //qDebug("take %d %s ", take, inL->summary().latin1());
1012 if ( take == 3 ) 1013 if ( take == 3 )
1013 return false; 1014 return false;
1014 if ( take == 1 ) {// take local 1015 if ( take == 1 ) {// take local
1015 inL->setZaurusUid( inR->zaurusUid() ); 1016 inL->setZaurusUid( inR->zaurusUid() );
1016 remote->deleteIncidence( inR ); 1017 remote->deleteIncidence( inR );
1017 if ( inL->revision() < maxrev ) 1018 if ( inL->revision() < maxrev )
1018 inL->setRevision( maxrev ); 1019 inL->setRevision( maxrev );
1019 remote->addIncidence( inL->clone() ); 1020 remote->addIncidence( inL->clone() );
1020 ++changedRemote; 1021 ++changedRemote;
1021 } else { 1022 } else {
1022 if ( inR->revision() < maxrev ) 1023 if ( inR->revision() < maxrev )
1023 inR->setRevision( maxrev ); 1024 inR->setRevision( maxrev );
1024 local->deleteIncidence( inL ); 1025 local->deleteIncidence( inL );
1025 local->addIncidence( inR->clone() ); 1026 local->addIncidence( inR->clone() );
1026 ++changedLocal; 1027 ++changedLocal;
1027 } 1028 }
1028 } 1029 }
1029 } else { // no conflict 1030 } else { // no conflict
1030 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1031 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1031 QString des = eventLSync->description(); 1032 QString des = eventLSync->description();
1032 QString pref = "e"; 1033 QString pref = "e";
1033 if ( inR->type() == "Todo" ) 1034 if ( inR->type() == "Todo" )
1034 pref = "t"; 1035 pref = "t";
1035 if ( des.find(pref+QString::number( inR->getID(mCurrentSyncDevice) ) +"," ) >= 0 && mode != 5) { // delete it 1036 if ( des.find(pref+QString::number( inR->getID(mCurrentSyncDevice) ) +"," ) >= 0 && mode != 5) { // delete it
1036 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); 1037 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE );
1037 //remote->deleteIncidence( inR ); 1038 //remote->deleteIncidence( inR );
1038 ++deletedEventR; 1039 ++deletedEventR;
1039 } else { 1040 } else {
1040 inR->setLastModified( modifiedCalendar ); 1041 inR->setLastModified( modifiedCalendar );
1041 local->addIncidence( inR->clone() ); 1042 local->addIncidence( inR->clone() );
1042 ++addedEvent; 1043 ++addedEvent;
1043 } 1044 }
1044 } else { 1045 } else {
1045 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { 1046 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) {
1046 inR->setLastModified( modifiedCalendar ); 1047 inR->setLastModified( modifiedCalendar );
1047 local->addIncidence( inR->clone() ); 1048 local->addIncidence( inR->clone() );
1048 ++addedEvent; 1049 ++addedEvent;
1049 } else { 1050 } else {
1050 checkExternSyncEvent(eventRSyncSharp, inR); 1051 checkExternSyncEvent(eventRSyncSharp, inR);
1051 remote->deleteIncidence( inR ); 1052 remote->deleteIncidence( inR );
1052 ++deletedEventR; 1053 ++deletedEventR;
1053 } 1054 }
1054 } 1055 }
1055 } 1056 }
1056 } 1057 }
1057 inR = er.next(); 1058 inR = er.next();
1058 } 1059 }
1059 QPtrList<Incidence> el = local->rawIncidences(); 1060 QPtrList<Incidence> el = local->rawIncidences();
1060 inL = el.first(); 1061 inL = el.first();
1061 modulo = (el.count()/10)+1; 1062 modulo = (el.count()/10)+1;
1062 bar.setCaption (i18n("Add / remove events") ); 1063 bar.setCaption (i18n("Add / remove events") );
1063 bar.setTotalSteps ( el.count() ) ; 1064 bar.setTotalSteps ( el.count() ) ;
1064 bar.show(); 1065 bar.show();
1065 incCounter = 0; 1066 incCounter = 0;
1066 1067
1067 while ( inL ) { 1068 while ( inL ) {
1068 1069
1069 qApp->processEvents(); 1070 qApp->processEvents();
1070 if ( ! bar.isVisible() ) 1071 if ( ! bar.isVisible() )
1071 return false; 1072 return false;
1072 if ( incCounter % modulo == 0 ) 1073 if ( incCounter % modulo == 0 )
1073 bar.setProgress( incCounter ); 1074 bar.setProgress( incCounter );
1074 ++incCounter; 1075 ++incCounter;
1075 uid = inL->uid(); 1076 uid = inL->uid();
1076 bool skipIncidence = false; 1077 bool skipIncidence = false;
1077 if ( uid.left(15) == QString("last-syncEvent-") ) 1078 if ( uid.left(15) == QString("last-syncEvent-") )
1078 skipIncidence = true; 1079 skipIncidence = true;
1079 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" ) 1080 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" )
1080 skipIncidence = true; 1081 skipIncidence = true;
1081 if ( !skipIncidence ) { 1082 if ( !skipIncidence ) {
1082 inR = remote->incidence( uid ); 1083 inR = remote->incidence( uid );
1083 if ( ! inR ) { 1084 if ( ! inR ) {
1084 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1085 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1085 if ( inL->getID(mCurrentSyncDevice) >= 0 && mode != 4 ) { 1086 if ( inL->getID(mCurrentSyncDevice) >= 0 && mode != 4 ) {
1086 local->deleteIncidence( inL ); 1087 local->deleteIncidence( inL );
1087 ++deletedEventL; 1088 ++deletedEventL;
1088 } else { 1089 } else {
1089 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { 1090 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) {
1090 inL->setID(mCurrentSyncDevice, -1 ); 1091 inL->setID(mCurrentSyncDevice, -1 );
1091 ++addedEventR; 1092 ++addedEventR;
1092 inL->setLastModified( modifiedCalendar ); 1093 inL->setLastModified( modifiedCalendar );
1093 remote->addIncidence( inL->clone() ); 1094 remote->addIncidence( inL->clone() );
1094 } 1095 }
1095 } 1096 }
1096 } else { 1097 } else {
1097 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { 1098 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) {
1098 checkExternSyncEvent(eventLSyncSharp, inL); 1099 checkExternSyncEvent(eventLSyncSharp, inL);
1099 local->deleteIncidence( inL ); 1100 local->deleteIncidence( inL );
1100 ++deletedEventL; 1101 ++deletedEventL;
1101 } else { 1102 } else {
1102 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { 1103 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) {
1103 ++addedEventR; 1104 ++addedEventR;
1104 inL->setLastModified( modifiedCalendar ); 1105 inL->setLastModified( modifiedCalendar );
1105 remote->addIncidence( inL->clone() ); 1106 remote->addIncidence( inL->clone() );
1106 } 1107 }
1107 } 1108 }
1108 } 1109 }
1109 } 1110 }
1110 } 1111 }
1111 inL = el.next(); 1112 inL = el.next();
1112 } 1113 }
1113 1114
1114 bar.hide(); 1115 bar.hide();
1115 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 ); 1116 mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 );
1116 eventLSync->setReadOnly( false ); 1117 eventLSync->setReadOnly( false );
1117 eventLSync->setDtStart( mLastCalendarSync ); 1118 eventLSync->setDtStart( mLastCalendarSync );
1118 eventRSync->setDtStart( mLastCalendarSync ); 1119 eventRSync->setDtStart( mLastCalendarSync );
1119 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1120 eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1120 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); 1121 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) );
1121 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; 1122 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ;
1122 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); 1123 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName );
1123 eventLSync->setReadOnly( true ); 1124 eventLSync->setReadOnly( true );
1124 if ( mGlobalSyncMode == SYNC_MODE_NORMAL) 1125 if ( mGlobalSyncMode == SYNC_MODE_NORMAL)
1125 remote->addEvent( eventRSync ); 1126 remote->addEvent( eventRSync );
1126 QString mes; 1127 QString mes;
1127 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 ); 1128 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 );
1128 if ( KOPrefs::instance()->mShowSyncSummary ) { 1129 if ( KOPrefs::instance()->mShowSyncSummary ) {
1129 KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") ); 1130 KMessageBox::information(this, mes, i18n("KO/Pi Synchronization") );
1130 } 1131 }
1131 qDebug( mes ); 1132 qDebug( mes );
1132 mCalendar->checkAlarmForIncidence( 0, true ); 1133 mCalendar->checkAlarmForIncidence( 0, true );
1133 return syncOK; 1134 return syncOK;
1134} 1135}
1135 1136
1136void CalendarView::setSyncDevice( QString s ) 1137void CalendarView::setSyncDevice( QString s )
1137{ 1138{
1138 mCurrentSyncDevice= s; 1139 mCurrentSyncDevice= s;
1139} 1140}
1140void CalendarView::setSyncName( QString s ) 1141void CalendarView::setSyncName( QString s )
1141{ 1142{
1142 mCurrentSyncName= s; 1143 mCurrentSyncName= s;
1143} 1144}
1144bool CalendarView::syncCalendar(QString filename, int mode) 1145bool CalendarView::syncCalendar(QString filename, int mode)
1145{ 1146{
1146 mGlobalSyncMode = SYNC_MODE_NORMAL; 1147 mGlobalSyncMode = SYNC_MODE_NORMAL;
1147 CalendarLocal* calendar = new CalendarLocal(); 1148 CalendarLocal* calendar = new CalendarLocal();
1148 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 1149 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
1149 FileStorage* storage = new FileStorage( calendar ); 1150 FileStorage* storage = new FileStorage( calendar );
1150 bool syncOK = false; 1151 bool syncOK = false;
1151 storage->setFileName( filename ); 1152 storage->setFileName( filename );
1152 // qDebug("loading ... "); 1153 // qDebug("loading ... ");
1153 if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) { 1154 if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) {
1154 getEventViewerDialog()->setSyncMode( true ); 1155 getEventViewerDialog()->setSyncMode( true );
1155 syncOK = synchronizeCalendar( mCalendar, calendar, mode ); 1156 syncOK = synchronizeCalendar( mCalendar, calendar, mode );
1156 getEventViewerDialog()->setSyncMode( false ); 1157 getEventViewerDialog()->setSyncMode( false );
1157 if ( syncOK ) { 1158 if ( syncOK ) {
1158 if ( KOPrefs::instance()->mWriteBackFile ) 1159 if ( KOPrefs::instance()->mWriteBackFile )
1159 { 1160 {
1160 storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); 1161 storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) );
1161 storage->save(); 1162 storage->save();
1162 } 1163 }
1163 } 1164 }
1164 setModified( true ); 1165 setModified( true );
1165 } 1166 }
1166 delete storage; 1167 delete storage;
1167 delete calendar; 1168 delete calendar;
1168 if ( syncOK ) 1169 if ( syncOK )
1169 updateView(); 1170 updateView();
1170 return syncOK; 1171 return syncOK;
1171} 1172}
1172void CalendarView::syncSharp() 1173void CalendarView::syncSharp()
1173{ 1174{
1174#ifndef DESKTOP_VERSION 1175#ifndef DESKTOP_VERSION
1175 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 1176 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
1176 //mCurrentSyncDevice = "sharp-DTM"; 1177 //mCurrentSyncDevice = "sharp-DTM";
1177 if ( KOPrefs::instance()->mAskForPreferences ) 1178 if ( KOPrefs::instance()->mAskForPreferences )
1178 edit_sync_options(); 1179 edit_sync_options();
1179 qApp->processEvents(); 1180 qApp->processEvents();
1180 CalendarLocal* calendar = new CalendarLocal(); 1181 CalendarLocal* calendar = new CalendarLocal();
1181 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); 1182 calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId);
1182 bool syncOK = false; 1183 bool syncOK = false;
1183 SharpFormat sharpFormat; 1184 SharpFormat sharpFormat;
1184 if ( sharpFormat.load( calendar, mCalendar ) ) { 1185 if ( sharpFormat.load( calendar, mCalendar ) ) {
1185 getEventViewerDialog()->setSyncMode( true ); 1186 getEventViewerDialog()->setSyncMode( true );
1186 syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs ); 1187 syncOK = synchronizeCalendar( mCalendar, calendar, KOPrefs::instance()->mSyncAlgoPrefs );
1187 getEventViewerDialog()->setSyncMode( false ); 1188 getEventViewerDialog()->setSyncMode( false );
1188 qApp->processEvents(); 1189 qApp->processEvents();
1189 if ( syncOK ) { 1190 if ( syncOK ) {
1190 if ( KOPrefs::instance()->mWriteBackFile ) 1191 if ( KOPrefs::instance()->mWriteBackFile )
1191 { 1192 {
1192 QPtrList<Incidence> iL = mCalendar->rawIncidences(); 1193 QPtrList<Incidence> iL = mCalendar->rawIncidences();
1193 Incidence* inc = iL.first(); 1194 Incidence* inc = iL.first();
1194 /* obsolete 1195 /* obsolete
1195 while ( inc ) { 1196 while ( inc ) {
1196 inc->setZaurusStat( inc->revision () ); 1197 inc->setZaurusStat( inc->revision () );
1197 inc = iL.next(); 1198 inc = iL.next();
1198 } 1199 }
1199 */ 1200 */
1200 // pending: clean last sync event description 1201 // pending: clean last sync event description
1201 sharpFormat.save(calendar); 1202 sharpFormat.save(calendar);
1202 iL = calendar->rawIncidences(); 1203 iL = calendar->rawIncidences();
1203 inc = iL.first(); 1204 inc = iL.first();
1204 Incidence* loc; 1205 Incidence* loc;
1205 while ( inc ) { 1206 while ( inc ) {
1206 if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) { 1207 if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) {
1207 loc = mCalendar->incidence(inc->uid() ); 1208 loc = mCalendar->incidence(inc->uid() );
1208 if ( loc ) { 1209 if ( loc ) {
1209 loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) ); 1210 loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) );
1210 loc->setZaurusUid( inc->zaurusUid() ); 1211 loc->setZaurusUid( inc->zaurusUid() );
1211 } 1212 }
1212 } 1213 }
1213 inc = iL.next(); 1214 inc = iL.next();
1214 } 1215 }
1215 Incidence* lse = getLastSyncEvent(); 1216 Incidence* lse = getLastSyncEvent();
1216 if ( lse ) { 1217 if ( lse ) {
1217 lse->setReadOnly( false ); 1218 lse->setReadOnly( false );
1218 lse->setDescription( "" ); 1219 lse->setDescription( "" );
1219 lse->setReadOnly( true ); 1220 lse->setReadOnly( true );
1220 } 1221 }
1221 } 1222 }
1222 } 1223 }
1223 setModified( true ); 1224 setModified( true );
1224 } else { 1225 } else {
1225 QString question = i18n("Sorry, the database access\ncommand failed!\n\nNothing synced!\n") ; 1226 QString question = i18n("Sorry, the database access\ncommand failed!\n\nNothing synced!\n") ;
1226 QMessageBox::information( 0, i18n("KO/Pi Import - ERROR"), 1227 QMessageBox::information( 0, i18n("KO/Pi Import - ERROR"),
1227 question, i18n("Ok")) ; 1228 question, i18n("Ok")) ;
1228 1229
1229 } 1230 }
1230 delete calendar; 1231 delete calendar;
1231 updateView(); 1232 updateView();
1232 return ;//syncOK; 1233 return ;//syncOK;
1233#endif 1234#endif
1234} 1235}
1235 1236
1236 1237
1237#include <kabc/stdaddressbook.h> 1238#include <kabc/stdaddressbook.h>
1238bool CalendarView::importBday() 1239bool CalendarView::importBday()
1239{ 1240{
1240 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true ); 1241 KABC::StdAddressBook* AddressBook = KABC::StdAddressBook::self( true );
1241 KABC::AddressBook::Iterator it; 1242 KABC::AddressBook::Iterator it;
1242 int count = 0; 1243 int count = 0;
1243 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) { 1244 for( it = AddressBook->begin(); it != AddressBook->end(); ++it ) {
1244 ++count; 1245 ++count;
1245 } 1246 }
1246 QProgressBar bar(count,0 ); 1247 QProgressBar bar(count,0 );
1247 int w = 300; 1248 int w = 300;
1248 if ( QApplication::desktop()->width() < 320 ) 1249 if ( QApplication::desktop()->width() < 320 )
1249 w = 220; 1250 w = 220;
1250 int h = bar.sizeHint().height() ; 1251 int h = bar.sizeHint().height() ;
1251 int dw = QApplication::desktop()->width(); 1252 int dw = QApplication::desktop()->width();
1252 int dh = QApplication::desktop()->height(); 1253 int dh = QApplication::desktop()->height();
1253 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1254 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1254 bar.show(); 1255 bar.show();
diff --git a/libkdepim/ksyncprefsdialog.cpp b/libkdepim/ksyncprefsdialog.cpp
index 59c8418..67a3f52 100644
--- a/libkdepim/ksyncprefsdialog.cpp
+++ b/libkdepim/ksyncprefsdialog.cpp
@@ -187,428 +187,434 @@ void KSyncPrefsDialog::setupSyncAlgTab()
187 ++iii; 187 ++iii;
188 mIsLocal = new QRadioButton ( i18n("Local file"), gr ); 188 mIsLocal = new QRadioButton ( i18n("Local file"), gr );
189 mIsNotLocal = new QRadioButton ( i18n("Remote file (w down/upload command)"), gr ); 189 mIsNotLocal = new QRadioButton ( i18n("Remote file (w down/upload command)"), gr );
190 connect (mIsLocal, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); 190 connect (mIsLocal, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) );
191 mIsPhone = new QRadioButton ( i18n("Mobile device (cell phone)"), gr ); 191 mIsPhone = new QRadioButton ( i18n("Mobile device (cell phone)"), gr );
192 connect (mIsPhone, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); 192 connect (mIsPhone, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) );
193 193
194 194
195 phoneWidget = new QVBox( topFrame); 195 phoneWidget = new QVBox( topFrame);
196 topLayout->addMultiCellWidget(phoneWidget, iii,iii,0,1); 196 topLayout->addMultiCellWidget(phoneWidget, iii,iii,0,1);
197 ++iii; 197 ++iii;
198 QHBox* temphb = new QHBox( phoneWidget ); 198 QHBox* temphb = new QHBox( phoneWidget );
199 new QLabel( i18n("I/O device: "), temphb ); 199 new QLabel( i18n("I/O device: "), temphb );
200 mPhoneDevice = new QLineEdit( temphb); 200 mPhoneDevice = new QLineEdit( temphb);
201 button = new QPushButton( i18n("Help..."), temphb ); 201 button = new QPushButton( i18n("Help..."), temphb );
202 connect ( button, SIGNAL( clicked()), this, SLOT ( helpDevice() ) ); 202 connect ( button, SIGNAL( clicked()), this, SLOT ( helpDevice() ) );
203 203
204 204
205 temphb = new QHBox( phoneWidget ); 205 temphb = new QHBox( phoneWidget );
206 new QLabel( i18n("Connection: "), temphb ); 206 new QLabel( i18n("Connection: "), temphb );
207 mPhoneConnection = new QLineEdit( temphb); 207 mPhoneConnection = new QLineEdit( temphb);
208 button = new QPushButton( i18n("Help..."), temphb ); 208 button = new QPushButton( i18n("Help..."), temphb );
209 connect ( button, SIGNAL( clicked()), this, SLOT ( helpConnection() ) ); 209 connect ( button, SIGNAL( clicked()), this, SLOT ( helpConnection() ) );
210 210
211 211
212 temphb = new QHBox( phoneWidget ); 212 temphb = new QHBox( phoneWidget );
213 new QLabel( i18n("Model(opt.): "), temphb ); 213 new QLabel( i18n("Model(opt.): "), temphb );
214 mPhoneModel = new QLineEdit( temphb); 214 mPhoneModel = new QLineEdit( temphb);
215 button = new QPushButton( i18n("Help..."), temphb ); 215 button = new QPushButton( i18n("Help..."), temphb );
216 connect ( button, SIGNAL( clicked()), this, SLOT ( helpModel() ) ); 216 connect ( button, SIGNAL( clicked()), this, SLOT ( helpModel() ) );
217 217
218 // *** local 218 // *** local
219 localFileWidget = new QVBox( topFrame); 219 localFileWidget = new QVBox( topFrame);
220 topLayout->addMultiCellWidget(localFileWidget, iii,iii,0,1); 220 topLayout->addMultiCellWidget(localFileWidget, iii,iii,0,1);
221 ++iii; 221 ++iii;
222 temphb = new QHBox( localFileWidget ); 222 temphb = new QHBox( localFileWidget );
223 223
224 lab = new QLabel( i18n("Local file Cal:"), temphb ); 224 lab = new QLabel( i18n("Local file Cal:"), temphb );
225 lab = new QLabel( i18n("Local file ABook:"), temphb ); 225 lab = new QLabel( i18n("Local file ABook:"), temphb );
226 temphb = new QHBox( localFileWidget ); 226 temphb = new QHBox( localFileWidget );
227 button = new QPushButton( i18n("Choose..."), temphb ); 227 button = new QPushButton( i18n("Choose..."), temphb );
228 connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFile() ) ); 228 connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFile() ) );
229 button = new QPushButton( i18n("Choose..."), temphb ); 229 button = new QPushButton( i18n("Choose..."), temphb );
230 connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFileAB() ) ); 230 connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFileAB() ) );
231 temphb = new QHBox( localFileWidget ); 231 temphb = new QHBox( localFileWidget );
232 232
233 mRemoteFile = new QLineEdit( temphb); 233 mRemoteFile = new QLineEdit( temphb);
234 mRemoteFileAB = new QLineEdit( temphb); 234 mRemoteFileAB = new QLineEdit( temphb);
235 235
236 // *** remote 236 // *** remote
237 remoteFileWidget = new QVBox( topFrame); 237 remoteFileWidget = new QVBox( topFrame);
238 topLayout->addMultiCellWidget(remoteFileWidget, iii,iii,0,1); 238 topLayout->addMultiCellWidget(remoteFileWidget, iii,iii,0,1);
239 ++iii; 239 ++iii;
240 temphb = new QHBox( remoteFileWidget ); 240 temphb = new QHBox( remoteFileWidget );
241 new QLabel( i18n("Calendar:"), temphb); 241 new QLabel( i18n("Calendar:"), temphb);
242 new QLabel( i18n("AddressBook:"), temphb); 242 new QLabel( i18n("AddressBook:"), temphb);
243 243
244 lab = new QLabel( i18n("Pre sync (download) command:"), remoteFileWidget); 244 lab = new QLabel( i18n("Pre sync (download) command:"), remoteFileWidget);
245 temphb = new QHBox( remoteFileWidget ); 245 temphb = new QHBox( remoteFileWidget );
246 mRemotePrecommand = new QLineEdit(temphb); 246 mRemotePrecommand = new QLineEdit(temphb);
247 mRemotePrecommandAB = new QLineEdit(temphb); 247 mRemotePrecommandAB = new QLineEdit(temphb);
248 248
249 lab = new QLabel( i18n("Local temp file:"), remoteFileWidget); 249 lab = new QLabel( i18n("Local temp file:"), remoteFileWidget);
250 temphb = new QHBox( remoteFileWidget ); 250 temphb = new QHBox( remoteFileWidget );
251 mLocalTempFile = new QLineEdit(temphb); 251 mLocalTempFile = new QLineEdit(temphb);
252 mLocalTempFileAB = new QLineEdit(temphb); 252 mLocalTempFileAB = new QLineEdit(temphb);
253 253
254 lab = new QLabel( i18n("Post sync (upload) command:"), remoteFileWidget); 254 lab = new QLabel( i18n("Post sync (upload) command:"), remoteFileWidget);
255 temphb = new QHBox( remoteFileWidget ); 255 temphb = new QHBox( remoteFileWidget );
256 mRemotePostcommand = new QLineEdit(temphb ); 256 mRemotePostcommand = new QLineEdit(temphb );
257 mRemotePostcommandAB = new QLineEdit(temphb ); 257 mRemotePostcommandAB = new QLineEdit(temphb );
258 258
259 lab = new QLabel( i18n("Fill in default values for:"), remoteFileWidget); 259 lab = new QLabel( i18n("Fill in default values for:"), remoteFileWidget);
260 temphb = new QHBox( remoteFileWidget ); 260 temphb = new QHBox( remoteFileWidget );
261 button = new QPushButton( i18n("ssh/scp"), temphb ); 261 button = new QPushButton( i18n("ssh/scp"), temphb );
262 connect ( button, SIGNAL( clicked()), this, SLOT (fillSSH() ) ); 262 connect ( button, SIGNAL( clicked()), this, SLOT (fillSSH() ) );
263 button = new QPushButton( i18n("ftp"), temphb ); 263 button = new QPushButton( i18n("ftp"), temphb );
264 connect ( button, SIGNAL( clicked()), this, SLOT (fillFTP() ) ); 264 connect ( button, SIGNAL( clicked()), this, SLOT (fillFTP() ) );
265 lab = new QLabel( i18n("Hint: Use $PWD$ for placeholder of password!"), remoteFileWidget); 265 lab = new QLabel( i18n("Hint: Use $PWD$ for placeholder of password!"), remoteFileWidget);
266 266
267 267
268} 268}
269void KSyncPrefsDialog::slotOK() 269void KSyncPrefsDialog::slotOK()
270{ 270{
271 if ( mMyMachineName->text() == "undefined" ) { 271 if ( mMyMachineName->text() == "undefined" ) {
272 KMessageBox::error(this,i18n("Local device name undefined!\nPlease define device name!"),i18n("KO/Pi config error")); 272 KMessageBox::error(this,i18n("Local device name undefined!\nPlease define device name!"),i18n("KO/Pi config error"));
273 return; 273 return;
274 } 274 }
275 int i; 275 int i;
276 for (i = 0; i < mSyncProfileNames.count(); ++ i) { 276 for (i = 0; i < mSyncProfileNames.count(); ++ i) {
277 if ( mSyncProfileNames.contains( mSyncProfileNames[i]) > 1 ) { 277 if ( mSyncProfileNames.contains( mSyncProfileNames[i]) > 1 ) {
278 KMessageBox::error(this,i18n("Multiple profiles with same name!\nPlease use unique profile names!"),i18n("KO/Pi config error")); 278 KMessageBox::error(this,i18n("Multiple profiles with same name!\nPlease use unique profile names!"),i18n("KO/Pi config error"));
279 return; 279 return;
280 } 280 }
281 } 281 }
282 usrWriteConfig(); 282 usrWriteConfig();
283 QDialog::accept(); 283 QDialog::accept();
284} 284}
285void KSyncPrefsDialog::accept() 285void KSyncPrefsDialog::accept()
286{ 286{
287 slotOK(); 287 slotOK();
288} 288}
289void KSyncPrefsDialog::chooseFile() 289void KSyncPrefsDialog::chooseFile()
290{ 290{
291 QString fn = QDir::homeDirPath(); 291 QString fn = QDir::homeDirPath();
292 292
293 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); 293 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this );
294 if ( fn == "" ) 294 if ( fn == "" )
295 return; 295 return;
296 mRemoteFile->setText( fn ); 296 mRemoteFile->setText( fn );
297} 297}
298 298
299void KSyncPrefsDialog::chooseFileAB() 299void KSyncPrefsDialog::chooseFileAB()
300{ 300{
301 QString fn = QDir::homeDirPath(); 301 QString fn = QDir::homeDirPath();
302 302
303 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); 303 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this );
304 if ( fn == "" ) 304 if ( fn == "" )
305 return; 305 return;
306 mRemoteFileAB->setText( fn ); 306 mRemoteFileAB->setText( fn );
307} 307}
308 308
309void KSyncPrefsDialog::textChanged( const QString & s ) 309void KSyncPrefsDialog::textChanged( const QString & s )
310{ 310{
311 if ( mProfileBox->count() == 0 ) 311 if ( mProfileBox->count() == 0 )
312 return; 312 return;
313 if ( currentSelection < 3 ) { 313 if ( currentSelection < 3 ) {
314 //KMessageBox::error(this,i18n("This profil name\ncannot be edited!\n"),i18n("KO/Pi config error")); 314 //KMessageBox::error(this,i18n("This profil name\ncannot be edited!\n"),i18n("KO/Pi config error"));
315 mProfileBox->blockSignals( true ); 315 mProfileBox->blockSignals( true );
316 mProfileBox->setCurrentItem(mProfileBox-> currentItem ()); 316 mProfileBox->setCurrentItem(mProfileBox-> currentItem ());
317 mProfileBox->blockSignals( false ); 317 mProfileBox->blockSignals( false );
318 return; 318 return;
319 } 319 }
320 //qDebug("cur i %d ",mProfileBox-> currentItem () ); 320 //qDebug("cur i %d ",mProfileBox-> currentItem () );
321 mProfileBox->changeItem ( s, mProfileBox-> currentItem () ) ; 321 mProfileBox->changeItem ( s, mProfileBox-> currentItem () ) ;
322 KSyncProfile* prof = mSyncProfiles.at(mProfileBox-> currentItem ()) ; 322 KSyncProfile* prof = mSyncProfiles.at(mProfileBox-> currentItem ()) ;
323 prof->setName( s ); 323 prof->setName( s );
324 mSyncProfileNames[mProfileBox-> currentItem ()] = s; 324 mSyncProfileNames[mProfileBox-> currentItem ()] = s;
325} 325}
326void KSyncPrefsDialog::profileChanged( int item ) 326void KSyncPrefsDialog::profileChanged( int item )
327{ 327{
328 //qDebug("KSyncPrefsDialog::profileChanged %d ", item ); 328 //qDebug("KSyncPrefsDialog::profileChanged %d ", item );
329 KSyncProfile* prof; 329 KSyncProfile* prof;
330 saveProfile(); 330 saveProfile();
331 currentSelection = item; 331 currentSelection = item;
332 prof = mSyncProfiles.at(item) ; 332 prof = mSyncProfiles.at(item) ;
333 mRemotePrecommand->setText(prof->getPreSyncCommand()); 333 mRemotePrecommand->setText(prof->getPreSyncCommand());
334 mRemotePostcommand->setText(prof->getPostSyncCommand()); 334 mRemotePostcommand->setText(prof->getPostSyncCommand());
335 mLocalTempFile->setText(prof->getLocalTempFile()); 335 mLocalTempFile->setText(prof->getLocalTempFile());
336 mRemoteFile->setText(prof->getRemoteFileName()) ; 336 mRemoteFile->setText(prof->getRemoteFileName()) ;
337 337
338 mRemotePrecommandAB->setText(prof->getPreSyncCommandAB()); 338 mRemotePrecommandAB->setText(prof->getPreSyncCommandAB());
339 mRemotePostcommandAB->setText(prof->getPostSyncCommandAB()); 339 mRemotePostcommandAB->setText(prof->getPostSyncCommandAB());
340 mLocalTempFileAB->setText(prof->getLocalTempFileAB()); 340 mLocalTempFileAB->setText(prof->getLocalTempFileAB());
341 mRemoteFileAB->setText(prof->getRemoteFileNameAB()) ; 341 mRemoteFileAB->setText(prof->getRemoteFileNameAB()) ;
342 342
343 mPhoneDevice->setText(prof->getPhoneDevice()); 343 mPhoneDevice->setText(prof->getPhoneDevice());
344 mPhoneConnection->setText(prof->getPhoneConnection()); 344 mPhoneConnection->setText(prof->getPhoneConnection());
345 mPhoneModel->setText(prof->getPhoneModel()); 345 mPhoneModel->setText(prof->getPhoneModel());
346 346
347 mShowSummaryAfterSync->setChecked( prof->getShowSummaryAfterSync()); 347 mShowSummaryAfterSync->setChecked( prof->getShowSummaryAfterSync());
348 mAskForPreferences->setChecked( prof->getAskForPreferences()); 348 mAskForPreferences->setChecked( prof->getAskForPreferences());
349 mWriteBackExisting->setChecked( prof->getWriteBackExisting() ); 349 mWriteBackExisting->setChecked( prof->getWriteBackExisting() );
350 mWriteBackFile->setChecked( prof->getWriteBackFile()); 350 mWriteBackFile->setChecked( prof->getWriteBackFile());
351 mIncludeInRing->setChecked( prof->getIncludeInRingSync() ); 351 mIncludeInRing->setChecked( prof->getIncludeInRingSync() );
352 mIncludeInRingAB->setChecked( prof->getIncludeInRingSyncAB() ); 352 mIncludeInRingAB->setChecked( prof->getIncludeInRingSyncAB() );
353 mWriteBackFuture->setChecked( prof->getWriteBackFuture()); 353 mWriteBackFuture->setChecked( prof->getWriteBackFuture());
354 mWriteBackFutureWeeks->setValue( prof->getWriteBackFutureWeeks() ); 354 mWriteBackFutureWeeks->setValue( prof->getWriteBackFutureWeeks() );
355 355
356 switch ( prof->getSyncPrefs() ) { 356 switch ( prof->getSyncPrefs() ) {
357 case 0: 357 case 0:
358 loc->setChecked( true); 358 loc->setChecked( true);
359 break; 359 break;
360 case 1: 360 case 1:
361 rem->setChecked( true ); 361 rem->setChecked( true );
362 break; 362 break;
363 case 2: 363 case 2:
364 newest->setChecked( true); 364 newest->setChecked( true);
365 break; 365 break;
366 case 3: 366 case 3:
367 ask->setChecked( true); 367 ask->setChecked( true);
368 break; 368 break;
369 case 4: 369 case 4:
370 f_loc->setChecked( true); 370 f_loc->setChecked( true);
371 break; 371 break;
372 case 5: 372 case 5:
373 f_rem->setChecked( true); 373 f_rem->setChecked( true);
374 break; 374 break;
375 case 6: 375 case 6:
376 //both->setChecked( true); 376 //both->setChecked( true);
377 break; 377 break;
378 default: 378 default:
379 break; 379 break;
380 } 380 }
381 mIsLocal->setChecked(prof->getIsLocalFileSync()) ; 381 mIsLocal->setChecked(prof->getIsLocalFileSync()) ;
382 mIsPhone->setChecked(prof->getIsPhoneSync()) ; 382 mIsPhone->setChecked(prof->getIsPhoneSync()) ;
383 mIsNotLocal->setChecked(!prof->getIsLocalFileSync() && !prof->getIsPhoneSync() ); 383 mIsNotLocal->setChecked(!prof->getIsLocalFileSync() && !prof->getIsPhoneSync() );
384 proGr->setEnabled( item > 2 ); 384 proGr->setEnabled( item > 2 );
385 if ( item < 3 ) { 385 if ( item < 3 ) {
386 localFileWidget->hide(); 386 localFileWidget->hide();
387 remoteFileWidget->hide(); 387 remoteFileWidget->hide();
388 phoneWidget->hide(); 388 phoneWidget->hide();
389 389
390 } else 390 } else
391 kindChanged( prof->getIsLocalFileSync() ); 391 kindChanged( prof->getIsLocalFileSync() );
392} 392}
393 393
394void KSyncPrefsDialog::fillSSH() 394void KSyncPrefsDialog::fillSSH()
395{ 395{
396 mRemotePrecommand->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" ); 396 mRemotePrecommand->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" );
397 mLocalTempFile->setText("/tmp/mycalendar.ics" ); 397 mLocalTempFile->setText("/tmp/mycalendar.ics" );
398 mRemotePostcommand->setText("scp /tmp/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics" ); 398 mRemotePostcommand->setText("scp /tmp/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics" );
399 mRemotePrecommandAB->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/kabc/std.vcf /tmp/std.vcf" ); 399 mRemotePrecommandAB->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/kabc/std.vcf /tmp/std.vcf" );
400 mLocalTempFileAB->setText("/tmp/std.vcf" ); 400 mLocalTempFileAB->setText("/tmp/std.vcf" );
401 mRemotePostcommandAB->setText("scp /tmp/std.vcf zaurus@192.168.0.65:/home/zaurus/kdepim/apps/kabc/std.vcf" ); 401 mRemotePostcommandAB->setText("scp /tmp/std.vcf zaurus@192.168.0.65:/home/zaurus/kdepim/apps/kabc/std.vcf" );
402} 402}
403void KSyncPrefsDialog::fillFTP() 403void KSyncPrefsDialog::fillFTP()
404{ 404{
405 mRemotePrecommand->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics" ); 405 mRemotePrecommand->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics" );
406 mLocalTempFile->setText("/tmp/mycalendar.ics" ); 406 mLocalTempFile->setText("/tmp/mycalendar.ics" );
407 mRemotePostcommand->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" ); 407 mRemotePostcommand->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" );
408 mRemotePrecommandAB->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/kabc/std.vcf" ); 408 mRemotePrecommandAB->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/kabc/std.vcf" );
409 mLocalTempFileAB->setText("/tmp/std.vcf" ); 409 mLocalTempFileAB->setText("/tmp/std.vcf" );
410 mRemotePostcommandAB->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/kabc/std.vcf /tmp/std.vcf" ); 410 mRemotePostcommandAB->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/kabc/std.vcf /tmp/std.vcf" );
411 411
412} 412}
413void KSyncPrefsDialog::kindChanged( bool b ) 413void KSyncPrefsDialog::kindChanged( bool b )
414{ 414{
415 415
416 if ( mIsLocal->isChecked () ) 416 if ( mIsLocal->isChecked () )
417 localFileWidget->show(); 417 localFileWidget->show();
418 else 418 else
419 localFileWidget->hide(); 419 localFileWidget->hide();
420 420
421 if ( mIsNotLocal->isChecked () ) 421 if ( mIsNotLocal->isChecked () )
422 remoteFileWidget->show(); 422 remoteFileWidget->show();
423 else 423 else
424 remoteFileWidget->hide(); 424 remoteFileWidget->hide();
425 425
426 if ( mIsPhone->isChecked () ) { 426 if ( mIsPhone->isChecked () ) {
427 phoneWidget->show(); 427 phoneWidget->show();
428 } 428 }
429 else { 429 else {
430 phoneWidget->hide(); 430 phoneWidget->hide();
431 } 431 }
432 432
433} 433}
434void KSyncPrefsDialog::deleteProfile() 434void KSyncPrefsDialog::deleteProfile()
435{ 435{
436 //qDebug("KSyncPrefsDialog::deleteProfile() "); 436 //qDebug("KSyncPrefsDialog::deleteProfile() ");
437 if ( currentSelection >= 0 ) { 437 if ( currentSelection >= 0 ) {
438 if ( currentSelection < 3 ) { 438 if ( currentSelection < 3 ) {
439 KMessageBox::error(this,i18n("This profil cannot be deleted!\n"),i18n("KO/Pi config error")); 439 KMessageBox::error(this,i18n("This profil cannot be deleted!\n"),i18n("KO/Pi config error"));
440 return; 440 return;
441 } 441 }
442 KSyncProfile* temp = mSyncProfiles.at(currentSelection); 442 KSyncProfile* temp = mSyncProfiles.at(currentSelection);
443 mSyncProfiles.remove( temp ); 443 mSyncProfiles.remove( temp );
444 mSyncProfileNames.remove( mSyncProfileNames.at( currentSelection )); 444 mSyncProfileNames.remove( mSyncProfileNames.at( currentSelection ));
445 insertProfiles(); 445 insertProfiles();
446 } 446 }
447} 447}
448 448
449void KSyncPrefsDialog::saveProfile() 449void KSyncPrefsDialog::saveProfile()
450{ 450{
451 KSyncProfile* prof; 451 KSyncProfile* prof;
452 if ( currentSelection >= 0 ) { 452 if ( currentSelection >= 0 ) {
453 prof = mSyncProfiles.at(currentSelection) ; 453 prof = mSyncProfiles.at(currentSelection) ;
454 prof->setPreSyncCommand( mRemotePrecommand->text()); 454 prof->setPreSyncCommand( mRemotePrecommand->text());
455 prof->setPostSyncCommand( mRemotePostcommand->text() ); 455 prof->setPostSyncCommand( mRemotePostcommand->text() );
456 prof->setLocalTempFile( mLocalTempFile->text()); 456 prof->setLocalTempFile( mLocalTempFile->text());
457 prof->setRemoteFileName( mRemoteFile->text() ); 457 prof->setRemoteFileName( mRemoteFile->text() );
458 prof->setPreSyncCommandAB( mRemotePrecommandAB->text()); 458 prof->setPreSyncCommandAB( mRemotePrecommandAB->text());
459 prof->setPostSyncCommandAB( mRemotePostcommandAB->text() ); 459 prof->setPostSyncCommandAB( mRemotePostcommandAB->text() );
460 prof->setLocalTempFileAB( mLocalTempFileAB->text()); 460 prof->setLocalTempFileAB( mLocalTempFileAB->text());
461 prof->setRemoteFileNameAB( mRemoteFileAB->text() ); 461 prof->setRemoteFileNameAB( mRemoteFileAB->text() );
462 prof->setShowSummaryAfterSync( mShowSummaryAfterSync->isChecked() ); 462 prof->setShowSummaryAfterSync( mShowSummaryAfterSync->isChecked() );
463 prof->setAskForPreferences( mAskForPreferences->isChecked()); 463 prof->setAskForPreferences( mAskForPreferences->isChecked());
464 prof->setWriteBackExisting(mWriteBackExisting->isChecked() ); 464 prof->setWriteBackExisting(mWriteBackExisting->isChecked() );
465 prof->setWriteBackFile( mWriteBackFile->isChecked()); 465 prof->setWriteBackFile( mWriteBackFile->isChecked());
466 prof->setIncludeInRingSync( mIncludeInRing->isChecked() ); 466 prof->setIncludeInRingSync( mIncludeInRing->isChecked() );
467 prof->setIncludeInRingSyncAB( mIncludeInRingAB->isChecked() ); 467 prof->setIncludeInRingSyncAB( mIncludeInRingAB->isChecked() );
468 int syncprefs = rem->isChecked()*1+newest->isChecked()*2+ ask->isChecked()*3+ f_loc->isChecked()*4+ f_rem->isChecked()*5 ;//+ both->isChecked()*6 ; 468 int syncprefs = rem->isChecked()*1+newest->isChecked()*2+ ask->isChecked()*3+ f_loc->isChecked()*4+ f_rem->isChecked()*5 ;//+ both->isChecked()*6 ;
469 prof->setSyncPrefs( syncprefs); 469 prof->setSyncPrefs( syncprefs);
470 prof->setIsLocalFileSync( mIsLocal->isChecked() ); 470 prof->setIsLocalFileSync( mIsLocal->isChecked() );
471 prof->setIsPhoneSync( mIsPhone->isChecked() ); 471 prof->setIsPhoneSync( mIsPhone->isChecked() );
472 prof->setWriteBackFuture(mWriteBackFuture->isChecked()); 472 prof->setWriteBackFuture(mWriteBackFuture->isChecked());
473 prof->setWriteBackFutureWeeks(mWriteBackFutureWeeks->value()); 473 prof->setWriteBackFutureWeeks(mWriteBackFutureWeeks->value());
474 prof->setPhoneDevice( mPhoneDevice->text() ); 474 prof->setPhoneDevice( mPhoneDevice->text() );
475 prof->setPhoneConnection( mPhoneConnection->text() ); 475 prof->setPhoneConnection( mPhoneConnection->text() );
476 prof->setPhoneModel( mPhoneModel->text() ); 476 prof->setPhoneModel( mPhoneModel->text() );
477 477
478 } 478 }
479 479
480} 480}
481 481
482void KSyncPrefsDialog::insertProfiles() 482void KSyncPrefsDialog::insertProfiles()
483{ 483{
484 int curItem = mProfileBox->currentItem(); 484 int curItem = mProfileBox->currentItem();
485 mProfileBox->blockSignals( true ); 485 mProfileBox->blockSignals( true );
486 mProfileBox->clear(); 486 mProfileBox->clear();
487 mProfileBox->insertStringList (mSyncProfileNames ); 487 mProfileBox->insertStringList (mSyncProfileNames );
488 int item = mSyncProfileNames.count() -1; 488 int item = mSyncProfileNames.count() -1;
489 if ( curItem >= 0 && mSyncProfileNames.count() > 0 && curItem < mSyncProfileNames.count() ) 489 if ( curItem >= 0 && mSyncProfileNames.count() > 0 && curItem < mSyncProfileNames.count() )
490 mProfileBox->setCurrentItem( curItem ); 490 mProfileBox->setCurrentItem( curItem );
491 else if ( item >= 0 ) { 491 else if ( item >= 0 ) {
492 mProfileBox->setCurrentItem( item ); 492 mProfileBox->setCurrentItem( item );
493 } 493 }
494 currentSelection = -1; 494 currentSelection = -1;
495 if ( mSyncProfileNames.count() > 0 ) { 495 if ( mSyncProfileNames.count() > 0 ) {
496 //qDebug(" profileChanged( mProfileBox->currentItem() "); 496 //qDebug(" profileChanged( mProfileBox->currentItem() ");
497 profileChanged( mProfileBox->currentItem() ); 497 profileChanged( mProfileBox->currentItem() );
498 currentSelection = mProfileBox->currentItem(); 498 currentSelection = mProfileBox->currentItem();
499 } 499 }
500 mProfileBox->blockSignals( false ); 500 mProfileBox->blockSignals( false );
501} 501}
502 502
503void KSyncPrefsDialog::addProfile ( KSyncProfile* temp ) 503void KSyncPrefsDialog::addProfile ( KSyncProfile* temp )
504{ 504{
505 saveProfile(); 505 saveProfile();
506 mSyncProfiles.append( temp ); 506 mSyncProfiles.append( temp );
507 mSyncProfileNames << temp->getName(); 507 mSyncProfileNames << temp->getName();
508 insertProfiles(); 508 insertProfiles();
509 int last = mProfileBox->count() -1; 509 int last = mProfileBox->count() -1;
510 mProfileBox->blockSignals( true ); 510 mProfileBox->blockSignals( true );
511 mProfileBox->setCurrentItem( last ); 511 mProfileBox->setCurrentItem( last );
512 mProfileBox->blockSignals( false ); 512 mProfileBox->blockSignals( false );
513 profileChanged(last); 513 profileChanged(last);
514} 514}
515void KSyncPrefsDialog::newProfile() 515void KSyncPrefsDialog::newProfile()
516{ 516{
517 addProfile ( new KSyncProfile () ); 517 addProfile ( new KSyncProfile () );
518} 518}
519 519
520void KSyncPrefsDialog::cloneProfile() 520void KSyncPrefsDialog::cloneProfile()
521{ 521{
522 if ( currentSelection >= 0 ) 522 if ( currentSelection >= 0 )
523 addProfile (mSyncProfiles.at(currentSelection)->clone()) ; 523 addProfile (mSyncProfiles.at(currentSelection)->clone()) ;
524 else 524 else
525 newProfile(); 525 newProfile();
526} 526}
527 527
528void KSyncPrefsDialog::setLocalMachineName ( const QString& name ) 528void KSyncPrefsDialog::setLocalMachineName ( const QString& name )
529{ 529{
530 mMyMachineName->setText( name ); 530 mMyMachineName->setText( name );
531 531
532} 532}
533QString KSyncPrefsDialog::getLocalMachineName ( ) 533QString KSyncPrefsDialog::getLocalMachineName ( )
534{ 534{
535 return mMyMachineName->text(); 535 return mMyMachineName->text();
536} 536}
537 537
538QStringList KSyncPrefsDialog::getSyncProfileNames() 538QStringList KSyncPrefsDialog::getSyncProfileNames()
539{ 539{
540 return mSyncProfileNames; 540 return mSyncProfileNames;
541} 541}
542void KSyncPrefsDialog::usrReadConfig() 542void KSyncPrefsDialog::usrReadConfig()
543{ 543{
544 //KConfig *config = KOGlobals::config(); 544 //KConfig *config = KOGlobals::config();
545 KConfig config ( locateLocal( "config","syncprofilesrc" ) ); 545 KConfig config ( locateLocal( "config","syncprofilesrc" ) );
546 config.setGroup("General"); 546 config.setGroup("General");
547 mSyncProfileNames =config.readListEntry("SyncProfileNames"); 547 mSyncProfileNames =config.readListEntry("SyncProfileNames");
548 mMyMachineName->setText(config.readEntry("LocalMachineName","undefined")); 548 mMyMachineName->setText(config.readEntry("LocalMachineName","undefined"));
549 int i; 549 int i;
550 KSyncProfile* temp ; 550 KSyncProfile* temp ;
551 mSyncProfiles.clear(); 551 mSyncProfiles.clear();
552 for ( i = 0; i < mSyncProfileNames.count();++i ) { 552 for ( i = 0; i < mSyncProfileNames.count();++i ) {
553 temp = new KSyncProfile (); 553 temp = new KSyncProfile ();
554 temp->setName( mSyncProfileNames[i] ); 554 temp->setName( mSyncProfileNames[i] );
555 temp->readConfig( &config ); 555 temp->readConfig( &config );
556 mSyncProfiles.append( temp ); 556 mSyncProfiles.append( temp );
557 } 557 }
558 insertProfiles(); 558 insertProfiles();
559 //mMyMachineName->setText(KOPrefs::instance()->mLocalMachineName ); 559 //mMyMachineName->setText(KOPrefs::instance()->mLocalMachineName );
560} 560}
561 561
562 562
563void KSyncPrefsDialog::usrWriteConfig() 563void KSyncPrefsDialog::usrWriteConfig()
564{ 564{
565 saveProfile(); 565 saveProfile();
566 if ( currentSelection >= 0 ) 566 if ( currentSelection >= 0 )
567 profileChanged(currentSelection); 567 profileChanged(currentSelection);
568 //KConfig *config = KOGlobals::config(); 568 //KConfig *config = KOGlobals::config();
569 KConfig config ( locateLocal( "config","syncprofilesrc" ) ); 569 KConfig config ( locateLocal( "config","syncprofilesrc" ) );
570 KSyncProfile* prof = mSyncProfiles.first(); 570 KSyncProfile* prof = mSyncProfiles.first();
571 QStringList externalSyncProfileNames;
572 externalSyncProfileNames.append("Sharp_DTM");;
571 while ( prof ) { 573 while ( prof ) {
572 prof->writeConfig(&config); 574 prof->writeConfig(&config);
575 if ( prof->getIsPhoneSync( ) )
576 externalSyncProfileNames.append(prof->getName( ) );
573 prof = mSyncProfiles.next(); 577 prof = mSyncProfiles.next();
574 } 578 }
575 //KOPrefs::instance()->mSyncProfileNames = mSyncProfileNames; 579 //KOPrefs::instance()->mSyncProfileNames = mSyncProfileNames;
576 //KOPrefs::instance()->mLocalMachineName = mMyMachineName->text(); 580 //KOPrefs::instance()->mLocalMachineName = mMyMachineName->text();
577 config.setGroup("General"); 581 config.setGroup("General");
578 config.writeEntry("SyncProfileNames",mSyncProfileNames); 582 config.writeEntry("SyncProfileNames",mSyncProfileNames);
583 config.writeEntry("ExternSyncProfiles",externalSyncProfileNames);
579 config.writeEntry("LocalMachineName",mMyMachineName->text()); 584 config.writeEntry("LocalMachineName",mMyMachineName->text());
585 config.sync();
580} 586}
581 587
582void KSyncPrefsDialog::helpDevice() 588void KSyncPrefsDialog::helpDevice()
583{ 589{
584 QString hint = i18n("Insert device where\nphone is connected. E.g.:\n"); 590 QString hint = i18n("Insert device where\nphone is connected. E.g.:\n");
585#ifdef _WIN32_ 591#ifdef _WIN32_
586 hint += "Leave empty for Irda.\n" 592 hint += "Leave empty for Irda.\n"
587 "com1:\n(first serial port)\n" 593 "com1:\n(first serial port)\n"
588 "usb not supported\n" 594 "usb not supported\n"
589 "???\n(bluetooth device address)\n"; 595 "???\n(bluetooth device address)\n";
590 596
591#else 597#else
592 hint += "/dev/ircomm\n(Irda)\n" 598 hint += "/dev/ircomm\n(Irda)\n"
593 "/dev/ttyS0\n(first serial port)\n" 599 "/dev/ttyS0\n(first serial port)\n"
594 "/dev/ttyUSB0\n(first device usb port)\n" 600 "/dev/ttyUSB0\n(first device usb port)\n"
595 "???\n(bluetooth device address)\n"; 601 "???\n(bluetooth device address)\n";
596#endif 602#endif
597 KMessageBox::information(this,hint,i18n("KDE-Pim sync config")); 603 KMessageBox::information(this,hint,i18n("KDE-Pim sync config"));
598} 604}
599void KSyncPrefsDialog::helpModel() 605void KSyncPrefsDialog::helpModel()
600{ 606{
601 QString hint = i18n("Leave empty or\ninsert name of phone model:\n"); 607 QString hint = i18n("Leave empty or\ninsert name of phone model:\n");
602 hint += "E.g. for Nokia 6310i:\n6310i\nAlso possible:\nobex\nfor Obex connection"; 608 hint += "E.g. for Nokia 6310i:\n6310i\nAlso possible:\nobex\nfor Obex connection";
603 KMessageBox::information(this,hint,i18n("KDE-Pim sync config")); 609 KMessageBox::information(this,hint,i18n("KDE-Pim sync config"));
604 610
605} 611}
606void KSyncPrefsDialog::helpConnection() 612void KSyncPrefsDialog::helpConnection()
607{ 613{
608 QString hint = i18n("Insert kind of connection,e.g.:\n"); 614 QString hint = i18n("Insert kind of connection,e.g.:\n");
609 hint += "irda | Nokia FBUS over infrared\n" 615 hint += "irda | Nokia FBUS over infrared\n"
610 "irdaat | AT commands infrared\n(for Siemens/Sony-Erricsson)\n" 616 "irdaat | AT commands infrared\n(for Siemens/Sony-Erricsson)\n"
611 "irdaobex | set also model as obex\n" 617 "irdaobex | set also model as obex\n"
612 "fbus | Nokia FBUS2 serial\n"; 618 "fbus | Nokia FBUS2 serial\n";
613 KMessageBox::information(this,hint,i18n("KDE-Pim sync config")); 619 KMessageBox::information(this,hint,i18n("KDE-Pim sync config"));
614} 620}