-rw-r--r-- | kabc/distributionlist.cpp | 32 | ||||
-rw-r--r-- | kabc/distributionlisteditor.cpp | 1 |
2 files changed, 20 insertions, 13 deletions
diff --git a/kabc/distributionlist.cpp b/kabc/distributionlist.cpp index 45b9dda..0735aba 100644 --- a/kabc/distributionlist.cpp +++ b/kabc/distributionlist.cpp | |||
@@ -49,21 +49,23 @@ QString DistributionList::name() const | |||
49 | } | 49 | } |
50 | 50 | ||
51 | void DistributionList::insertEntry( const Addressee &a, const QString &email ) | 51 | void DistributionList::insertEntry( const Addressee &a, const QString &email ) |
52 | { | 52 | { |
53 | Entry e( a, email ); | 53 | QString em = email; |
54 | 54 | if (em.isNull() ) | |
55 | em = a.preferredEmail(); | ||
56 | Entry e( a, em ); | ||
55 | QValueList<Entry>::Iterator it; | 57 | QValueList<Entry>::Iterator it; |
56 | for( it = mEntries.begin(); it != mEntries.end(); ++it ) { | 58 | for( it = mEntries.begin(); it != mEntries.end(); ++it ) { |
57 | if ( (*it).addressee.uid() == a.uid() ) { | 59 | if ( (*it).addressee.uid() == a.uid() ) { |
58 | /** | 60 | /** |
59 | We have to check if both email addresses contains no data, | 61 | We have to check if both email addresses contains no data, |
60 | a simple 'email1 == email2' wont work here | 62 | a simple 'email1 == email2' wont work here |
61 | */ | 63 | */ |
62 | if ( ( (*it).email.isNull() && email.isEmpty() ) || | 64 | if ( ( (*it).email.isNull() && em.isEmpty() ) || |
63 | ( (*it).email.isEmpty() && email.isNull() ) || | 65 | ( (*it).email.isEmpty() && em.isNull() ) || |
64 | ( (*it).email == email ) ) { | 66 | ( (*it).email == em ) ) { |
65 | *it = e; | 67 | //*it = e; |
66 | return; | 68 | return; |
67 | } | 69 | } |
68 | } | 70 | } |
69 | } | 71 | } |
@@ -177,11 +179,11 @@ bool DistributionListManager::load() | |||
177 | QString name = it.key(); | 179 | QString name = it.key(); |
178 | */ | 180 | */ |
179 | cfg.setGroup( mAddressBook->identifier() ); | 181 | cfg.setGroup( mAddressBook->identifier() ); |
180 | //US we work in microkde with a list of distributionlists | 182 | //US we work in microkde with a list of distributionlists |
181 | QStringList distlists = cfg.readListEntry( "Lists" ); | 183 | QStringList distlists = cfg.readListEntry( "__Lists__List__" ); |
182 | if ( distlists.isEmpty() ) { | 184 | if ( distlists.isEmpty() ) { |
183 | kdDebug(5700) << "No distlists for '" << mAddressBook->identifier() << "'" << endl; | 185 | qDebug("no distlist for AB "); |
184 | return false; | 186 | return false; |
185 | } | 187 | } |
186 | 188 | ||
187 | QStringList::ConstIterator it; | 189 | QStringList::ConstIterator it; |
@@ -190,18 +192,18 @@ bool DistributionListManager::load() | |||
190 | 192 | ||
191 | 193 | ||
192 | QStringList value = cfg.readListEntry( name ); | 194 | QStringList value = cfg.readListEntry( name ); |
193 | 195 | ||
194 | kdDebug(5700) << "DLM::load(): " << name << ": " << value.join(",") << endl; | 196 | |
195 | 197 | ||
196 | DistributionList *list = new DistributionList( this, name ); | 198 | DistributionList *list = new DistributionList( this, name ); |
197 | 199 | ||
198 | QStringList::ConstIterator it2 = value.begin(); | 200 | QStringList::ConstIterator it2 = value.begin(); |
199 | while( it2 != value.end() ) { | 201 | while( it2 != value.end() ) { |
200 | QString id = *it2++; | 202 | QString id = *it2++; |
201 | QString email = *it2; | 203 | QString email = *it2; |
202 | 204 | ||
203 | kdDebug(5700) << "----- Entry " << id << endl; | 205 | |
204 | 206 | ||
205 | Addressee a = mAddressBook->findByUid( id ); | 207 | Addressee a = mAddressBook->findByUid( id ); |
206 | if ( !a.isEmpty() ) { | 208 | if ( !a.isEmpty() ) { |
207 | list->insertEntry( a, email ); | 209 | list->insertEntry( a, email ); |
@@ -216,9 +218,9 @@ bool DistributionListManager::load() | |||
216 | } | 218 | } |
217 | 219 | ||
218 | bool DistributionListManager::save() | 220 | bool DistributionListManager::save() |
219 | { | 221 | { |
220 | kdDebug(5700) << "DistListManager::save()" << endl; | 222 | |
221 | 223 | ||
222 | KSimpleConfig cfg( locateLocal( "data", "kabc/distlists" ) ); | 224 | KSimpleConfig cfg( locateLocal( "data", "kabc/distlists" ) ); |
223 | 225 | ||
224 | cfg.deleteGroup( mAddressBook->identifier() ); | 226 | cfg.deleteGroup( mAddressBook->identifier() ); |
@@ -231,9 +233,13 @@ bool DistributionListManager::save() | |||
231 | DistributionList::Entry::List entries = list->entries(); | 233 | DistributionList::Entry::List entries = list->entries(); |
232 | DistributionList::Entry::List::ConstIterator it; | 234 | DistributionList::Entry::List::ConstIterator it; |
233 | for( it = entries.begin(); it != entries.end(); ++it ) { | 235 | for( it = entries.begin(); it != entries.end(); ++it ) { |
234 | value.append( (*it).addressee.uid() ); | 236 | value.append( (*it).addressee.uid() ); |
235 | value.append( (*it).email ); | 237 | if (( *it).email.isEmpty()) |
238 | value.append( " " ); | ||
239 | else | ||
240 | value.append( (*it).email ); | ||
241 | // qDebug("uid *%s* email *%s* ", (*it).addressee.uid().latin1(),(*it).email.latin1() ); | ||
236 | } | 242 | } |
237 | cfg.writeEntry( list->name(), value ); | 243 | cfg.writeEntry( list->name(), value ); |
238 | } | 244 | } |
239 | 245 | ||
@@ -242,9 +248,9 @@ bool DistributionListManager::save() | |||
242 | QStringList namelist; | 248 | QStringList namelist; |
243 | for( list = mLists.first(); list; list = mLists.next() ) { | 249 | for( list = mLists.first(); list; list = mLists.next() ) { |
244 | namelist.append( list->name() ); | 250 | namelist.append( list->name() ); |
245 | } | 251 | } |
246 | cfg.writeEntry( "Lists", namelist ); | 252 | cfg.writeEntry( "__Lists__List__", namelist ); |
247 | 253 | ||
248 | 254 | ||
249 | 255 | ||
250 | 256 | ||
diff --git a/kabc/distributionlisteditor.cpp b/kabc/distributionlisteditor.cpp index 8b485d8..bad1efc 100644 --- a/kabc/distributionlisteditor.cpp +++ b/kabc/distributionlisteditor.cpp | |||
@@ -69,8 +69,9 @@ QString EmailSelectDialog::selected() | |||
69 | 69 | ||
70 | QString EmailSelectDialog::getEmail( const QStringList &emails, const QString ¤t, | 70 | QString EmailSelectDialog::getEmail( const QStringList &emails, const QString ¤t, |
71 | QWidget *parent ) | 71 | QWidget *parent ) |
72 | { | 72 | { |
73 | |||
73 | EmailSelectDialog *dlg = new EmailSelectDialog( emails, current, parent ); | 74 | EmailSelectDialog *dlg = new EmailSelectDialog( emails, current, parent ); |
74 | dlg->exec(); | 75 | dlg->exec(); |
75 | 76 | ||
76 | QString result = dlg->selected(); | 77 | QString result = dlg->selected(); |