akonadi/contact
contactgroupeditordelegate_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_CONTACTGROUPEDITORDELEGATE_P_H
00023 #define AKONADI_CONTACTGROUPEDITORDELEGATE_P_H
00024
00025 #include <KLineEdit>
00026
00027 #include <QtGui/QStyledItemDelegate>
00028
00029 #include <akonadi/item.h>
00030
00031 namespace Akonadi
00032 {
00033
00034 class ContactLineEdit : public KLineEdit
00035 {
00036 Q_OBJECT
00037
00038 public:
00039 explicit ContactLineEdit( bool isReference, QWidget *parent = 0 );
00040
00041 bool isReference() const;
00042 Akonadi::Item completedItem() const;
00043
00044 Q_SIGNALS:
00045 void completed( QWidget* );
00046
00047 private Q_SLOTS:
00048 void completed( const QModelIndex& );
00049 void slotTextEdited();
00050
00051 private:
00052 bool mIsReference;
00053 Item mItem;
00054 };
00055
00056 class ContactGroupEditorDelegate : public QStyledItemDelegate
00057 {
00058 Q_OBJECT
00059
00060 public:
00061 explicit ContactGroupEditorDelegate( QAbstractItemView *view, QObject *parent = 0 );
00062 ~ContactGroupEditorDelegate();
00063
00064 virtual QWidget* createEditor( QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index ) const;
00065
00066 virtual void setEditorData( QWidget *editor, const QModelIndex &index ) const;
00067 virtual void setModelData( QWidget *editor, QAbstractItemModel *model, const QModelIndex &index ) const;
00068
00069 virtual void paint( QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index ) const;
00070
00071 QSize sizeHint( const QStyleOptionViewItem& option, const QModelIndex& index ) const;
00072
00073 virtual bool editorEvent( QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index );
00074
00075 private Q_SLOTS:
00076 void completed( QWidget* );
00077 void setFirstColumnAsCurrent();
00078
00079 private:
00080 class Private;
00081 Private* const d;
00082 };
00083
00084 }
00085
00086 #endif