akonadi/contact
contactgrouplineedit_p.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef AKONADI_CONTACTGROUPLINEEDIT_P_H
00023 #define AKONADI_CONTACTGROUPLINEEDIT_P_H
00024
00025 #include <akonadi/item.h>
00026 #include <kabc/addressee.h>
00027 #include <kabc/contactgroup.h>
00028 #include <klineedit.h>
00029
00030 class QAbstractItemModel;
00031 class QCompleter;
00032 class QModelIndex;
00033
00034 class KJob;
00035
00036 class ContactGroupLineEdit : public KLineEdit
00037 {
00038 Q_OBJECT
00039
00040 public:
00041 ContactGroupLineEdit( QWidget *parent = 0 );
00042
00043 void setCompletionModel( QAbstractItemModel *model );
00044
00045 bool containsReference() const;
00046
00047 void setContactData( const KABC::ContactGroup::Data &data );
00048
00049 KABC::ContactGroup::Data contactData() const;
00050
00051 void setContactReference( const KABC::ContactGroup::ContactReference &reference );
00052
00053 KABC::ContactGroup::ContactReference contactReference() const;
00054
00055 private Q_SLOTS:
00056 void autoCompleted( const QModelIndex& );
00057 void fetchDone( KJob* );
00058 void invalidateReference();
00059
00060 private:
00061 void updateView( const QString &uid, const QString &preferredEmail = QString() );
00062 void updateView( const Akonadi::Item &item, const QString &preferredEmail = QString() );
00063 QString requestPreferredEmail( const KABC::Addressee &contact ) const;
00064
00065 QCompleter *mCompleter;
00066 bool mContainsReference;
00067 KABC::ContactGroup::Data mContactData;
00068 KABC::ContactGroup::ContactReference mContactReference;
00069 };
00070
00071 #endif