summaryrefslogtreecommitdiffabout
path: root/kabc/addressbook.h
Unidiff
Diffstat (limited to 'kabc/addressbook.h') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addressbook.h30
1 files changed, 15 insertions, 15 deletions
diff --git a/kabc/addressbook.h b/kabc/addressbook.h
index 3a8e028..f89d7da 100644
--- a/kabc/addressbook.h
+++ b/kabc/addressbook.h
@@ -1,327 +1,327 @@
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 virtual ~AddressBook(); 120 virtual ~AddressBook();
120 121
121 /** 122 /**
122 Requests a ticket for saving the addressbook. Calling this function locks 123 Requests a ticket for saving the addressbook. Calling this function locks
123 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
124 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
125 for calling the @ref save() function. 126 for calling the @ref save() function.
126 127
127 @see save() 128 @see save()
128 */ 129 */
129 Ticket *requestSaveTicket( Resource *resource=0 ); 130 Ticket *requestSaveTicket( Resource *resource=0 );
130 131
131 /** 132 /**
132 Load address book from file. 133 Load address book from file.
133 */ 134 */
134 bool load(); 135 bool load();
135 136
136 /** 137 /**
137 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
138 object has been requested for by @ref requestSaveTicket(). 139 object has been requested for by @ref requestSaveTicket().
139 140
140 @param ticket a ticket object returned by @ref requestSaveTicket() 141 @param ticket a ticket object returned by @ref requestSaveTicket()
141 */ 142 */
142 bool save( Ticket *ticket ); 143 bool save( Ticket *ticket );
143 144
144 /** 145 /**
145 Returns a iterator for first entry of address book. 146 Returns a iterator for first entry of address book.
146 */ 147 */
147 Iterator begin(); 148 Iterator begin();
148 149
149 /** 150 /**
150 Returns a const iterator for first entry of address book. 151 Returns a const iterator for first entry of address book.
151 */ 152 */
152 ConstIterator begin() const; 153 ConstIterator begin() const;
153 154
154 /** 155 /**
155 Returns a iterator for first entry of address book. 156 Returns a iterator for first entry of address book.
156 */ 157 */
157 Iterator end(); 158 Iterator end();
158 159
159 /** 160 /**
160 Returns a const iterator for first entry of address book. 161 Returns a const iterator for first entry of address book.
161 */ 162 */
162 ConstIterator end() const; 163 ConstIterator end() const;
163 164
164 /** 165 /**
165 Removes all entries from address book. 166 Removes all entries from address book.
166 */ 167 */
167 void clear(); 168 void clear();
168 169
169 /** 170 /**
170 Insert an Addressee object into address book. If an object with the same 171 Insert an Addressee object into address book. If an object with the same
171 unique id already exists in the address book it it replaced by the new 172 unique id already exists in the address book it it replaced by the new
172 one. If not the new object is appended to the address book. 173 one. If not the new object is appended to the address book.
173 */ 174 */
174 void insertAddressee( const Addressee & ); 175 void insertAddressee( const Addressee & );
175 176
176 /** 177 /**
177 Removes entry from the address book. 178 Removes entry from the address book.
178 */ 179 */
179 void removeAddressee( const Addressee & ); 180 void removeAddressee( const Addressee & );
180 181
181 /** 182 /**
182 This is like @ref removeAddressee() just above, with the difference that 183 This is like @ref removeAddressee() just above, with the difference that
183 the first element is a iterator, returned by @ref begin(). 184 the first element is a iterator, returned by @ref begin().
184 */ 185 */
185 void removeAddressee( const Iterator & ); 186 void removeAddressee( const Iterator & );
186 187
187 /** 188 /**
188 Find the specified entry in address book. Returns end(), if the entry 189 Find the specified entry in address book. Returns end(), if the entry
189 couldn't be found. 190 couldn't be found.
190 */ 191 */
191 Iterator find( const Addressee & ); 192 Iterator find( const Addressee & );
192 193
193 /** 194 /**
194 Find the entry specified by an unique id. Returns an empty Addressee 195 Find the entry specified by an unique id. Returns an empty Addressee
195 object, if the address book does not contain an entry with this id. 196 object, if the address book does not contain an entry with this id.
196 */ 197 */
197 Addressee findByUid( const QString & ); 198 Addressee findByUid( const QString & );
198 199
199 200
200 /** 201 /**
201 Returns a list of all addressees in the address book. This list can 202 Returns a list of all addressees in the address book. This list can
202 be sorted with @ref KABC::AddresseeList for example. 203 be sorted with @ref KABC::AddresseeList for example.
203 */ 204 */
204 Addressee::List allAddressees(); 205 Addressee::List allAddressees();
205 206
206 /** 207 /**
207 Find all entries with the specified name in the address book. Returns 208 Find all entries with the specified name in the address book. Returns
208 an empty list, if no entries could be found. 209 an empty list, if no entries could be found.
209 */ 210 */
210 Addressee::List findByName( const QString & ); 211 Addressee::List findByName( const QString & );
211 212
212 /** 213 /**
213 Find all entries with the specified email address in the address book. 214 Find all entries with the specified email address in the address book.
214 Returns an empty list, if no entries could be found. 215 Returns an empty list, if no entries could be found.
215 */ 216 */
216 Addressee::List findByEmail( const QString & ); 217 Addressee::List findByEmail( const QString & );
217 218
218 /** 219 /**
219 Find all entries wich have the specified category in the address book. 220 Find all entries wich have the specified category in the address book.
220 Returns an empty list, if no entries could be found. 221 Returns an empty list, if no entries could be found.
221 */ 222 */
222 Addressee::List findByCategory( const QString & ); 223 Addressee::List findByCategory( const QString & );
223 224
224 /** 225 /**
225 Return a string identifying this addressbook. 226 Return a string identifying this addressbook.
226 */ 227 */
227 virtual QString identifier(); 228 virtual QString identifier();
228 229
229 /** 230 /**
230 Used for debug output. 231 Used for debug output.
231 */ 232 */
232 void dump() const; 233 void dump() const;
233 234
234 void emitAddressBookLocked() { emit addressBookLocked( this ); } 235 void emitAddressBookLocked() { emit addressBookLocked( this ); }
235 void emitAddressBookUnlocked() { emit addressBookUnlocked( this ); } 236 void emitAddressBookUnlocked() { emit addressBookUnlocked( this ); }
236 void emitAddressBookChanged() { emit addressBookChanged( this ); } 237 void emitAddressBookChanged() { emit addressBookChanged( this ); }
237 238
238 /** 239 /**
239 Return list of all Fields known to the address book which are associated 240 Return list of all Fields known to the address book which are associated
240 with the given field category. 241 with the given field category.
241 */ 242 */
242 Field::List fields( int category = Field::All ); 243 Field::List fields( int category = Field::All );
243 244
244 /** 245 /**
245 Add custom field to address book. 246 Add custom field to address book.
246 247
247 @param label User visible label of the field. 248 @param label User visible label of the field.
248 @param category Ored list of field categories. 249 @param category Ored list of field categories.
249 @param key Identifier used as key for reading and writing the field. 250 @param key Identifier used as key for reading and writing the field.
250 @param app String used as application key for reading and writing 251 @param app String used as application key for reading and writing
251 the field. 252 the field.
252 */ 253 */
253 bool addCustomField( const QString &label, int category = Field::All, 254 bool addCustomField( const QString &label, int category = Field::All,
254 const QString &key = QString::null, 255 const QString &key = QString::null,
255 const QString &app = QString::null ); 256 const QString &app = QString::null );
256 257
257 258
258 /** 259 /**
259 Add address book resource. 260 Add address book resource.
260 */ 261 */
261 bool addResource( Resource * ); 262 bool addResource( Resource * );
262 263
263 /** 264 /**
264 Remove address book resource. 265 Remove address book resource.
265 */ 266 */
266 bool removeResource( Resource * ); 267 bool removeResource( Resource * );
267 268
268 /** 269 /**
269 Return pointer list of all resources. 270 Return pointer list of all resources.
270 */ 271 */
271 QPtrList<Resource> resources(); 272 QPtrList<Resource> resources();
272 273
273 /** 274 /**
274 Set the @p ErrorHandler, that is used by @ref error() to 275 Set the @p ErrorHandler, that is used by @ref error() to
275 provide gui-independend error messages. 276 provide gui-independend error messages.
276 */ 277 */
277 void setErrorHandler( ErrorHandler * ); 278 void setErrorHandler( ErrorHandler * );
278 279
279 /** 280 /**
280 Shows gui independend error messages. 281 Shows gui independend error messages.
281 */ 282 */
282 void error( const QString& ); 283 void error( const QString& );
283 284
284 /** 285 /**
285 Query all resources to clean up their lock files 286 Query all resources to clean up their lock files
286 */ 287 */
287 void cleanUp(); 288 void cleanUp();
288 289
289 signals: 290 signals:
290 /** 291 /**
291 Emitted, when the address book has changed on disk. 292 Emitted, when the address book has changed on disk.
292 */ 293 */
293 void addressBookChanged( AddressBook * ); 294 void addressBookChanged( AddressBook * );
294 295
295 /** 296 /**
296 Emitted, when the address book has been locked for writing. 297 Emitted, when the address book has been locked for writing.
297 */ 298 */
298 void addressBookLocked( AddressBook * ); 299 void addressBookLocked( AddressBook * );
299 300
300 /** 301 /**
301 Emitted, when the address book has been unlocked. 302 Emitted, when the address book has been unlocked.
302 */ 303 */
303 void addressBookUnlocked( AddressBook * ); 304 void addressBookUnlocked( AddressBook * );
304 305
305 protected: 306 protected:
306 void deleteRemovedAddressees(); 307 void deleteRemovedAddressees();
307 void setStandardResource( Resource * ); 308 void setStandardResource( Resource * );
308 Resource *standardResource(); 309 Resource *standardResource();
309 KRES::Manager<Resource> *resourceManager(); 310 KRES::Manager<Resource> *resourceManager();
310 311
312 void init(const QString &config, const QString &family);
313
311 private: 314 private:
312//US QPtrList<Resource> mDummy; // Remove in KDE 4 315//US QPtrList<Resource> mDummy; // Remove in KDE 4
313 316
314//US optimization
315 void init(const QString &config);
316
317 317
318 struct AddressBookData; 318 struct AddressBookData;
319 AddressBookData *d; 319 AddressBookData *d;
320}; 320};
321 321
322QDataStream &operator<<( QDataStream &, const AddressBook & ); 322QDataStream &operator<<( QDataStream &, const AddressBook & );
323QDataStream &operator>>( QDataStream &, AddressBook & ); 323QDataStream &operator>>( QDataStream &, AddressBook & );
324 324
325} 325}
326 326
327#endif 327#endif