KDEUI
kwidgetitemdelegate.h
Go to the documentation of this file.00001
00022 #ifndef KWIDGETITEMDELEGATE_H
00023 #define KWIDGETITEMDELEGATE_H
00024
00025 #include <QtCore/QEvent>
00026 #include <QtCore/QList>
00027 #include <QtCore/QPersistentModelIndex>
00028 #include <QtGui/QAbstractItemDelegate>
00029
00030 #include <kdeui_export.h>
00031
00032 class QObject;
00033 class QPainter;
00034 class QStyleOption;
00035 class QStyleOptionViewItem;
00036 class QAbstractItemView;
00037
00038 class KWidgetItemDelegatePrivate;
00039 class KWidgetItemDelegatePool;
00040
00048 class KDEUI_EXPORT KWidgetItemDelegate : public QAbstractItemDelegate
00049 {
00050 Q_OBJECT
00051
00052 public:
00059 explicit KWidgetItemDelegate(QAbstractItemView *itemView, QObject *parent = 0);
00060
00064 virtual ~KWidgetItemDelegate();
00065
00071 QAbstractItemView *itemView() const;
00072
00078 QPersistentModelIndex focusedIndex() const;
00079
00080 protected:
00093 virtual QList<QWidget*> createItemWidgets() const = 0;
00094
00108 virtual void updateItemWidgets(const QList<QWidget*> widgets,
00109 const QStyleOptionViewItem &option,
00110 const QPersistentModelIndex &index) const = 0;
00111
00125 KDE_DEPRECATED void paintWidgets(QPainter *painter, const QStyleOptionViewItem &option,
00126 const QPersistentModelIndex &index) const;
00127
00137 void setBlockedEventTypes(QWidget *widget, QList<QEvent::Type> types) const;
00138
00146 QList<QEvent::Type> blockedEventTypes(QWidget *widget) const;
00147
00148 private:
00149
00150 friend class KWidgetItemDelegatePool;
00151 friend class EventListener;
00152 KWidgetItemDelegatePrivate *const d;
00153 Q_PRIVATE_SLOT(d, void _k_slotRowsInserted(const QModelIndex&,int,int))
00154 Q_PRIVATE_SLOT(d, void _k_slotRowsAboutToBeRemoved(const QModelIndex&,int,int))
00155 Q_PRIVATE_SLOT(d, void _k_slotDataChanged(const QModelIndex&,const QModelIndex&))
00156 Q_PRIVATE_SLOT(d, void _k_slotLayoutChanged())
00157 Q_PRIVATE_SLOT(d, void _k_slotModelReset())
00158
00159 };
00160
00161 #endif