ImagingTools Core SDK
CNumericItemDelegate.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtWidgets/QStyledItemDelegate>
7
8
9namespace imtwidgets
10{
11
12
13class CNumericItemDelegate: public QStyledItemDelegate
14{
15 Q_OBJECT
16public:
17
18 enum Type
19 {
20 SpinInt = QMetaType::Int,
21 SpinDouble = QMetaType::Double,
22 };
23
24 CNumericItemDelegate(Type type = SpinInt, QObject* parent = 0);
25 virtual ~CNumericItemDelegate();
26
27 void SetMaximum(int max);
28 void SetMinimum(int min);
29 void SetDecimals(int _decimal);
30 void SetButtonSymbols(QAbstractSpinBox::ButtonSymbols bs);
31
32 // reimplemented (QStyledItemDelegate)
33 virtual QWidget* createEditor(
34 QWidget* parent,
35 const QStyleOptionViewItem& option,
36 const QModelIndex& index) const override;
37 virtual void setEditorData(QWidget* editor, const QModelIndex& index) const override;
38 virtual void setModelData(QWidget* editor, QAbstractItemModel*model, const QModelIndex& index) const override;
39 virtual void updateEditorGeometry(QWidget* editor, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
40
41protected:
42 QAbstractSpinBox::ButtonSymbols m_buttonSimbols;
43 int m_max;
44 int m_min;
45 int m_decimal;
46 Type m_type;
47 };
48
49
50} // namespace imtwidgets
51
52