28 static void forwardSignal(
29 const QObject* sender,
const QObject* resender,
const char* signal);
31 template<
typename PARENT_TYPE>
32 static const PARENT_TYPE* constFindParent(
const QObject*
object);
34 template<
typename PARENT_TYPE>
35 static PARENT_TYPE* findParent(QObject*
object);
37 template<
typename QOBJECT,
typename ENUM>
38 static ENUM toQEnumValue(
const char* enumName,
int value);
40 template<
typename QOBJECT,
typename ENUM>
41 static std::vector<ENUM> allQEnumValues(
const char* enumName);
50 #include <QtCore/QObject>
51 #include <QtCore/QMetaObject>
52 #include <QtCore/QMetaEnum>
57 template<
typename PARENT_TYPE>
60 return findParent<PARENT_TYPE>(
const_cast<QObject*
>(object));
63 template<
typename PARENT_TYPE>
67 while (it != NULL && qobject_cast<PARENT_TYPE*>(it) == NULL)
69 return qobject_cast<PARENT_TYPE*>(it);
73 template<
typename QOBJECT,
typename ENUM>
76 const QMetaObject& metaObj = QOBJECT::staticMetaObject;
77 const int enumIndex = metaObj.indexOfEnumerator(enumName);
78 if (enumIndex != -1) {
79 const QMetaEnum metaEnum = metaObj.enumerator(enumIndex);
80 if (metaEnum.valueToKey(value) !=
nullptr)
81 return static_cast<ENUM>(value);
84 return static_cast<ENUM
>(value);
93 template<
typename QOBJECT,
typename ENUM>
96 std::vector<ENUM> enumValueVec;
97 const int enumIndex = QOBJECT::staticMetaObject.indexOfEnumerator(enumName);
98 if (enumIndex != -1) {
99 const QMetaEnum metaEnum = QOBJECT::staticMetaObject.enumerator(enumIndex);
100 enumValueVec.reserve(metaEnum.keyCount());
101 for (
int i = 0; i < metaEnum.keyCount(); ++i) {
102 const int enumValueAsInt = metaEnum.value(i);
103 if (enumValueAsInt != -1)
104 enumValueVec.push_back(static_cast<ENUM>(enumValueAsInt));
Provides a collection of tools around QObject.
Definition: qobject_utils.h:25
static ENUM toQEnumValue(const char *enumName, int value)
Safe cast of an integer to a Q_ENUM value.
Definition: qobject_utils.h:74
#define QTTOOLS_CORE_EXPORT
Definition: core.h:27
Definition: grid_numbering.cpp:19
static PARENT_TYPE * findParent(QObject *object)
Definition: qobject_utils.h:64
static const PARENT_TYPE * constFindParent(const QObject *object)
Definition: qobject_utils.h:58
static std::vector< ENUM > allQEnumValues(const char *enumName)
All enumerator values of QOBJECT::ENUM returned in a single array.
Definition: qobject_utils.h:94