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
22 //
26 enum EItemDataRole : int
27 {
29 TypeRole = Qt::ItemDataRole::UserRole,
45 };
46
66
72 // ReSharper disable once CppFunctionIsNotImplemented
73 Q_SIGNAL void addLineEditActions(QLineEdit* lineEdit, const QModelIndex& index) const;
74
78 explicit CommonItemDelegate(QObject* parent = nullptr);
79
86 [[nodiscard]] static EEditorType getEditorType(const QModelIndex& index);
87
91 QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
92
96 void setEditorData(QWidget* editor, const QModelIndex& index) const override;
97
101 void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const override;
102
106 void updateEditorGeometry(QWidget* editor, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
107
111 void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
112};
113
114}// 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:51
@ etStringList
Definition CommonItemDelegate.h:63
@ etDropDown
Definition CommonItemDelegate.h:54
@ etDefault
Definition CommonItemDelegate.h:52
@ etDropDownIndex
Definition CommonItemDelegate.h:55
@ etDropDownEdit
Definition CommonItemDelegate.h:56
@ etDoubleSpinBox
Definition CommonItemDelegate.h:60
@ etShortcut
Definition CommonItemDelegate.h:58
@ etSpinBox
Definition CommonItemDelegate.h:59
@ etDropDownFlags
Definition CommonItemDelegate.h:57
@ etColorEdit
Definition CommonItemDelegate.h:62
@ etULongLong
Definition CommonItemDelegate.h:61
@ etTextEdit
Definition CommonItemDelegate.h:53
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:27
@ MaximumRole
Definition CommonItemDelegate.h:35
@ IncrementRole
Definition CommonItemDelegate.h:37
@ TextColorRole
Definition CommonItemDelegate.h:42
@ MinimumRole
Definition CommonItemDelegate.h:33
@ AlignmentRole
Definition CommonItemDelegate.h:44
@ OptionsRole
Definition CommonItemDelegate.h:31
#define _MISC_CLASS
Definition misc/global.h:40
Definition Application.h:10