00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef AKONADI_CONTACTEDITOR_H
00023 #define AKONADI_CONTACTEDITOR_H
00024
00025 #include "akonadi-contact_export.h"
00026
00027 #include <QtGui/QWidget>
00028
00029 namespace KABC {
00030 class Addressee;
00031 }
00032
00033 namespace Akonadi {
00034
00035 class AbstractContactEditorWidget;
00036 class Collection;
00037 class Item;
00038
00083 class AKONADI_CONTACT_EXPORT ContactEditor : public QWidget
00084 {
00085 Q_OBJECT
00086
00087 public:
00091 enum Mode
00092 {
00093 CreateMode,
00094 EditMode
00095 };
00096
00103 explicit ContactEditor( Mode mode, QWidget *parent = 0 );
00104
00112 ContactEditor( Mode mode, AbstractContactEditorWidget *editorWidget, QWidget *parent = 0 );
00113
00117 virtual ~ContactEditor();
00118
00125 void setContactTemplate( const KABC::Addressee &contact );
00126
00131 void setDefaultAddressBook( const Akonadi::Collection &addressbook );
00132
00133 public Q_SLOTS:
00137 void loadContact( const Akonadi::Item &contact );
00138
00142 bool saveContact();
00143
00144 Q_SIGNALS:
00149 void contactStored( const Akonadi::Item &contact );
00150
00156 void error( const QString &errorMsg );
00157
00158 private:
00159
00160 class Private;
00161 Private* const d;
00162
00163 Q_PRIVATE_SLOT( d, void itemFetchDone( KJob* ) )
00164 Q_PRIVATE_SLOT( d, void parentCollectionFetchDone( KJob* ) )
00165 Q_PRIVATE_SLOT( d, void storeDone( KJob* ) )
00166 Q_PRIVATE_SLOT( d, void itemChanged( const Akonadi::Item&, const QSet<QByteArray>& ) )
00167
00168 };
00169
00170 }
00171
00172 #endif