Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qitemeditorfactory.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QITEMEDITORFACTORY_H
6#define QITEMEDITORFACTORY_H
7
8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtCore/qmetaobject.h>
10#include <QtCore/qbytearray.h>
11#include <QtCore/qhash.h>
12#include <QtCore/qvariant.h>
13
14QT_REQUIRE_CONFIG(itemviews);
15
16QT_BEGIN_NAMESPACE
17
18class QWidget;
19
20class Q_WIDGETS_EXPORT QItemEditorCreatorBase
21{
22public:
23 virtual ~QItemEditorCreatorBase();
24
25 virtual QWidget *createWidget(QWidget *parent) const = 0;
26 virtual QByteArray valuePropertyName() const = 0;
27};
28
29template <class T>
31{
32public:
33 inline explicit QItemEditorCreator(const QByteArray &valuePropertyName);
34 inline QWidget *createWidget(QWidget *parent) const override { return new T(parent); }
35 inline QByteArray valuePropertyName() const override { return propertyName; }
36
37private:
38 QByteArray propertyName;
39};
40
41template <class T>
43{
44public:
48 inline QWidget *createWidget(QWidget *parent) const override { return new T(parent); }
49 inline QByteArray valuePropertyName() const override { return propertyName; }
50
51private:
52 QByteArray propertyName;
53};
54
55
56template <class T>
57Q_INLINE_TEMPLATE QItemEditorCreator<T>::QItemEditorCreator(const QByteArray &avaluePropertyName)
58 : propertyName(avaluePropertyName) {}
59
60class Q_WIDGETS_EXPORT QItemEditorFactory
61{
62public:
63 inline QItemEditorFactory() {}
64 virtual ~QItemEditorFactory();
65
66 virtual QWidget *createEditor(int userType, QWidget *parent) const;
67 virtual QByteArray valuePropertyName(int userType) const;
68
69 void registerEditor(int userType, QItemEditorCreatorBase *creator);
70
71 static const QItemEditorFactory *defaultFactory();
72 static void setDefaultFactory(QItemEditorFactory *factory);
73
74private:
75 QHash<int, QItemEditorCreatorBase *> creatorMap;
76};
77
78QT_END_NAMESPACE
79
80#endif // QITEMEDITORFACTORY_H
const QWidget * widget(const QStyleOptionViewItem &option) const
QItemEditorFactory * f
QSizeF doTextLayout(int lineWidth) const
QRect displayRect(const QModelIndex &index, const QStyleOptionViewItem &option, const QRect &decorationRect, const QRect &checkRect) const
QRect textLayoutBounds(const QStyleOptionViewItem &option, const QRect &decorationRect, const QRect &checkRect) const
The QItemDelegate class provides display and editing facilities for data items from a model.
The QItemEditorCreatorBase class provides an abstract base class that must be subclassed when impleme...
The QItemEditorCreator class makes it possible to create item editor creator bases without subclassin...
QWidget * createWidget(QWidget *parent) const override
\reimp
QByteArray valuePropertyName() const override
\reimp
QItemEditorCreator(const QByteArray &valuePropertyName)
Constructs an editor creator object using valuePropertyName as the name of the property to be used fo...
The QItemEditorFactory class provides widgets for editing item data in views and delegates.
\inmodule QtCore
friend class QWidget
Definition qpainter.h:431
\inmodule QtCore\reentrant
Definition qpoint.h:231
The QStandardItemEditorCreator class provides the possibility to register widgets without having to s...
QByteArray valuePropertyName() const override
\reimp
QStandardItemEditorCreator()
Constructs an editor creator object.
QWidget * createWidget(QWidget *parent) const override
\reimp
QT_REQUIRE_CONFIG(itemviews)
static QString qPixmapSerial(quint64 i, bool enabled)
#define DBL_DIG