pgLab/pglablib/AbstractEditorFactory.h

26 lines
783 B
C
Raw Normal View History

#ifndef ABSTRACTEDITORFACTORY_H
#define ABSTRACTEDITORFACTORY_H
#include <QObject>
class QWidget;
class QStyleOptionViewItem;
class QModelIndex;
class QAbstractItemModel;
/// Base class for factory classes that create item editors used in views.
///
/// Specifically the PgLabItemDelegate supports the use of EditorFactories.
class AbstractEditorFactory: public QObject {
Q_OBJECT
public:
using QObject::QObject;
virtual QWidget *createEditor (QWidget *parent, const QStyleOptionViewItem &option,
const QModelIndex &index) const = 0;
virtual void setEditorData(QWidget *editor, const QModelIndex &index) const = 0;
virtual void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const = 0;
};
#endif // ABSTRACTEDITORFACTORY_H