author | zautrix <zautrix> | 2004-09-12 17:18:27 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-09-12 17:18:27 (UTC) |
commit | bc4153a99e205f43d0144e2e910730dd1a14d402 (patch) (unidiff) | |
tree | 16aeb28cd765539bac6e85e714478f31a7b93bac | |
parent | a222c2f7369eeefd19454c973c0cc48300f72bec (diff) | |
download | kdepimpi-bc4153a99e205f43d0144e2e910730dd1a14d402.zip kdepimpi-bc4153a99e205f43d0144e2e910730dd1a14d402.tar.gz kdepimpi-bc4153a99e205f43d0144e2e910730dd1a14d402.tar.bz2 |
added missing sync featute
-rw-r--r-- | korganizer/calendarview.cpp | 53 | ||||
-rw-r--r-- | korganizer/koprefs.h | 1 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 6 | ||||
-rw-r--r-- | libkcal/phoneformat.cpp | 15 |
4 files changed, 55 insertions, 20 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index db07713..cfd9290 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -720,37 +720,39 @@ int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , b | |||
720 | // void setZaurusUid(int id); | 720 | // void setZaurusUid(int id); |
721 | // int zaurusUid() const; | 721 | // int zaurusUid() const; |
722 | // void setZaurusStat(int id); | 722 | // void setZaurusStat(int id); |
723 | // int zaurusStat() const; | 723 | // int zaurusStat() const; |
724 | // 0 equal | 724 | // 0 equal |
725 | // 1 take local | 725 | // 1 take local |
726 | // 2 take remote | 726 | // 2 take remote |
727 | // 3 cancel | 727 | // 3 cancel |
728 | QDateTime lastSync = mLastCalendarSync; | 728 | QDateTime lastSync = mLastCalendarSync; |
729 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 729 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
730 | bool remCh, locCh; | 730 | bool remCh, locCh; |
731 | remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) ); | 731 | remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) ); |
732 | if ( remCh ) | ||
733 | qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() ); | ||
732 | locCh = ( local->lastModified() > mLastCalendarSync ); | 734 | locCh = ( local->lastModified() > mLastCalendarSync ); |
733 | //qDebug("locCh %d remCh %d locuid %d remuid %d", locCh, remCh,local->zaurusUid(), remote->zaurusUid() ); | 735 | //qDebug("locCh %d remCh %d locuid %d remuid %d", locCh, remCh,local->zaurusUid(), remote->zaurusUid() ); |
734 | if ( !remCh && ! locCh ) { | 736 | if ( !remCh && ! locCh ) { |
735 | //qDebug("both not changed "); | 737 | qDebug("both not changed "); |
736 | lastSync = local->lastModified().addDays(1); | 738 | lastSync = local->lastModified().addDays(1); |
737 | } else { | 739 | } else { |
738 | if ( locCh ) { | 740 | if ( locCh ) { |
739 | //qDebug("loc changed %d %d", local->zaurusStat(), local->revision() ); | 741 | qDebug("loc changed %d", local->revision() ); |
740 | lastSync = local->lastModified().addDays( -1 ); | 742 | lastSync = local->lastModified().addDays( -1 ); |
741 | if ( !remCh ) | 743 | if ( !remCh ) |
742 | remote->setLastModified( lastSync.addDays( -1 ) ); | 744 | remote->setLastModified( lastSync.addDays( -1 ) ); |
743 | } else { | 745 | } else { |
744 | //qDebug(" not loc changed "); | 746 | qDebug(" not loc changed "); |
745 | lastSync = local->lastModified().addDays( 1 ); | 747 | lastSync = local->lastModified().addDays( 1 ); |
746 | if ( remCh ) | 748 | if ( remCh ) |
747 | remote->setLastModified( lastSync.addDays( 1 ) ); | 749 | remote->setLastModified( lastSync.addDays( 1 ) ); |
748 | 750 | ||
749 | } | 751 | } |
750 | } | 752 | } |
751 | full = true; | 753 | full = true; |
752 | if ( mode < SYNC_PREF_ASK ) | 754 | if ( mode < SYNC_PREF_ASK ) |
753 | mode = SYNC_PREF_ASK; | 755 | mode = SYNC_PREF_ASK; |
754 | } else { | 756 | } else { |
755 | if ( local->lastModified() == remote->lastModified() ) | 757 | if ( local->lastModified() == remote->lastModified() ) |
756 | if ( local->revision() == remote->revision() ) | 758 | if ( local->revision() == remote->revision() ) |
@@ -775,24 +777,26 @@ int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , b | |||
775 | //qDebug("equal "); | 777 | //qDebug("equal "); |
776 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 778 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
777 | local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) ); | 779 | local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) ); |
778 | } | 780 | } |
779 | if ( mode < SYNC_PREF_FORCE_LOCAL ) | 781 | if ( mode < SYNC_PREF_FORCE_LOCAL ) |
780 | return 0; | 782 | return 0; |
781 | 783 | ||
782 | }//else //debug only | 784 | }//else //debug only |
783 | //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1()); | 785 | //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1()); |
784 | } | 786 | } |
785 | int result; | 787 | int result; |
786 | bool localIsNew; | 788 | bool localIsNew; |
789 | qDebug("mLastCalendarSync %s lastsync %s --- local %s remote %s ",mLastCalendarSync.toString().latin1() ,lastSync.toString().latin1() , local->lastModified().toString().latin1() , remote->lastModified().toString().latin1() ); | ||
790 | |||
787 | if ( full && mode < SYNC_PREF_NEWEST ) | 791 | if ( full && mode < SYNC_PREF_NEWEST ) |
788 | mode = SYNC_PREF_ASK; | 792 | mode = SYNC_PREF_ASK; |
789 | 793 | ||
790 | switch( mode ) { | 794 | switch( mode ) { |
791 | case SYNC_PREF_LOCAL: | 795 | case SYNC_PREF_LOCAL: |
792 | if ( lastSync > remote->lastModified() ) | 796 | if ( lastSync > remote->lastModified() ) |
793 | return 1; | 797 | return 1; |
794 | if ( lastSync > local->lastModified() ) | 798 | if ( lastSync > local->lastModified() ) |
795 | return 2; | 799 | return 2; |
796 | return 1; | 800 | return 1; |
797 | break; | 801 | break; |
798 | case SYNC_PREF_REMOTE: | 802 | case SYNC_PREF_REMOTE: |
@@ -806,25 +810,25 @@ int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , b | |||
806 | if ( local->lastModified() > remote->lastModified() ) | 810 | if ( local->lastModified() > remote->lastModified() ) |
807 | return 1; | 811 | return 1; |
808 | else | 812 | else |
809 | return 2; | 813 | return 2; |
810 | break; | 814 | break; |
811 | case SYNC_PREF_ASK: | 815 | case SYNC_PREF_ASK: |
812 | //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() ); |
813 | if ( lastSync > remote->lastModified() ) | 817 | if ( lastSync > remote->lastModified() ) |
814 | return 1; | 818 | return 1; |
815 | if ( lastSync > local->lastModified() ) | 819 | if ( lastSync > local->lastModified() ) |
816 | return 2; | 820 | return 2; |
817 | //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), local->lastModified().toString().latin1(), remote->lastModified().toString().latin1() ); | 821 | //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), local->lastModified().toString().latin1(), remote->lastModified().toString().latin1() ); |
818 | localIsNew = local->lastModified() > remote->lastModified(); | 822 | localIsNew = local->lastModified() >= remote->lastModified(); |
819 | if ( localIsNew ) | 823 | if ( localIsNew ) |
820 | getEventViewerDialog()->setColorMode( 1 ); | 824 | getEventViewerDialog()->setColorMode( 1 ); |
821 | else | 825 | else |
822 | getEventViewerDialog()->setColorMode( 2 ); | 826 | getEventViewerDialog()->setColorMode( 2 ); |
823 | getEventViewerDialog()->setIncidence(local); | 827 | getEventViewerDialog()->setIncidence(local); |
824 | if ( localIsNew ) | 828 | if ( localIsNew ) |
825 | getEventViewerDialog()->setColorMode( 2 ); | 829 | getEventViewerDialog()->setColorMode( 2 ); |
826 | else | 830 | else |
827 | getEventViewerDialog()->setColorMode( 1 ); | 831 | getEventViewerDialog()->setColorMode( 1 ); |
828 | getEventViewerDialog()->addIncidence(remote); | 832 | getEventViewerDialog()->addIncidence(remote); |
829 | getEventViewerDialog()->setColorMode( 0 ); | 833 | getEventViewerDialog()->setColorMode( 0 ); |
830 | //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() ); | 834 | //qDebug("local %d remote %d ",local->relatedTo(),remote->relatedTo() ); |
@@ -933,39 +937,43 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int | |||
933 | Event* eventR; | 937 | Event* eventR; |
934 | QString uid; | 938 | QString uid; |
935 | int take; | 939 | int take; |
936 | Event* eventL; | 940 | Event* eventL; |
937 | Event* eventRSync; | 941 | Event* eventRSync; |
938 | Event* eventLSync; | 942 | Event* eventLSync; |
939 | QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents(); | 943 | QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents(); |
940 | QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents(); | 944 | QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents(); |
941 | bool fullDateRange = false; | 945 | bool fullDateRange = false; |
942 | local->resetTempSyncStat(); | 946 | local->resetTempSyncStat(); |
943 | mLastCalendarSync = QDateTime::currentDateTime(); | 947 | mLastCalendarSync = QDateTime::currentDateTime(); |
944 | QDateTime modifiedCalendar = mLastCalendarSync;; | 948 | QDateTime modifiedCalendar = mLastCalendarSync;; |
949 | eventLSync = getLastSyncEvent(); | ||
945 | eventR = remote->event("last-syncEvent-"+mCurrentSyncName ); | 950 | eventR = remote->event("last-syncEvent-"+mCurrentSyncName ); |
946 | if ( eventR ) { | 951 | if ( eventR ) { |
947 | eventRSync = (Event*) eventR->clone(); | 952 | eventRSync = (Event*) eventR->clone(); |
948 | remote->deleteEvent(eventR ); | 953 | remote->deleteEvent(eventR ); |
949 | 954 | ||
950 | } else { | 955 | } else { |
951 | fullDateRange = true; | 956 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
952 | eventRSync = new Event(); | 957 | eventRSync = (Event*)eventLSync->clone(); |
953 | eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event")); | 958 | } else { |
954 | eventRSync->setUid("last-syncEvent-"+mCurrentSyncName ); | 959 | fullDateRange = true; |
955 | eventRSync->setDtStart( mLastCalendarSync ); | 960 | eventRSync = new Event(); |
956 | eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); | 961 | eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event")); |
957 | eventRSync->setCategories( i18n("SyncEvent") ); | 962 | eventRSync->setUid("last-syncEvent-"+mCurrentSyncName ); |
963 | eventRSync->setDtStart( mLastCalendarSync ); | ||
964 | eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); | ||
965 | eventRSync->setCategories( i18n("SyncEvent") ); | ||
966 | } | ||
958 | } | 967 | } |
959 | eventLSync = getLastSyncEvent(); | ||
960 | if ( eventLSync->dtStart() == mLastCalendarSync ) | 968 | if ( eventLSync->dtStart() == mLastCalendarSync ) |
961 | fullDateRange = true; | 969 | fullDateRange = true; |
962 | 970 | ||
963 | if ( ! fullDateRange ) { | 971 | if ( ! fullDateRange ) { |
964 | if ( eventLSync->dtStart() != eventRSync->dtStart() ) { | 972 | if ( eventLSync->dtStart() != eventRSync->dtStart() ) { |
965 | 973 | ||
966 | // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() ); | 974 | // qDebug("set fulldate to true %s %s" ,eventLSync->dtStart().toString().latin1(), eventRSync->dtStart().toString().latin1() ); |
967 | //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec()); | 975 | //qDebug("%d %d %d %d ", eventLSync->dtStart().time().second(), eventLSync->dtStart().time().msec() , eventRSync->dtStart().time().second(), eventRSync->dtStart().time().msec()); |
968 | fullDateRange = true; | 976 | fullDateRange = true; |
969 | } | 977 | } |
970 | } | 978 | } |
971 | if ( fullDateRange ) | 979 | if ( fullDateRange ) |
@@ -1107,25 +1115,44 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int | |||
1107 | } else { | 1115 | } else { |
1108 | if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { | 1116 | if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { |
1109 | ++addedEventR; | 1117 | ++addedEventR; |
1110 | inL->setLastModified( modifiedCalendar ); | 1118 | inL->setLastModified( modifiedCalendar ); |
1111 | remote->addIncidence( inL->clone() ); | 1119 | remote->addIncidence( inL->clone() ); |
1112 | } | 1120 | } |
1113 | } | 1121 | } |
1114 | } | 1122 | } |
1115 | } | 1123 | } |
1116 | } | 1124 | } |
1117 | inL = el.next(); | 1125 | inL = el.next(); |
1118 | } | 1126 | } |
1119 | 1127 | if ( KOPrefs::instance()->mWriteBackInFuture ) { | |
1128 | er = remote->rawIncidences(); | ||
1129 | inR = er.first(); | ||
1130 | QDateTime dt; | ||
1131 | QDateTime cur = QDateTime::currentDateTime(); | ||
1132 | QDateTime end = cur.addSecs( KOPrefs::instance()->mWriteBackInFuture * 3600 *24 *7 ); | ||
1133 | while ( inR ) { | ||
1134 | if ( inR->type() == "Todo" ) { | ||
1135 | Todo * t = (Todo*)inR; | ||
1136 | if ( t->hasDueDate() ) | ||
1137 | dt = t->dtDue(); | ||
1138 | else | ||
1139 | dt = cur.addSecs( 62 ); | ||
1140 | } | ||
1141 | else dt = inR->dtStart(); | ||
1142 | if ( dt < cur || dt > end ) | ||
1143 | remote->deleteIncidence( inR ); | ||
1144 | inR = er.next(); | ||
1145 | } | ||
1146 | } | ||
1120 | bar.hide(); | 1147 | bar.hide(); |
1121 | mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 ); | 1148 | mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 ); |
1122 | eventLSync->setReadOnly( false ); | 1149 | eventLSync->setReadOnly( false ); |
1123 | eventLSync->setDtStart( mLastCalendarSync ); | 1150 | eventLSync->setDtStart( mLastCalendarSync ); |
1124 | eventRSync->setDtStart( mLastCalendarSync ); | 1151 | eventRSync->setDtStart( mLastCalendarSync ); |
1125 | eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); | 1152 | eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); |
1126 | eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); | 1153 | eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); |
1127 | eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; | 1154 | eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; |
1128 | eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); | 1155 | eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); |
1129 | eventLSync->setReadOnly( true ); | 1156 | eventLSync->setReadOnly( true ); |
1130 | if ( mGlobalSyncMode == SYNC_MODE_NORMAL) | 1157 | if ( mGlobalSyncMode == SYNC_MODE_NORMAL) |
1131 | remote->addEvent( eventRSync ); | 1158 | remote->addEvent( eventRSync ); |
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h index 446fe2e..a9ac52f 100644 --- a/korganizer/koprefs.h +++ b/korganizer/koprefs.h | |||
@@ -190,24 +190,25 @@ class KOPrefs : public KPimPrefs | |||
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 | int mWriteBackInFuture; | ||
202 | bool mAskForPreferences; | 203 | bool mAskForPreferences; |
203 | bool mShowSyncSummary; | 204 | bool mShowSyncSummary; |
204 | bool mShowSyncEvents; | 205 | bool mShowSyncEvents; |
205 | bool mShowTodoInAgenda; | 206 | bool mShowTodoInAgenda; |
206 | bool mWriteBackExistingOnly; | 207 | bool mWriteBackExistingOnly; |
207 | 208 | ||
208 | QString mRemoteIP; | 209 | QString mRemoteIP; |
209 | QString mRemoteUser; | 210 | QString mRemoteUser; |
210 | QString mRemotePassWd; | 211 | QString mRemotePassWd; |
211 | QString mRemoteFile; | 212 | QString mRemoteFile; |
212 | QString mLocalTempFile; | 213 | QString mLocalTempFile; |
213 | QString mPhoneDevice; | 214 | QString mPhoneDevice; |
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index d8aa43a..aa30b52 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -905,24 +905,27 @@ int MainWindow::ringSync() | |||
905 | KSyncProfile* temp = new KSyncProfile (); | 905 | KSyncProfile* temp = new KSyncProfile (); |
906 | KOPrefs::instance()->mAskForPreferences = false; | 906 | KOPrefs::instance()->mAskForPreferences = false; |
907 | for ( i = 0; i < syncProfileNames.count(); ++i ) { | 907 | for ( i = 0; i < syncProfileNames.count(); ++i ) { |
908 | mCurrentSyncProfile = i; | 908 | mCurrentSyncProfile = i; |
909 | temp->setName(syncProfileNames[mCurrentSyncProfile]); | 909 | temp->setName(syncProfileNames[mCurrentSyncProfile]); |
910 | temp->readConfig(&config); | 910 | temp->readConfig(&config); |
911 | if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) { | 911 | if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) { |
912 | setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); | 912 | setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); |
913 | ++syncedProfiles; | 913 | ++syncedProfiles; |
914 | // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); | 914 | // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); |
915 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); | 915 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); |
916 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); | 916 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); |
917 | KOPrefs::instance()->mWriteBackInFuture = 0; | ||
918 | if ( temp->getWriteBackFuture() ) | ||
919 | KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); | ||
917 | KOPrefs::instance()->mShowSyncSummary = false; | 920 | KOPrefs::instance()->mShowSyncSummary = false; |
918 | mView->setSyncDevice(syncProfileNames[i] ); | 921 | mView->setSyncDevice(syncProfileNames[i] ); |
919 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); | 922 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); |
920 | if ( i == 0 ) { | 923 | if ( i == 0 ) { |
921 | syncSharp(); | 924 | syncSharp(); |
922 | } else { | 925 | } else { |
923 | if ( temp->getIsLocalFileSync() ) { | 926 | if ( temp->getIsLocalFileSync() ) { |
924 | if ( syncWithFile( temp->getRemoteFileName( ), true ) ) | 927 | if ( syncWithFile( temp->getRemoteFileName( ), true ) ) |
925 | KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); | 928 | KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); |
926 | } else { | 929 | } else { |
927 | if ( temp->getIsPhoneSync() ) { | 930 | if ( temp->getIsPhoneSync() ) { |
928 | KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; | 931 | KOPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; |
@@ -1008,24 +1011,27 @@ void MainWindow::slotSyncMenu( int action ) | |||
1008 | mBlockSaveFlag = true; | 1011 | mBlockSaveFlag = true; |
1009 | mCurrentSyncProfile = action - 1000 ; | 1012 | mCurrentSyncProfile = action - 1000 ; |
1010 | mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); | 1013 | mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); |
1011 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); | 1014 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); |
1012 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); | 1015 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); |
1013 | KSyncProfile* temp = new KSyncProfile (); | 1016 | KSyncProfile* temp = new KSyncProfile (); |
1014 | temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); | 1017 | temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); |
1015 | temp->readConfig(&config); | 1018 | temp->readConfig(&config); |
1016 | KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); | 1019 | KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); |
1017 | KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); | 1020 | KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); |
1018 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); | 1021 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); |
1019 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); | 1022 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); |
1023 | KOPrefs::instance()->mWriteBackInFuture = 0; | ||
1024 | if ( temp->getWriteBackFuture() ) | ||
1025 | KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); | ||
1020 | KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); | 1026 | KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); |
1021 | if ( action == 1000 ) { | 1027 | if ( action == 1000 ) { |
1022 | syncSharp(); | 1028 | syncSharp(); |
1023 | 1029 | ||
1024 | } else if ( action == 1001 ) { | 1030 | } else if ( action == 1001 ) { |
1025 | syncLocalFile(); | 1031 | syncLocalFile(); |
1026 | 1032 | ||
1027 | } else if ( action == 1002 ) { | 1033 | } else if ( action == 1002 ) { |
1028 | quickSyncLocalFile(); | 1034 | quickSyncLocalFile(); |
1029 | 1035 | ||
1030 | } else if ( action >= 1003 ) { | 1036 | } else if ( action >= 1003 ) { |
1031 | if ( temp->getIsLocalFileSync() ) { | 1037 | if ( temp->getIsLocalFileSync() ) { |
diff --git a/libkcal/phoneformat.cpp b/libkcal/phoneformat.cpp index ef69bce..6d0da5c 100644 --- a/libkcal/phoneformat.cpp +++ b/libkcal/phoneformat.cpp | |||
@@ -266,26 +266,24 @@ ulong PhoneFormat::getCsum( const QStringList & attList) | |||
266 | if ( ! s.isEmpty() ){ | 266 | if ( ! s.isEmpty() ){ |
267 | j = s.length(); | 267 | j = s.length(); |
268 | for ( k = 0; k < j; ++k ) { | 268 | for ( k = 0; k < j; ++k ) { |
269 | int mul = k +1; | 269 | int mul = k +1; |
270 | add = s[k].unicode (); | 270 | add = s[k].unicode (); |
271 | if ( k < 16 ) | 271 | if ( k < 16 ) |
272 | mul = mul * mul; | 272 | mul = mul * mul; |
273 | int ii = i+1; | 273 | int ii = i+1; |
274 | add = add * mul *ii*ii*ii; | 274 | add = add * mul *ii*ii*ii; |
275 | cSum += add; | 275 | cSum += add; |
276 | } | 276 | } |
277 | } | 277 | } |
278 | if ( i == 0 ) | ||
279 | qDebug("csum: i == 0 %d ", cSum); | ||
280 | 278 | ||
281 | } | 279 | } |
282 | QString dump = attList.join(","); | 280 | QString dump = attList.join(","); |
283 | qDebug("csum: %d %s", cSum,dump.latin1()); | 281 | qDebug("csum: %d %s", cSum,dump.latin1()); |
284 | 282 | ||
285 | return cSum; | 283 | return cSum; |
286 | 284 | ||
287 | } | 285 | } |
288 | //extern "C" GSM_Error GSM_InitConnection(GSM_StateMachine *s, int ReplyNum); | 286 | //extern "C" GSM_Error GSM_InitConnection(GSM_StateMachine *s, int ReplyNum); |
289 | #include <stdlib.h> | 287 | #include <stdlib.h> |
290 | #define DEBUGMODE false | 288 | #define DEBUGMODE false |
291 | bool PhoneFormat::load( Calendar *calendar, Calendar *existingCal) | 289 | bool PhoneFormat::load( Calendar *calendar, Calendar *existingCal) |
@@ -458,31 +456,30 @@ void PhoneFormat::copyTodo( Todo* to, Todo* from ) | |||
458 | else if (to->priority() == 4 && from->priority() == 5 ) | 456 | else if (to->priority() == 4 && from->priority() == 5 ) |
459 | ; | 457 | ; |
460 | else | 458 | else |
461 | to->setPriority(from->priority()); | 459 | to->setPriority(from->priority()); |
462 | 460 | ||
463 | } | 461 | } |
464 | #include <qcstring.h> | 462 | #include <qcstring.h> |
465 | 463 | ||
466 | void PhoneFormat::afterSave( Incidence* inc) | 464 | void PhoneFormat::afterSave( Incidence* inc) |
467 | { | 465 | { |
468 | uint csum; | 466 | uint csum; |
469 | inc->removeID( mProfileName ); | 467 | inc->removeID( mProfileName ); |
470 | #if 0 | ||
471 | if ( inc->type() == "Event") | 468 | if ( inc->type() == "Event") |
472 | csum = PhoneFormat::getCsumEvent( (Event*) inc ); | 469 | csum = PhoneFormat::getCsumEvent( (Event*) inc ); |
473 | else | 470 | else |
474 | csum = PhoneFormat::getCsumTodo( (Todo*) inc ); | 471 | csum = PhoneFormat::getCsumTodo( (Todo*) inc ); |
475 | inc->setCsum( mProfileName, QString::number( csum )); | 472 | inc->setCsum( mProfileName, QString::number( csum )); |
476 | #endif | 473 | |
477 | inc->setTempSyncStat( SYNC_TEMPSTATE_NEW_ID ); | 474 | inc->setTempSyncStat( SYNC_TEMPSTATE_NEW_ID ); |
478 | 475 | ||
479 | } | 476 | } |
480 | bool PhoneFormat::save( Calendar *calendar) | 477 | bool PhoneFormat::save( Calendar *calendar) |
481 | { | 478 | { |
482 | QLabel status ( i18n(" Opening device ..."), 0 ); | 479 | QLabel status ( i18n(" Opening device ..."), 0 ); |
483 | int w = status.sizeHint().width()+20 ; | 480 | int w = status.sizeHint().width()+20 ; |
484 | if ( w < 200 ) w = 230; | 481 | if ( w < 200 ) w = 230; |
485 | int h = status.sizeHint().height()+20 ; | 482 | int h = status.sizeHint().height()+20 ; |
486 | int dw = QApplication::desktop()->width(); | 483 | int dw = QApplication::desktop()->width(); |
487 | int dh = QApplication::desktop()->height(); | 484 | int dh = QApplication::desktop()->height(); |
488 | status.setCaption(i18n("Writing to phone...") ); | 485 | status.setCaption(i18n("Writing to phone...") ); |
@@ -505,25 +502,29 @@ bool PhoneFormat::save( Calendar *calendar) | |||
505 | calendar->deleteEvent( ev ); | 502 | calendar->deleteEvent( ev ); |
506 | } else { | 503 | } else { |
507 | 504 | ||
508 | } | 505 | } |
509 | ev = er.next(); | 506 | ev = er.next(); |
510 | } | 507 | } |
511 | // 2 remove todos which should be deleted | 508 | // 2 remove todos which should be deleted |
512 | QPtrList<Todo> tl = calendar->rawTodos(); | 509 | QPtrList<Todo> tl = calendar->rawTodos(); |
513 | Todo* to = tl.first(); | 510 | Todo* to = tl.first(); |
514 | while ( to ) { | 511 | while ( to ) { |
515 | if ( to->tempSyncStat() == SYNC_TEMPSTATE_DELETE ) { | 512 | if ( to->tempSyncStat() == SYNC_TEMPSTATE_DELETE ) { |
516 | calendar->deleteTodo( to ); | 513 | calendar->deleteTodo( to ); |
517 | } | 514 | } else { |
515 | if ( to->isCompleted()) { | ||
516 | calendar->deleteTodo( to ); | ||
517 | } | ||
518 | } | ||
518 | to = tl.next(); | 519 | to = tl.next(); |
519 | } | 520 | } |
520 | // 3 save file | 521 | // 3 save file |
521 | VCalFormat vfsave; | 522 | VCalFormat vfsave; |
522 | vfsave.setLocalTime ( true ); | 523 | vfsave.setLocalTime ( true ); |
523 | if ( ! vfsave.save( calendar, fileName ) ) | 524 | if ( ! vfsave.save( calendar, fileName ) ) |
524 | return false; | 525 | return false; |
525 | // 4 call kammu | 526 | // 4 call kammu |
526 | QString command ="./kammu --restore " + fileName ; | 527 | QString command ="./kammu --restore " + fileName ; |
527 | int ret; | 528 | int ret; |
528 | while ( (ret = system ( command.latin1())) != 0 ) { | 529 | while ( (ret = system ( command.latin1())) != 0 ) { |
529 | qDebug("Error S::command returned %d. asking users", ret); | 530 | qDebug("Error S::command returned %d. asking users", ret); |
@@ -554,25 +555,25 @@ bool PhoneFormat::save( Calendar *calendar) | |||
554 | ev = er.first(); | 555 | ev = er.first(); |
555 | message = i18n(" Comparing event # "); | 556 | message = i18n(" Comparing event # "); |
556 | QPtrList<Event> er1 = calendarTemp->rawEvents(); | 557 | QPtrList<Event> er1 = calendarTemp->rawEvents(); |
557 | Event* ev1; | 558 | Event* ev1; |
558 | int procCount = 0; | 559 | int procCount = 0; |
559 | while ( ev ) { | 560 | while ( ev ) { |
560 | //qDebug("event new ID %s",ev->summary().latin1()); | 561 | //qDebug("event new ID %s",ev->summary().latin1()); |
561 | status.setText ( message + QString::number ( ++procCount ) ); | 562 | status.setText ( message + QString::number ( ++procCount ) ); |
562 | qApp->processEvents(); | 563 | qApp->processEvents(); |
563 | uint csum; | 564 | uint csum; |
564 | csum = PhoneFormat::getCsumEvent( ev ); | 565 | csum = PhoneFormat::getCsumEvent( ev ); |
565 | QString cSum = QString::number( csum ); | 566 | QString cSum = QString::number( csum ); |
566 | ev->setCsum( mProfileName, cSum ); | 567 | //ev->setCsum( mProfileName, cSum ); |
567 | //qDebug("Event cSum %s ", cSum.latin1()); | 568 | //qDebug("Event cSum %s ", cSum.latin1()); |
568 | ev1 = er1.first(); | 569 | ev1 = er1.first(); |
569 | while ( ev1 ) { | 570 | while ( ev1 ) { |
570 | if ( ev1->getCsum( mProfileName ) == cSum ) { | 571 | if ( ev1->getCsum( mProfileName ) == cSum ) { |
571 | er1.remove( ev1 ); | 572 | er1.remove( ev1 ); |
572 | afterSave( ev ); | 573 | afterSave( ev ); |
573 | ev->setID(mProfileName, ev1->getID(mProfileName) ); | 574 | ev->setID(mProfileName, ev1->getID(mProfileName) ); |
574 | //qDebug("Event found on phone for %s ", ev->summary().latin1()); | 575 | //qDebug("Event found on phone for %s ", ev->summary().latin1()); |
575 | 576 | ||
576 | break; | 577 | break; |
577 | } | 578 | } |
578 | ev1 = er1.next(); | 579 | ev1 = er1.next(); |
@@ -590,25 +591,25 @@ bool PhoneFormat::save( Calendar *calendar) | |||
590 | to = tl.first(); | 591 | to = tl.first(); |
591 | procCount = 0; | 592 | procCount = 0; |
592 | QPtrList<Todo> tl1 = calendarTemp->rawTodos(); | 593 | QPtrList<Todo> tl1 = calendarTemp->rawTodos(); |
593 | Todo* to1 ; | 594 | Todo* to1 ; |
594 | message = i18n(" Comparing todo # "); | 595 | message = i18n(" Comparing todo # "); |
595 | while ( to ) { | 596 | while ( to ) { |
596 | qDebug("todo2 %d ", procCount); | 597 | qDebug("todo2 %d ", procCount); |
597 | status.setText ( message + QString::number ( ++procCount ) ); | 598 | status.setText ( message + QString::number ( ++procCount ) ); |
598 | qApp->processEvents(); | 599 | qApp->processEvents(); |
599 | uint csum; | 600 | uint csum; |
600 | csum = PhoneFormat::getCsumTodo( to ); | 601 | csum = PhoneFormat::getCsumTodo( to ); |
601 | QString cSum = QString::number( csum ); | 602 | QString cSum = QString::number( csum ); |
602 | to->setCsum( mProfileName, cSum ); | 603 | //to->setCsum( mProfileName, cSum ); |
603 | qDebug("Todo cSum %s ", cSum.latin1()); | 604 | qDebug("Todo cSum %s ", cSum.latin1()); |
604 | Todo* to1 = tl1.first(); | 605 | Todo* to1 = tl1.first(); |
605 | while ( to1 ) { | 606 | while ( to1 ) { |
606 | if ( to1->getCsum( mProfileName ) == cSum ) { | 607 | if ( to1->getCsum( mProfileName ) == cSum ) { |
607 | tl1.remove( to1 ); | 608 | tl1.remove( to1 ); |
608 | afterSave( to ); | 609 | afterSave( to ); |
609 | to->setID(mProfileName, to1->getID(mProfileName) ); | 610 | to->setID(mProfileName, to1->getID(mProfileName) ); |
610 | break; | 611 | break; |
611 | } | 612 | } |
612 | to1 = tl1.next(); | 613 | to1 = tl1.next(); |
613 | } | 614 | } |
614 | if ( ! to1 ) { | 615 | if ( ! to1 ) { |