summaryrefslogtreecommitdiffstats
path: root/desktop-widgets/modeldelegates.h
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2015-09-03 14:20:19 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-10-30 10:36:49 -0700
commite49d6213ad129284a45d53c3fcdc03249e84efe2 (patch)
tree2946a666ab38af3375e7bb2b8c5dd887d4a7f9a1 /desktop-widgets/modeldelegates.h
parent588abd019fb2ed3f607682f2b6c7fe86a7a5bb90 (diff)
downloadsubsurface-e49d6213ad129284a45d53c3fcdc03249e84efe2.tar.gz
Move qt-ui to desktop-widgets
Since we have now destkop and mobile versions, 'qt-ui' was a very poor name choice for a folder that contains only destkop-enabled widgets. Also, move the graphicsview-common.h/cpp to subsurface-core because it doesn't depend on qgraphicsview, it merely implements all the colors that we use throughout Subsurface, and we will use colors on both desktop and mobile versions Same thing applies for metrics.h/cpp Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'desktop-widgets/modeldelegates.h')
-rw-r--r--desktop-widgets/modeldelegates.h141
1 files changed, 141 insertions, 0 deletions
diff --git a/desktop-widgets/modeldelegates.h b/desktop-widgets/modeldelegates.h
new file mode 100644
index 000000000..95701775a
--- /dev/null
+++ b/desktop-widgets/modeldelegates.h
@@ -0,0 +1,141 @@
+#ifndef MODELDELEGATES_H
+#define MODELDELEGATES_H
+
+#include <QStyledItemDelegate>
+#include <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;
+ const QSize& starSize() const;
+
+private:
+ QWidget *parentWidget;
+ QSize minStarSize;
+};
+
+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);
+ void reenableReplot(QWidget *widget, QAbstractItemDelegate::EndEditHint hint);
+};
+
+class TankUseDelegate : public QStyledItemDelegate {
+ Q_OBJECT
+public:
+ explicit TankUseDelegate(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;
+ virtual void setEditorData(QWidget * editor, const QModelIndex & index) const;
+};
+
+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, int step, QObject *parent = 0);
+ virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
+private:
+ int min;
+ int max;
+ int step;
+};
+
+class DoubleSpinBoxDelegate : public QStyledItemDelegate {
+ Q_OBJECT
+public:
+ DoubleSpinBoxDelegate(double min, double max, double step, QObject *parent = 0);
+ virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
+private:
+ double min;
+ double max;
+ double step;
+};
+
+class HTMLDelegate : public ProfilePrintDelegate {
+ Q_OBJECT
+public:
+ explicit HTMLDelegate(QObject *parent = 0);
+ virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
+ virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
+};
+
+class LocationFilterDelegate : public QStyledItemDelegate {
+ Q_OBJECT
+public:
+ LocationFilterDelegate(QObject *parent = 0);
+ void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const Q_DECL_OVERRIDE;
+ QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const Q_DECL_OVERRIDE;
+};
+
+#endif // MODELDELEGATES_H