Scanframe Modular Application 0.1.0
Loading...
Searching...
No Matches
CommonItemDelegate.h
Go to the documentation of this file.
1#pragma once
2
3#include <QStyledItemDelegate>
4#include <misc/global.h>
5
6namespace sf
7{
8
12class _MISC_CLASS CommonItemDelegate : public QStyledItemDelegate
13{
14 Q_OBJECT
15
16 public:
20 typedef QList<QPair<QVariant, QString>> OptionsType;
21 //
25 enum EItemDataRole : int
26 {
28 TypeRole = Qt::ItemDataRole::UserRole,
44 };
45
65
71 // ReSharper disable once CppFunctionIsNotImplemented
72 Q_SIGNAL void addLineEditActions(QLineEdit* lineEdit, const QModelIndex& index) const;
73
77 explicit CommonItemDelegate(QObject* parent = nullptr);
78
85 [[nodiscard]] static EEditorType getEditorType(const QModelIndex& index);
86
90 QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
91
95 void setEditorData(QWidget* editor, const QModelIndex& index) const override;
96
100 void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const override;
101
105 void updateEditorGeometry(QWidget* editor, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
106
110 void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
111};
112
113}// namespace sf
Allows a list model to determine the editor for a field.
Definition CommonItemDelegate.h:13
void setEditorData(QWidget *editor, const QModelIndex &index) const override
Overridden from base class.
static EEditorType getEditorType(const QModelIndex &index)
Gets the editor type by calling the modal data() method with TypeRole.
CommonItemDelegate(QObject *parent=nullptr)
Constructor.
EEditorType
Possible inline editors for a column in the list model.
Definition CommonItemDelegate.h:50
@ etStringList
Definition CommonItemDelegate.h:62
@ etDropDown
Definition CommonItemDelegate.h:53
@ etDefault
Definition CommonItemDelegate.h:51
@ etDropDownIndex
Definition CommonItemDelegate.h:54
@ etDropDownEdit
Definition CommonItemDelegate.h:55
@ etDoubleSpinBox
Definition CommonItemDelegate.h:59
@ etShortcut
Definition CommonItemDelegate.h:57
@ etSpinBox
Definition CommonItemDelegate.h:58
@ etDropDownFlags
Definition CommonItemDelegate.h:56
@ etColorEdit
Definition CommonItemDelegate.h:61
@ etULongLong
Definition CommonItemDelegate.h:60
@ etTextEdit
Definition CommonItemDelegate.h:52
QList< QPair< QVariant, QString > > OptionsType
Type for the named options available in case of a dropdown.
Definition CommonItemDelegate.h:20
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Overridden from base class.
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Overridden from base class.
Q_SIGNAL void addLineEditActions(QLineEdit *lineEdit, const QModelIndex &index) const
Signal allowing adding actions to a line edit.
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
Overridden from base class.
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Overridden from base class.
EItemDataRole
Extension on the Qt::ItemDataRole enumerate.
Definition CommonItemDelegate.h:26
@ MaximumRole
Definition CommonItemDelegate.h:34
@ IncrementRole
Definition CommonItemDelegate.h:36
@ TextColorRole
Definition CommonItemDelegate.h:41
@ MinimumRole
Definition CommonItemDelegate.h:32
@ AlignmentRole
Definition CommonItemDelegate.h:43
@ OptionsRole
Definition CommonItemDelegate.h:30
#define _MISC_CLASS
Definition misc/global.h:40
Definition Application.h:10