summaryrefslogtreecommitdiffabout
path: root/kabc
authorzautrix <zautrix>2004-10-27 20:17:45 (UTC)
committer zautrix <zautrix>2004-10-27 20:17:45 (UTC)
commit3d6ae51e66bafaa4b51ed43d2e72a42802669212 (patch) (unidiff)
tree86528ba48c05dcb8f575785c63f591e840a86d95 /kabc
parentbb82cac85cc196b3f60921ab27e84204036b54b8 (diff)
downloadkdepimpi-3d6ae51e66bafaa4b51ed43d2e72a42802669212.zip
kdepimpi-3d6ae51e66bafaa4b51ed43d2e72a42802669212.tar.gz
kdepimpi-3d6ae51e66bafaa4b51ed43d2e72a42802669212.tar.bz2
sync fixes
Diffstat (limited to 'kabc') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addressbook.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp
index 5774c36..6194d6d 100644
--- a/kabc/addressbook.cpp
+++ b/kabc/addressbook.cpp
@@ -784,258 +784,258 @@ void AddressBook::insertAddressee( const Addressee &a, bool setRev, bool takeRes
784 if ( (*it).resource() == 0 ) 784 if ( (*it).resource() == 0 )
785 (*it).setResource( standardResource() ); 785 (*it).setResource( standardResource() );
786 } 786 }
787 if ( changed ) { 787 if ( changed ) {
788 if ( setRev ) { 788 if ( setRev ) {
789 789
790 // get rid of micro seconds 790 // get rid of micro seconds
791 QDateTime dt = QDateTime::currentDateTime(); 791 QDateTime dt = QDateTime::currentDateTime();
792 QTime t = dt.time(); 792 QTime t = dt.time();
793 dt.setTime( QTime (t.hour (), t.minute (), t.second () ) ); 793 dt.setTime( QTime (t.hour (), t.minute (), t.second () ) );
794 (*it).setRevision( dt ); 794 (*it).setRevision( dt );
795 } 795 }
796 (*it).setChanged( true ); 796 (*it).setChanged( true );
797 } 797 }
798 798
799 found = true; 799 found = true;
800 } else { 800 } else {
801 if ( (*it).uid().left( 19 ) == QString("last-syncAddressee-") ) { 801 if ( (*it).uid().left( 19 ) == QString("last-syncAddressee-") ) {
802 QString name = (*it).uid().mid( 19 ); 802 QString name = (*it).uid().mid( 19 );
803 Addressee b = a; 803 Addressee b = a;
804 QString id = b.getID( name ); 804 QString id = b.getID( name );
805 if ( ! id.isEmpty() ) { 805 if ( ! id.isEmpty() ) {
806 QString des = (*it).note(); 806 QString des = (*it).note();
807 int startN; 807 int startN;
808 if( (startN = des.find( id ) ) >= 0 ) { 808 if( (startN = des.find( id ) ) >= 0 ) {
809 int endN = des.find( ",", startN+1 ); 809 int endN = des.find( ",", startN+1 );
810 des = des.left( startN ) + des.mid( endN+1 ); 810 des = des.left( startN ) + des.mid( endN+1 );
811 (*it).setNote( des ); 811 (*it).setNote( des );
812 } 812 }
813 } 813 }
814 } 814 }
815 } 815 }
816 } 816 }
817 if ( found ) 817 if ( found )
818 return; 818 return;
819 d->mAddressees.append( a ); 819 d->mAddressees.append( a );
820 Addressee& addr = d->mAddressees.last(); 820 Addressee& addr = d->mAddressees.last();
821 if ( addr.resource() == 0 ) 821 if ( addr.resource() == 0 )
822 addr.setResource( standardResource() ); 822 addr.setResource( standardResource() );
823 823
824 addr.setChanged( true ); 824 addr.setChanged( true );
825} 825}
826 826
827void AddressBook::removeAddressee( const Addressee &a ) 827void AddressBook::removeAddressee( const Addressee &a )
828{ 828{
829 Iterator it; 829 Iterator it;
830 Iterator it2; 830 Iterator it2;
831 bool found = false; 831 bool found = false;
832 for ( it = begin(); it != end(); ++it ) { 832 for ( it = begin(); it != end(); ++it ) {
833 if ( a.uid() == (*it).uid() ) { 833 if ( a.uid() == (*it).uid() ) {
834 found = true; 834 found = true;
835 it2 = it; 835 it2 = it;
836 } else { 836 } else {
837 if ( (*it).uid().left( 19 ) == QString("last-syncAddressee-") ) { 837 if ( (*it).uid().left( 19 ) == QString("last-syncAddressee-") ) {
838 QString name = (*it).uid().mid( 19 ); 838 QString name = (*it).uid().mid( 19 );
839 Addressee b = a; 839 Addressee b = a;
840 QString id = b.getID( name ); 840 QString id = b.getID( name );
841 if ( ! id.isEmpty() ) { 841 if ( ! id.isEmpty() ) {
842 QString des = (*it).note(); 842 QString des = (*it).note();
843 if( des.find( id ) < 0 ) { 843 if( des.find( id ) < 0 ) {
844 des += id + ","; 844 des += id + ",";
845 (*it).setNote( des ); 845 (*it).setNote( des );
846 } 846 }
847 } 847 }
848 } 848 }
849 849
850 } 850 }
851 } 851 }
852 852
853 if ( found ) 853 if ( found )
854 removeAddressee( it2 ); 854 removeAddressee( it2 );
855 855
856} 856}
857 857
858void AddressBook::removeSyncAddressees( bool removeDeleted ) 858void AddressBook::removeSyncAddressees( bool removeDeleted )
859{ 859{
860 Iterator it = begin(); 860 Iterator it = begin();
861 Iterator it2 ; 861 Iterator it2 ;
862 QDateTime dt ( QDate( 2004,1,1) ); 862 QDateTime dt ( QDate( 2004,1,1) );
863 while ( it != end() ) { 863 while ( it != end() ) {
864 (*it).setRevision( dt ); 864 (*it).setRevision( dt );
865 if (( *it).IDStr() != "changed" ) { 865 if (( *it).IDStr() != "changed" ) {
866 // "changed" is used for tagging changed addressees when syncing with KDE or OL 866 // "changed" is used for tagging changed addressees when syncing with KDE or OL
867 (*it).removeCustom( "KADDRESSBOOK", "X-ExternalID" ); 867 (*it).removeCustom( "KADDRESSBOOK", "X-ExternalID" );
868 (*it).setIDStr(""); 868 (*it).setIDStr("");
869 } 869 }
870 if ( ( (*it).tempSyncStat() == SYNC_TEMPSTATE_DELETE && removeDeleted )|| (*it).uid().left( 19 ) == QString("last-syncAddressee-")) { 870 if ( ( (*it).tempSyncStat() == SYNC_TEMPSTATE_DELETE && removeDeleted )|| (*it).uid().left( 19 ) == QString("last-syncAddressee-")) {
871 it2 = it; 871 it2 = it;
872 //qDebug("removing %s ",(*it).uid().latin1() ); 872 //qDebug("removing %s ",(*it).uid().latin1() );
873 ++it; 873 ++it;
874 removeAddressee( it2 ); 874 removeAddressee( it2 );
875 } else { 875 } else {
876 //qDebug("skipping %s ",(*it).uid().latin1() ); 876 //qDebug("skipping %s ",(*it).uid().latin1() );
877 if ( removeDeleted ) { 877 if ( removeDeleted ) {
878 // we have no postprocessing in the resource, we have to do it here 878 // we have no postprocessing in the resource, we have to do it here
879 // we have to compute csum for all, because it could be the first sync 879 // we have to compute csum for all, because it could be the first sync
880 (*it).setTempSyncStat( SYNC_TEMPSTATE_NEW_CSUM ); 880 (*it).setTempSyncStat( SYNC_TEMPSTATE_NEW_ID );
881 881
882 882
883 } 883 }
884 ++it; 884 ++it;
885 } 885 }
886 } 886 }
887 deleteRemovedAddressees(); 887 deleteRemovedAddressees();
888} 888}
889 889
890void AddressBook::removeAddressee( const Iterator &it ) 890void AddressBook::removeAddressee( const Iterator &it )
891{ 891{
892 d->mRemovedAddressees.append( (*it) ); 892 d->mRemovedAddressees.append( (*it) );
893 d->mAddressees.remove( it.d->mIt ); 893 d->mAddressees.remove( it.d->mIt );
894} 894}
895 895
896AddressBook::Iterator AddressBook::find( const Addressee &a ) 896AddressBook::Iterator AddressBook::find( const Addressee &a )
897{ 897{
898 Iterator it; 898 Iterator it;
899 for ( it = begin(); it != end(); ++it ) { 899 for ( it = begin(); it != end(); ++it ) {
900 if ( a.uid() == (*it).uid() ) { 900 if ( a.uid() == (*it).uid() ) {
901 return it; 901 return it;
902 } 902 }
903 } 903 }
904 return end(); 904 return end();
905} 905}
906 906
907Addressee AddressBook::findByUid( const QString &uid ) 907Addressee AddressBook::findByUid( const QString &uid )
908{ 908{
909 Iterator it; 909 Iterator it;
910 for ( it = begin(); it != end(); ++it ) { 910 for ( it = begin(); it != end(); ++it ) {
911 if ( uid == (*it).uid() ) { 911 if ( uid == (*it).uid() ) {
912 return *it; 912 return *it;
913 } 913 }
914 } 914 }
915 return Addressee(); 915 return Addressee();
916} 916}
917void AddressBook::preExternSync( AddressBook* aBook, const QString& csd , bool isSubset ) 917void AddressBook::preExternSync( AddressBook* aBook, const QString& csd , bool isSubset )
918{ 918{
919 //qDebug("AddressBook::preExternSync "); 919 //qDebug("AddressBook::preExternSync ");
920 AddressBook::Iterator it; 920 AddressBook::Iterator it;
921 for ( it = begin(); it != end(); ++it ) { 921 for ( it = begin(); it != end(); ++it ) {
922 (*it).setID( csd, (*it).externalUID() ); 922 (*it).setID( csd, (*it).externalUID() );
923 (*it).computeCsum( csd ); 923 (*it).computeCsum( csd );
924 } 924 }
925 mergeAB( aBook ,csd, isSubset ); 925 mergeAB( aBook ,csd, isSubset );
926} 926}
927void AddressBook::postExternSync( AddressBook* aBook , const QString& csd, bool setID) 927void AddressBook::postExternSync( AddressBook* aBook , const QString& csd, bool setID)
928{ 928{
929 //qDebug("AddressBook::postExternSync "); 929 //qDebug("AddressBook::postExternSync ");
930 AddressBook::Iterator it; 930 AddressBook::Iterator it;
931 for ( it = begin(); it != end(); ++it ) { 931 for ( it = begin(); it != end(); ++it ) {
932 //qDebug("check uid %s ", (*it).uid().latin1() ); 932 //qDebug("check uid %s ", (*it).uid().latin1() );
933 if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_ID || 933 if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ||
934 (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_CSUM ) { 934 (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_CSUM ) {
935 Addressee ad = aBook->findByUid( ( (*it).uid() )); 935 Addressee ad = aBook->findByUid( ( (*it).uid() ));
936 if ( ad.isEmpty() ) { 936 if ( ad.isEmpty() ) {
937 qDebug("postExternSync:ERROR addressee is empty: %s ", (*it).uid().latin1()); 937 qDebug("postExternSync:ERROR addressee is empty: %s ", (*it).uid().latin1());
938 } else { 938 } else {
939 (*it).setIDStr(":"); 939 (*it).setIDStr(":");
940 (*it).computeCsum( csd ); 940 (*it).computeCsum( csd );
941 if ( setID ) { 941 if ( setID ) {
942 if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) 942 if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_ID )
943 ad.setID( csd, (*it).externalUID() ); 943 ad.setID( csd, (*it).externalUID() );
944 } else 944 } else
945 ad.setID( csd, "_" ); 945 ad.setID( csd, (*it).uid() );
946 ad.setCsum( csd, (*it).getCsum( csd ) ); 946 ad.setCsum( csd, (*it).getCsum( csd ) );
947 aBook->insertAddressee( ad ); 947 aBook->insertAddressee( ad );
948 } 948 }
949 } 949 }
950 } 950 }
951} 951}
952 952
953bool AddressBook::containsExternalUid( const QString& uid ) 953bool AddressBook::containsExternalUid( const QString& uid )
954{ 954{
955 Iterator it; 955 Iterator it;
956 for ( it = begin(); it != end(); ++it ) { 956 for ( it = begin(); it != end(); ++it ) {
957 if ( uid == (*it).externalUID( ) ) 957 if ( uid == (*it).externalUID( ) )
958 return true; 958 return true;
959 } 959 }
960 return false; 960 return false;
961} 961}
962Addressee AddressBook::findByExternUid( const QString& uid , const QString& profile ) 962Addressee AddressBook::findByExternUid( const QString& uid , const QString& profile )
963{ 963{
964 Iterator it; 964 Iterator it;
965 for ( it = begin(); it != end(); ++it ) { 965 for ( it = begin(); it != end(); ++it ) {
966 if ( uid == (*it).getID( profile ) ) 966 if ( uid == (*it).getID( profile ) )
967 return (*it); 967 return (*it);
968 } 968 }
969 return Addressee(); 969 return Addressee();
970} 970}
971void AddressBook::mergeAB( AddressBook *aBook, const QString& profile , bool isSubset ) 971void AddressBook::mergeAB( AddressBook *aBook, const QString& profile , bool isSubset )
972{ 972{
973 Iterator it; 973 Iterator it;
974 Addressee ad; 974 Addressee ad;
975 for ( it = begin(); it != end(); ++it ) { 975 for ( it = begin(); it != end(); ++it ) {
976 ad = aBook->findByExternUid( (*it).externalUID(), profile ); 976 ad = aBook->findByExternUid( (*it).externalUID(), profile );
977 if ( !ad.isEmpty() ) { 977 if ( !ad.isEmpty() ) {
978 (*it).mergeContact( ad ,isSubset); 978 (*it).mergeContact( ad ,isSubset);
979 } 979 }
980 } 980 }
981#if 0 981#if 0
982 // test only 982 // test only
983 for ( it = begin(); it != end(); ++it ) { 983 for ( it = begin(); it != end(); ++it ) {
984 984
985 qDebug("uid %s ", (*it).uid().latin1()); 985 qDebug("uid %s ", (*it).uid().latin1());
986 } 986 }
987#endif 987#endif
988} 988}
989 989
990#if 0 990#if 0
991Addressee::List AddressBook::getExternLastSyncAddressees() 991Addressee::List AddressBook::getExternLastSyncAddressees()
992{ 992{
993 Addressee::List results; 993 Addressee::List results;
994 994
995 Iterator it; 995 Iterator it;
996 for ( it = begin(); it != end(); ++it ) { 996 for ( it = begin(); it != end(); ++it ) {
997 if ( (*it).uid().left( 19 ) == "last-syncAddressee-" ) { 997 if ( (*it).uid().left( 19 ) == "last-syncAddressee-" ) {
998 if ( (*it).familyName().left(4) == "!E: " ) 998 if ( (*it).familyName().left(4) == "!E: " )
999 results.append( *it ); 999 results.append( *it );
1000 } 1000 }
1001 } 1001 }
1002 1002
1003 return results; 1003 return results;
1004} 1004}
1005#endif 1005#endif
1006void AddressBook::resetTempSyncStat() 1006void AddressBook::resetTempSyncStat()
1007{ 1007{
1008 Iterator it; 1008 Iterator it;
1009 for ( it = begin(); it != end(); ++it ) { 1009 for ( it = begin(); it != end(); ++it ) {
1010 (*it).setTempSyncStat ( SYNC_TEMPSTATE_INITIAL ); 1010 (*it).setTempSyncStat ( SYNC_TEMPSTATE_INITIAL );
1011 } 1011 }
1012 1012
1013} 1013}
1014 1014
1015QStringList AddressBook:: uidList() 1015QStringList AddressBook:: uidList()
1016{ 1016{
1017 QStringList results; 1017 QStringList results;
1018 Iterator it; 1018 Iterator it;
1019 for ( it = begin(); it != end(); ++it ) { 1019 for ( it = begin(); it != end(); ++it ) {
1020 results.append( (*it).uid() ); 1020 results.append( (*it).uid() );
1021 } 1021 }
1022 return results; 1022 return results;
1023} 1023}
1024 1024
1025 1025
1026Addressee::List AddressBook::allAddressees() 1026Addressee::List AddressBook::allAddressees()
1027{ 1027{
1028 return d->mAddressees; 1028 return d->mAddressees;
1029 1029
1030} 1030}
1031 1031
1032Addressee::List AddressBook::findByName( const QString &name ) 1032Addressee::List AddressBook::findByName( const QString &name )
1033{ 1033{
1034 Addressee::List results; 1034 Addressee::List results;
1035 1035
1036 Iterator it; 1036 Iterator it;
1037 for ( it = begin(); it != end(); ++it ) { 1037 for ( it = begin(); it != end(); ++it ) {
1038 if ( name == (*it).realName() ) { 1038 if ( name == (*it).realName() ) {
1039 results.append( *it ); 1039 results.append( *it );
1040 } 1040 }
1041 } 1041 }