author | zautrix <zautrix> | 2004-10-09 16:58:08 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-10-09 16:58:08 (UTC) |
commit | 59ed933d6c43ecb0ddd3dec53cc289ee8aa68482 (patch) (unidiff) | |
tree | 8b1cbcf9c420e7dffd1e1293bcfa69e8e821f3fa | |
parent | b80a099d9432bdc3d4eea778b1813b82b2680ecf (diff) | |
download | kdepimpi-59ed933d6c43ecb0ddd3dec53cc289ee8aa68482.zip kdepimpi-59ed933d6c43ecb0ddd3dec53cc289ee8aa68482.tar.gz kdepimpi-59ed933d6c43ecb0ddd3dec53cc289ee8aa68482.tar.bz2 |
fixed sync bug
-rw-r--r-- | kabc/addressbook.cpp | 72 | ||||
-rw-r--r-- | kabc/addressbook.h | 4 | ||||
-rw-r--r-- | kabc/addressee.cpp | 12 | ||||
-rw-r--r-- | kabc/addressee.h | 5 | ||||
-rw-r--r-- | kaddressbook/kabcore.cpp | 2 |
5 files changed, 66 insertions, 29 deletions
diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp index 1050f55..ff05f7e 100644 --- a/kabc/addressbook.cpp +++ b/kabc/addressbook.cpp | |||
@@ -400,40 +400,60 @@ void AddressBook::export2File( QString fileName ) | |||
400 | converter.addresseeToVCard( *it, vcard, version ); | 400 | converter.addresseeToVCard( *it, vcard, version ); |
401 | t << vcard << "\r\n"; | 401 | t << vcard << "\r\n"; |
402 | } | 402 | } |
403 | t << "\r\n\r\n"; | 403 | t << "\r\n\r\n"; |
404 | outFile.close(); | 404 | outFile.close(); |
405 | } | 405 | } |
406 | void AddressBook::importFromFile( QString fileName, bool replaceLabel ) | 406 | void AddressBook::importFromFile( QString fileName, bool replaceLabel, bool removeOld ) |
407 | { | 407 | { |
408 | 408 | ||
409 | KABC::Addressee::List list; | 409 | if ( removeOld ) |
410 | QFile file( fileName ); | 410 | setUntagged(); |
411 | 411 | KABC::Addressee::List list; | |
412 | file.open( IO_ReadOnly ); | 412 | QFile file( fileName ); |
413 | QByteArray rawData = file.readAll(); | 413 | file.open( IO_ReadOnly ); |
414 | file.close(); | 414 | QByteArray rawData = file.readAll(); |
415 | QString data; | 415 | file.close(); |
416 | if ( replaceLabel ) { | 416 | QString data; |
417 | data = QString::fromLatin1( rawData.data(), rawData.size() + 1 ); | 417 | if ( replaceLabel ) { |
418 | data.replace ( QRegExp("LABEL") , "ADR" ); | 418 | data = QString::fromLatin1( rawData.data(), rawData.size() + 1 ); |
419 | data.replace ( QRegExp("CHARSET=ISO-8859-1") , "" ); | 419 | data.replace ( QRegExp("LABEL") , "ADR" ); |
420 | } else | 420 | data.replace ( QRegExp("CHARSET=ISO-8859-1") , "" ); |
421 | data = QString::fromUtf8( rawData.data(), rawData.size() + 1 ); | 421 | } else |
422 | KABC::VCardTool tool; | 422 | data = QString::fromUtf8( rawData.data(), rawData.size() + 1 ); |
423 | list = tool.parseVCards( data ); | 423 | KABC::VCardTool tool; |
424 | KABC::Addressee::List::Iterator it; | 424 | list = tool.parseVCards( data ); |
425 | for ( it = list.begin(); it != list.end(); ++it ) { | 425 | KABC::Addressee::List::Iterator it; |
426 | (*it).setResource( 0 ); | 426 | for ( it = list.begin(); it != list.end(); ++it ) { |
427 | if ( replaceLabel ) | 427 | (*it).setResource( 0 ); |
428 | (*it).removeVoice(); | 428 | if ( replaceLabel ) |
429 | insertAddressee( (*it), false, true ); | 429 | (*it).removeVoice(); |
430 | if ( removeOld ) | ||
431 | (*it).setTagged( true ); | ||
432 | insertAddressee( (*it), false, true ); | ||
433 | } | ||
434 | if ( removeOld ) | ||
435 | removeUntagged(); | ||
436 | } | ||
437 | void AddressBook::setUntagged() | ||
438 | { | ||
439 | Iterator ait; | ||
440 | for ( ait = begin(); ait != end(); ++ait ) { | ||
441 | (*ait).setTagged( false ); | ||
442 | } | ||
443 | } | ||
444 | void AddressBook::removeUntagged() | ||
445 | { | ||
446 | Iterator ait; | ||
447 | for ( ait = begin(); ait != end(); ++ait ) { | ||
448 | if (!(*ait).tagged()) | ||
449 | removeAddressee( ait ); | ||
430 | } | 450 | } |
431 | 451 | ||
452 | deleteRemovedAddressees(); | ||
432 | } | 453 | } |
433 | |||
434 | bool AddressBook::saveAB() | 454 | bool AddressBook::saveAB() |
435 | { | 455 | { |
436 | bool ok = true; | 456 | bool ok = true; |
437 | 457 | ||
438 | deleteRemovedAddressees(); | 458 | deleteRemovedAddressees(); |
439 | Iterator ait; | 459 | Iterator ait; |
diff --git a/kabc/addressbook.h b/kabc/addressbook.h index cea1b03..532e05d 100644 --- a/kabc/addressbook.h +++ b/kabc/addressbook.h | |||
@@ -140,13 +140,15 @@ class AddressBook : public QObject | |||
140 | 140 | ||
141 | @param ticket a ticket object returned by @ref requestSaveTicket() | 141 | @param ticket a ticket object returned by @ref requestSaveTicket() |
142 | */ | 142 | */ |
143 | bool save( Ticket *ticket ); | 143 | bool save( Ticket *ticket ); |
144 | bool saveAB( ); | 144 | bool saveAB( ); |
145 | void export2File( QString fileName ); | 145 | void export2File( QString fileName ); |
146 | void importFromFile( QString fileName, bool replaceLabel = false ); | 146 | void importFromFile( QString fileName, bool replaceLabel = false, bool removeOld = false ); |
147 | void setUntagged(); | ||
148 | void removeUntagged(); | ||
147 | /** | 149 | /** |
148 | Returns a iterator for first entry of address book. | 150 | Returns a iterator for first entry of address book. |
149 | */ | 151 | */ |
150 | Iterator begin(); | 152 | Iterator begin(); |
151 | 153 | ||
152 | /** | 154 | /** |
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp index 3f3d5c0..607ae26 100644 --- a/kabc/addressee.cpp +++ b/kabc/addressee.cpp | |||
@@ -85,12 +85,13 @@ struct Addressee::AddresseeData : public KShared | |||
85 | QStringList custom; | 85 | QStringList custom; |
86 | int mTempSyncStat; | 86 | int mTempSyncStat; |
87 | Resource *resource; | 87 | Resource *resource; |
88 | 88 | ||
89 | bool empty :1; | 89 | bool empty :1; |
90 | bool changed :1; | 90 | bool changed :1; |
91 | bool tagged :1; | ||
91 | }; | 92 | }; |
92 | 93 | ||
93 | Addressee::Addressee() | 94 | Addressee::Addressee() |
94 | { | 95 | { |
95 | mData = new AddresseeData; | 96 | mData = new AddresseeData; |
96 | mData->empty = true; | 97 | mData->empty = true; |
@@ -1818,12 +1819,23 @@ void Addressee::setChanged( bool value ) | |||
1818 | 1819 | ||
1819 | bool Addressee::changed() const | 1820 | bool Addressee::changed() const |
1820 | { | 1821 | { |
1821 | return mData->changed; | 1822 | return mData->changed; |
1822 | } | 1823 | } |
1823 | 1824 | ||
1825 | void Addressee::setTagged( bool value ) | ||
1826 | { | ||
1827 | detach(); | ||
1828 | mData->tagged = value; | ||
1829 | } | ||
1830 | |||
1831 | bool Addressee::tagged() const | ||
1832 | { | ||
1833 | return mData->tagged; | ||
1834 | } | ||
1835 | |||
1824 | QDataStream &KABC::operator<<( QDataStream &s, const Addressee &a ) | 1836 | QDataStream &KABC::operator<<( QDataStream &s, const Addressee &a ) |
1825 | { | 1837 | { |
1826 | if (!a.mData) return s; | 1838 | if (!a.mData) return s; |
1827 | 1839 | ||
1828 | s << a.uid(); | 1840 | s << a.uid(); |
1829 | 1841 | ||
diff --git a/kabc/addressee.h b/kabc/addressee.h index 9336edc..0aa2c51 100644 --- a/kabc/addressee.h +++ b/kabc/addressee.h | |||
@@ -828,13 +828,16 @@ class Addressee | |||
828 | */ | 828 | */ |
829 | void setChanged( bool value ); | 829 | void setChanged( bool value ); |
830 | 830 | ||
831 | /** | 831 | /** |
832 | Return whether the addressee is changed. | 832 | Return whether the addressee is changed. |
833 | */ | 833 | */ |
834 | bool changed() const; | 834 | bool changed() const; |
835 | |||
836 | void setTagged( bool value ); | ||
837 | bool tagged() const; | ||
835 | 838 | ||
836 | private: | 839 | private: |
837 | Addressee copy(); | 840 | Addressee copy(); |
838 | void detach(); | 841 | void detach(); |
839 | 842 | ||
840 | struct AddresseeData; | 843 | struct AddresseeData; |
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 7ec3fca..452f1bc 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp | |||
@@ -2873,13 +2873,13 @@ void KABCore::getFile( bool success ) | |||
2873 | { | 2873 | { |
2874 | QTimer::singleShot( 15000, this , SLOT ( setCaptionBack())); | 2874 | QTimer::singleShot( 15000, this , SLOT ( setCaptionBack())); |
2875 | if ( ! success ) { | 2875 | if ( ! success ) { |
2876 | setCaption( i18n("Error receiving file. Nothing changed!") ); | 2876 | setCaption( i18n("Error receiving file. Nothing changed!") ); |
2877 | return; | 2877 | return; |
2878 | } | 2878 | } |
2879 | mAddressBook->importFromFile( sentSyncFile() ); | 2879 | mAddressBook->importFromFile( sentSyncFile() , false, true ); |
2880 | topLevelWidget()->setCaption( i18n("Pi-Sync successful!") ); | 2880 | topLevelWidget()->setCaption( i18n("Pi-Sync successful!") ); |
2881 | mViewManager->refreshView(); | 2881 | mViewManager->refreshView(); |
2882 | } | 2882 | } |
2883 | void KABCore::syncFileRequest() | 2883 | void KABCore::syncFileRequest() |
2884 | { | 2884 | { |
2885 | mAddressBook->export2File( sentSyncFile() ); | 2885 | mAddressBook->export2File( sentSyncFile() ); |