00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef AKONADI_CONTACTVIEWER_H
00023 #define AKONADI_CONTACTVIEWER_H
00024
00025 #include "akonadi-contact_export.h"
00026
00027 #include <akonadi/itemmonitor.h>
00028
00029 #include <QtGui/QWidget>
00030
00031 class KUrl;
00032
00033 namespace KABC {
00034 class Address;
00035 class Addressee;
00036 class PhoneNumber;
00037 }
00038
00039 namespace Akonadi {
00040
00074 class AKONADI_CONTACT_EXPORT ContactViewer : public QWidget, public Akonadi::ItemMonitor
00075 {
00076 Q_OBJECT
00077
00078 public:
00084 ContactViewer( QWidget *parent = 0 );
00085
00089 ~ContactViewer();
00090
00097 Akonadi::Item contact() const;
00098
00104 KABC::Addressee rawContact() const;
00105
00106 public Q_SLOTS:
00110 void setContact( const Akonadi::Item &contact );
00111
00117 void setRawContact( const KABC::Addressee &contact );
00118
00119 Q_SIGNALS:
00126 void urlClicked( const KUrl &url );
00127
00135 void emailClicked( const QString &name, const QString &email );
00136
00143 void phoneNumberClicked( const KABC::PhoneNumber &number );
00144
00151 void addressClicked( const KABC::Address &address );
00152
00153 private:
00157 virtual void itemChanged( const Item &contact );
00158
00163 virtual void itemRemoved();
00164
00165 private:
00166
00167 class Private;
00168 Private* const d;
00169
00170 Q_PRIVATE_SLOT( d, void slotMailClicked( const QString&, const QString& ) )
00171 Q_PRIVATE_SLOT( d, void slotUrlClicked( const QString& ) )
00172 Q_PRIVATE_SLOT( d, void slotParentCollectionFetched( KJob* ) )
00173
00174 };
00175
00176 }
00177
00178 #endif