00001 #ifndef JOBPROPERTYDELEGATE_H
00002 #define JOBPROPERTYDELEGATE_H
00003
00010 #include "jobpropertymodel.h"
00011 #include "jobpropertyitem.h"
00012 #include <QtGui/QItemDelegate>
00013 #include <QEvent>
00014
00018 class JobPropertyDelegate: public QItemDelegate
00019 {
00020 Q_OBJECT;
00021
00022 public:
00023 JobPropertyDelegate(QObject *parent);
00024 virtual ~JobPropertyDelegate();
00025
00026 virtual bool eventFilter(QObject *object, QEvent *event);
00027
00028
00029 virtual void paint(QPainter *painter, const QStyleOptionViewItem &option,
00030 const QModelIndex &index) const;
00031
00032 virtual QSize sizeHint(const QStyleOptionViewItem &option,
00033 const QModelIndex &index) const;
00034
00035 virtual QWidget *createEditor(QWidget *parent,
00036 const QStyleOptionViewItem &option,
00037 const QModelIndex &index) const;
00038
00039 virtual void setEditorData(QWidget *editor,
00040 const QModelIndex &index) const;
00041
00042 virtual void setModelData(QWidget *editor,
00043 QAbstractItemModel *model,
00044 const QModelIndex &index) const;
00045
00046 virtual void updateEditorGeometry(QWidget *editor,
00047 const QStyleOptionViewItem &option,
00048 const QModelIndex &index) const;
00049
00050 signals:
00054 void editorOpened();
00058 void editorClosed();
00059 public slots:
00060 void sync();
00061 void slotDestroyed(QObject *object);
00062 void onCustomContextMenuRequested(const QPoint & pos);
00063
00064 private:
00065 bool m_syncing;
00066 mutable QObject *m_lastEdited;
00067
00068
00069 };
00070
00071 #endif // JOBPROPERTYDELEGATE_H