mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 13:10:19 +00:00
af9d62bac3
Based on Glance's idea on rewritting the Delegates, but we don't need to redo the wheel as Qt already gives us the correct Delegate, we just need to set some boundaries on it before returning. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
111 lines
3.7 KiB
C++
111 lines
3.7 KiB
C++
#ifndef MODELDELEGATES_H
|
|
#define MODELDELEGATES_H
|
|
|
|
#include <QStyledItemDelegate>
|
|
class QComboBox;
|
|
class QPainter;
|
|
|
|
class DiveListDelegate : public QStyledItemDelegate {
|
|
public:
|
|
explicit DiveListDelegate(QObject *parent = 0)
|
|
: QStyledItemDelegate(parent)
|
|
{
|
|
}
|
|
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
|
};
|
|
|
|
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 &currString = QString());
|
|
void testActivation(const QModelIndex &currIndex);
|
|
//HACK: try to get rid of this in the future.
|
|
void fakeActivation();
|
|
void fixTabBehavior();
|
|
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);
|
|
};
|
|
|
|
/* ProfilePrintDelagate:
|
|
* this delegate is used to modify the look of the table that is printed
|
|
* bellow profiles.
|
|
*/
|
|
class ProfilePrintDelegate : public QStyledItemDelegate {
|
|
public:
|
|
explicit ProfilePrintDelegate(QObject *parent = 0);
|
|
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
|
};
|
|
|
|
class SpinBoxDelegate : public QStyledItemDelegate {
|
|
Q_OBJECT
|
|
public:
|
|
SpinBoxDelegate(int min, int max, QObject *parent = 0);
|
|
virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
|
private:
|
|
int min;
|
|
int max;
|
|
};
|
|
|
|
class DoubleSpinBoxDelegate : public QStyledItemDelegate {
|
|
Q_OBJECT
|
|
public:
|
|
DoubleSpinBoxDelegate(qreal min, qreal max, QObject *parent = 0);
|
|
virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
|
private:
|
|
int min;
|
|
int max;
|
|
};
|
|
|
|
#endif // MODELDELEGATES_H
|