mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-01 06:30:26 +00:00
69903903d2
This commit is the start of the Editable Model work for the planner, it creates a new delegate and shares the code for the model that creates the gas types, so we only need to change in one place to add new gases. The table is already edition-enabled, but the outcome is still undone, next commit - put all together. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
61 lines
2.3 KiB
C++
61 lines
2.3 KiB
C++
#ifndef MODELDELEGATES_H
|
|
#define MODELDELEGATES_H
|
|
|
|
#include <QStyledItemDelegate>
|
|
class QComboBox;
|
|
|
|
class StarWidgetsDelegate : public QStyledItemDelegate {
|
|
Q_OBJECT
|
|
public:
|
|
explicit StarWidgetsDelegate(QWidget* parent = 0);
|
|
virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
|
virtual QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
|
private:
|
|
QWidget *parentWidget;
|
|
};
|
|
|
|
class ComboBoxDelegate : public QStyledItemDelegate{
|
|
Q_OBJECT
|
|
public:
|
|
explicit ComboBoxDelegate(QAbstractItemModel *model, QObject* parent = 0);
|
|
virtual QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
|
virtual void setEditorData(QWidget* editor, const QModelIndex& index) const;
|
|
virtual void updateEditorGeometry(QWidget* editor, const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
|
virtual bool eventFilter(QObject* object, QEvent* event);
|
|
public slots:
|
|
void testActivation(const QString& s);
|
|
virtual void revertModelData(QWidget* widget, QAbstractItemDelegate::EndEditHint hint) = 0;
|
|
protected:
|
|
QAbstractItemModel *model;
|
|
};
|
|
|
|
class TankInfoDelegate : public ComboBoxDelegate{
|
|
Q_OBJECT
|
|
public:
|
|
explicit TankInfoDelegate(QObject* parent = 0);
|
|
virtual void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const;
|
|
virtual QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
|
public slots:
|
|
void revertModelData(QWidget* widget, QAbstractItemDelegate::EndEditHint hint);
|
|
};
|
|
|
|
class WSInfoDelegate : public ComboBoxDelegate{
|
|
Q_OBJECT
|
|
public:
|
|
explicit WSInfoDelegate(QObject* parent = 0);
|
|
virtual void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const;
|
|
virtual QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
|
public slots:
|
|
void revertModelData(QWidget* widget, QAbstractItemDelegate::EndEditHint hint);
|
|
};
|
|
|
|
class AirTypesDelegate : public ComboBoxDelegate{
|
|
Q_OBJECT
|
|
public:
|
|
explicit AirTypesDelegate(QObject* parent = 0);
|
|
virtual void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const;
|
|
public slots:
|
|
void revertModelData(QWidget* widget, QAbstractItemDelegate::EndEditHint hint);
|
|
};
|
|
|
|
#endif
|