make webinterface translatable. there are around 20 short strings, all with context...
[kdenetwork.git] / kopete / libkopete / kabcpersistence.h
blobf109bb6083c3d3ad13e524783b0f2125529e03b3
1 /*
2 addressbooklink.h - Manages operations involving the KDE Address Book
4 Copyright (c) 2005 Will Stephenson <wstephenson@kde.org>
6 Kopete (c) 2002-2004 by the Kopete developers <kopete-devel@kde.org>
8 *************************************************************************
9 * *
10 * This library is free software; you can redistribute it and/or *
11 * modify it under the terms of the GNU Lesser General Public *
12 * License as published by the Free Software Foundation; either *
13 * version 2 of the License, or (at your option) any later version. *
14 * *
15 *************************************************************************
18 #ifndef KABCPERSISTENCE_H
19 #define KABCPERSISTENCE_H
21 #include "kopete_export.h"
23 // Goal is to have all the address book modifying code in one place
24 // Currently in
25 // *) Add Contact Wizard
26 // *) KopeteMetaContact
27 // *) KopeteAddrBookExport
28 // *) KABC Export Wizard - TODO - think about sequence of events when adding addressees AND writing their IM data. - Extra save should be unnecessary because we are sharing a kabc instance
29 // *) Select addressbook entry
31 namespace KABC
33 class AddressBook;
34 class Resource;
37 namespace Kopete
40 class MetaContact;
42 class KOPETE_EXPORT KABCPersistence : public QObject
44 Q_OBJECT
45 public:
46 /**
47 * \brief Retrieve the instance of AccountManager.
49 * The account manager is a singleton class of which only a single
50 * instance will exist. If no manager exists yet this function will
51 * create one for you.
53 * \return the instance of the AccountManager
55 static KABCPersistence* self();
57 explicit KABCPersistence( QObject * parent = 0, const char * name = 0 );
58 ~KABCPersistence();
59 /**
60 * @brief Access Kopete's KDE address book instance
62 static KABC::AddressBook* addressBook();
63 /**
64 * @brief Change the KABC data associated with this metacontact
66 * The KABC exposed data changed, so change it in KABC.
67 * Replaces Kopete::MetaContact::updateKABC()
69 void write( MetaContact * mc );
71 /**
72 * @brief Remove any KABC data for this meta contact
74 void removeKABC( MetaContact * mc );
76 /**
77 * Check for any new addresses added to this contact's KABC entry
78 * and prompt if they should be added in Kopete too.
79 * @return whether any contacts were added from KABC.
81 bool syncWithKABC( MetaContact * mc );
83 /**
84 * Request an address book write, will be delayed to bundle any others happening around the same time
86 void writeAddressBook( KABC::Resource * res );
87 protected:
89 static void splitField( const QString &str, QString &app, QString &name, QString &value );
90 protected slots:
91 /**
92 * Perform a delayed address book write
94 void slotWriteAddressBook();
95 private:
96 class Private;
97 Private *d;
100 } // end namespace Kopete
102 #endif // KABCPERSISTENCE_H