summaryrefslogtreecommitdiffabout
path: root/kabc/addressbook.h
Unidiff
Diffstat (limited to 'kabc/addressbook.h') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addressbook.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/kabc/addressbook.h b/kabc/addressbook.h
index 3603ec1..cea1b03 100644
--- a/kabc/addressbook.h
+++ b/kabc/addressbook.h
@@ -1,341 +1,341 @@
1/* 1/*
2 This file is part of libkabc. 2 This file is part of libkabc.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21/* 21/*
22Enhanced Version of the file for platform independent KDE tools. 22Enhanced Version of the file for platform independent KDE tools.
23Copyright (c) 2004 Ulf Schenk 23Copyright (c) 2004 Ulf Schenk
24 24
25$Id$ 25$Id$
26*/ 26*/
27 27
28#ifndef KABC_ADDRESSBOOK_H 28#ifndef KABC_ADDRESSBOOK_H
29#define KABC_ADDRESSBOOK_H 29#define KABC_ADDRESSBOOK_H
30 30
31#include <qobject.h> 31#include <qobject.h>
32 32
33#include <kresources/manager.h> 33#include <kresources/manager.h>
34#include <qptrlist.h> 34#include <qptrlist.h>
35 35
36#include "addressee.h" 36#include "addressee.h"
37#include "field.h" 37#include "field.h"
38 38
39namespace KABC { 39namespace KABC {
40 40
41class ErrorHandler; 41class ErrorHandler;
42class Resource; 42class Resource;
43class Ticket; 43class Ticket;
44 44
45/** 45/**
46 @short Address Book 46 @short Address Book
47 47
48 This class provides access to a collection of address book entries. 48 This class provides access to a collection of address book entries.
49*/ 49*/
50class AddressBook : public QObject 50class AddressBook : public QObject
51{ 51{
52 Q_OBJECT 52 Q_OBJECT
53 53
54 friend QDataStream &operator<<( QDataStream &, const AddressBook & ); 54 friend QDataStream &operator<<( QDataStream &, const AddressBook & );
55 friend QDataStream &operator>>( QDataStream &, AddressBook & ); 55 friend QDataStream &operator>>( QDataStream &, AddressBook & );
56 friend class StdAddressBook; 56 friend class StdAddressBook;
57 57
58 public: 58 public:
59 /** 59 /**
60 @short Address Book Iterator 60 @short Address Book Iterator
61 61
62 This class provides an iterator for address book entries. 62 This class provides an iterator for address book entries.
63 */ 63 */
64 class Iterator 64 class Iterator
65 { 65 {
66 public: 66 public:
67 Iterator(); 67 Iterator();
68 Iterator( const Iterator & ); 68 Iterator( const Iterator & );
69 ~Iterator(); 69 ~Iterator();
70 70
71 Iterator &operator=( const Iterator & ); 71 Iterator &operator=( const Iterator & );
72 const Addressee &operator*() const; 72 const Addressee &operator*() const;
73 Addressee &operator*(); 73 Addressee &operator*();
74 Addressee* operator->(); 74 Addressee* operator->();
75 Iterator &operator++(); 75 Iterator &operator++();
76 Iterator &operator++(int); 76 Iterator &operator++(int);
77 Iterator &operator--(); 77 Iterator &operator--();
78 Iterator &operator--(int); 78 Iterator &operator--(int);
79 bool operator==( const Iterator &it ); 79 bool operator==( const Iterator &it );
80 bool operator!=( const Iterator &it ); 80 bool operator!=( const Iterator &it );
81 81
82 struct IteratorData; 82 struct IteratorData;
83 IteratorData *d; 83 IteratorData *d;
84 }; 84 };
85 85
86 /** 86 /**
87 @short Address Book Const Iterator 87 @short Address Book Const Iterator
88 88
89 This class provides a const iterator for address book entries. 89 This class provides a const iterator for address book entries.
90 */ 90 */
91 class ConstIterator 91 class ConstIterator
92 { 92 {
93 public: 93 public:
94 ConstIterator(); 94 ConstIterator();
95 ConstIterator( const ConstIterator & ); 95 ConstIterator( const ConstIterator & );
96 ~ConstIterator(); 96 ~ConstIterator();
97 97
98 ConstIterator &operator=( const ConstIterator & ); 98 ConstIterator &operator=( const ConstIterator & );
99 const Addressee &operator*() const; 99 const Addressee &operator*() const;
100 const Addressee* operator->() const; 100 const Addressee* operator->() const;
101 ConstIterator &operator++(); 101 ConstIterator &operator++();
102 ConstIterator &operator++(int); 102 ConstIterator &operator++(int);
103 ConstIterator &operator--(); 103 ConstIterator &operator--();
104 ConstIterator &operator--(int); 104 ConstIterator &operator--(int);
105 bool operator==( const ConstIterator &it ); 105 bool operator==( const ConstIterator &it );
106 bool operator!=( const ConstIterator &it ); 106 bool operator!=( const ConstIterator &it );
107 107
108 struct ConstIteratorData; 108 struct ConstIteratorData;
109 ConstIteratorData *d; 109 ConstIteratorData *d;
110 }; 110 };
111 111
112 /** 112 /**
113 Constructs a address book object. 113 Constructs a address book object.
114 114
115 @param format File format class. 115 @param format File format class.
116 */ 116 */
117 AddressBook(); 117 AddressBook();
118 AddressBook( const QString &config ); 118 AddressBook( const QString &config );
119 AddressBook( const QString &config, const QString &family ); 119 AddressBook( const QString &config, const QString &family );
120 virtual ~AddressBook(); 120 virtual ~AddressBook();
121 121
122 /** 122 /**
123 Requests a ticket for saving the addressbook. Calling this function locks 123 Requests a ticket for saving the addressbook. Calling this function locks
124 the addressbook for all other processes. If the address book is already 124 the addressbook for all other processes. If the address book is already
125 locked the function returns 0. You need the returned @ref Ticket object 125 locked the function returns 0. You need the returned @ref Ticket object
126 for calling the @ref save() function. 126 for calling the @ref save() function.
127 127
128 @see save() 128 @see save()
129 */ 129 */
130 Ticket *requestSaveTicket( Resource *resource=0 ); 130 Ticket *requestSaveTicket( Resource *resource=0 );
131 131
132 /** 132 /**
133 Load address book from file. 133 Load address book from file.
134 */ 134 */
135 bool load(); 135 bool load();
136 136
137 /** 137 /**
138 Save address book. The address book is saved to the file, the Ticket 138 Save address book. The address book is saved to the file, the Ticket
139 object has been requested for by @ref requestSaveTicket(). 139 object has been requested for by @ref requestSaveTicket().
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 ); 146 void importFromFile( QString fileName, bool replaceLabel = false );
147 /** 147 /**
148 Returns a iterator for first entry of address book. 148 Returns a iterator for first entry of address book.
149 */ 149 */
150 Iterator begin(); 150 Iterator begin();
151 151
152 /** 152 /**
153 Returns a const iterator for first entry of address book. 153 Returns a const iterator for first entry of address book.
154 */ 154 */
155 ConstIterator begin() const; 155 ConstIterator begin() const;
156 156
157 /** 157 /**
158 Returns a iterator for first entry of address book. 158 Returns a iterator for first entry of address book.
159 */ 159 */
160 Iterator end(); 160 Iterator end();
161 161
162 /** 162 /**
163 Returns a const iterator for first entry of address book. 163 Returns a const iterator for first entry of address book.
164 */ 164 */
165 ConstIterator end() const; 165 ConstIterator end() const;
166 166
167 /** 167 /**
168 Removes all entries from address book. 168 Removes all entries from address book.
169 */ 169 */
170 void clear(); 170 void clear();
171 171
172 /** 172 /**
173 Insert an Addressee object into address book. If an object with the same 173 Insert an Addressee object into address book. If an object with the same
174 unique id already exists in the address book it it replaced by the new 174 unique id already exists in the address book it it replaced by the new
175 one. If not the new object is appended to the address book. 175 one. If not the new object is appended to the address book.
176 */ 176 */
177 void insertAddressee( const Addressee &, bool setRev = true, bool takeResource = false); 177 void insertAddressee( const Addressee &, bool setRev = true, bool takeResource = false);
178 178
179 /** 179 /**
180 Removes entry from the address book. 180 Removes entry from the address book.
181 */ 181 */
182 void removeAddressee( const Addressee & ); 182 void removeAddressee( const Addressee & );
183 183
184 /** 184 /**
185 This is like @ref removeAddressee() just above, with the difference that 185 This is like @ref removeAddressee() just above, with the difference that
186 the first element is a iterator, returned by @ref begin(). 186 the first element is a iterator, returned by @ref begin().
187 */ 187 */
188 void removeAddressee( const Iterator & ); 188 void removeAddressee( const Iterator & );
189 189
190 /** 190 /**
191 Find the specified entry in address book. Returns end(), if the entry 191 Find the specified entry in address book. Returns end(), if the entry
192 couldn't be found. 192 couldn't be found.
193 */ 193 */
194 Iterator find( const Addressee & ); 194 Iterator find( const Addressee & );
195 195
196 /** 196 /**
197 Find the entry specified by an unique id. Returns an empty Addressee 197 Find the entry specified by an unique id. Returns an empty Addressee
198 object, if the address book does not contain an entry with this id. 198 object, if the address book does not contain an entry with this id.
199 */ 199 */
200 Addressee findByUid( const QString & ); 200 Addressee findByUid( const QString & );
201 201
202 202
203 /** 203 /**
204 Returns a list of all addressees in the address book. This list can 204 Returns a list of all addressees in the address book. This list can
205 be sorted with @ref KABC::AddresseeList for example. 205 be sorted with @ref KABC::AddresseeList for example.
206 */ 206 */
207 Addressee::List allAddressees(); 207 Addressee::List allAddressees();
208 208
209 /** 209 /**
210 Find all entries with the specified name in the address book. Returns 210 Find all entries with the specified name in the address book. Returns
211 an empty list, if no entries could be found. 211 an empty list, if no entries could be found.
212 */ 212 */
213 Addressee::List findByName( const QString & ); 213 Addressee::List findByName( const QString & );
214 214
215 /** 215 /**
216 Find all entries with the specified email address in the address book. 216 Find all entries with the specified email address in the address book.
217 Returns an empty list, if no entries could be found. 217 Returns an empty list, if no entries could be found.
218 */ 218 */
219 Addressee::List findByEmail( const QString & ); 219 Addressee::List findByEmail( const QString & );
220 220
221 /** 221 /**
222 Find all entries wich have the specified category in the address book. 222 Find all entries wich have the specified category in the address book.
223 Returns an empty list, if no entries could be found. 223 Returns an empty list, if no entries could be found.
224 */ 224 */
225 Addressee::List findByCategory( const QString & ); 225 Addressee::List findByCategory( const QString & );
226 226
227 /** 227 /**
228 Return a string identifying this addressbook. 228 Return a string identifying this addressbook.
229 */ 229 */
230 virtual QString identifier(); 230 virtual QString identifier();
231 231
232 /** 232 /**
233 Used for debug output. 233 Used for debug output.
234 */ 234 */
235 void dump() const; 235 void dump() const;
236 236
237 void emitAddressBookLocked() { emit addressBookLocked( this ); } 237 void emitAddressBookLocked() { emit addressBookLocked( this ); }
238 void emitAddressBookUnlocked() { emit addressBookUnlocked( this ); } 238 void emitAddressBookUnlocked() { emit addressBookUnlocked( this ); }
239 void emitAddressBookChanged() { emit addressBookChanged( this ); } 239 void emitAddressBookChanged() { emit addressBookChanged( this ); }
240 240
241 /** 241 /**
242 Return list of all Fields known to the address book which are associated 242 Return list of all Fields known to the address book which are associated
243 with the given field category. 243 with the given field category.
244 */ 244 */
245 Field::List fields( int category = Field::All ); 245 Field::List fields( int category = Field::All );
246 246
247 /** 247 /**
248 Add custom field to address book. 248 Add custom field to address book.
249 249
250 @param label User visible label of the field. 250 @param label User visible label of the field.
251 @param category Ored list of field categories. 251 @param category Ored list of field categories.
252 @param key Identifier used as key for reading and writing the field. 252 @param key Identifier used as key for reading and writing the field.
253 @param app String used as application key for reading and writing 253 @param app String used as application key for reading and writing
254 the field. 254 the field.
255 */ 255 */
256 bool addCustomField( const QString &label, int category = Field::All, 256 bool addCustomField( const QString &label, int category = Field::All,
257 const QString &key = QString::null, 257 const QString &key = QString::null,
258 const QString &app = QString::null ); 258 const QString &app = QString::null );
259 259
260 260
261 /** 261 /**
262 Add address book resource. 262 Add address book resource.
263 */ 263 */
264 bool addResource( Resource * ); 264 bool addResource( Resource * );
265 265
266 /** 266 /**
267 Remove address book resource. 267 Remove address book resource.
268 */ 268 */
269 bool removeResource( Resource * ); 269 bool removeResource( Resource * );
270 270
271 /** 271 /**
272 Return pointer list of all resources. 272 Return pointer list of all resources.
273 */ 273 */
274 QPtrList<Resource> resources(); 274 QPtrList<Resource> resources();
275 275
276 /** 276 /**
277 Set the @p ErrorHandler, that is used by @ref error() to 277 Set the @p ErrorHandler, that is used by @ref error() to
278 provide gui-independend error messages. 278 provide gui-independend error messages.
279 */ 279 */
280 void setErrorHandler( ErrorHandler * ); 280 void setErrorHandler( ErrorHandler * );
281 281
282 /** 282 /**
283 Shows gui independend error messages. 283 Shows gui independend error messages.
284 */ 284 */
285 void error( const QString& ); 285 void error( const QString& );
286 286
287 /** 287 /**
288 Query all resources to clean up their lock files 288 Query all resources to clean up their lock files
289 */ 289 */
290 void cleanUp(); 290 void cleanUp();
291 291
292 // sync stuff 292 // sync stuff
293 //Addressee::List getExternLastSyncAddressees(); 293 //Addressee::List getExternLastSyncAddressees();
294 void resetTempSyncStat(); 294 void resetTempSyncStat();
295 QStringList uidList(); 295 QStringList uidList();
296 void removeSyncAddressees( bool removeDeleted = false ); 296 void removeSyncAddressees( bool removeDeleted = false );
297 void mergeAB( AddressBook *aBook, const QString& profile ); 297 void mergeAB( AddressBook *aBook, const QString& profile );
298 Addressee findByExternUid( const QString& uid , const QString& profile ); 298 Addressee findByExternUid( const QString& uid , const QString& profile );
299 bool containsExternalUid( const QString& uid ); 299 bool containsExternalUid( const QString& uid );
300 300
301 void preExternSync( AddressBook* aBook, const QString& csd ); 301 void preExternSync( AddressBook* aBook, const QString& csd );
302 void postExternSync( AddressBook* aBook, const QString& csd ); 302 void postExternSync( AddressBook* aBook, const QString& csd );
303 signals: 303 signals:
304 /** 304 /**
305 Emitted, when the address book has changed on disk. 305 Emitted, when the address book has changed on disk.
306 */ 306 */
307 void addressBookChanged( AddressBook * ); 307 void addressBookChanged( AddressBook * );
308 308
309 /** 309 /**
310 Emitted, when the address book has been locked for writing. 310 Emitted, when the address book has been locked for writing.
311 */ 311 */
312 void addressBookLocked( AddressBook * ); 312 void addressBookLocked( AddressBook * );
313 313
314 /** 314 /**
315 Emitted, when the address book has been unlocked. 315 Emitted, when the address book has been unlocked.
316 */ 316 */
317 void addressBookUnlocked( AddressBook * ); 317 void addressBookUnlocked( AddressBook * );
318 318
319 protected: 319 protected:
320 void deleteRemovedAddressees(); 320 void deleteRemovedAddressees();
321 void setStandardResource( Resource * ); 321 void setStandardResource( Resource * );
322 Resource *standardResource(); 322 Resource *standardResource();
323 KRES::Manager<Resource> *resourceManager(); 323 KRES::Manager<Resource> *resourceManager();
324 324
325 void init(const QString &config, const QString &family); 325 void init(const QString &config, const QString &family);
326 326
327 private: 327 private:
328//US QPtrList<Resource> mDummy; // Remove in KDE 4 328//US QPtrList<Resource> mDummy; // Remove in KDE 4
329 329
330 330
331 struct AddressBookData; 331 struct AddressBookData;
332 AddressBookData *d; 332 AddressBookData *d;
333 bool blockLSEchange; 333 bool blockLSEchange;
334}; 334};
335 335
336QDataStream &operator<<( QDataStream &, const AddressBook & ); 336QDataStream &operator<<( QDataStream &, const AddressBook & );
337QDataStream &operator>>( QDataStream &, AddressBook & ); 337QDataStream &operator>>( QDataStream &, AddressBook & );
338 338
339} 339}
340 340
341#endif 341#endif