16#ifndef UILIBPROPERTIES_H
17#define UILIBPROPERTIES_H
21#include <QtCore/qobject.h>
22#include <QtCore/qmetaobject.h>
23#include <QtCore/qlocale.h>
24#include <QtCore/qcoreapplication.h>
26#include <QtWidgets/qwidget.h>
32#ifdef QFORMINTERNAL_NAMESPACE
33namespace QFormInternal
37class QAbstractFormBuilder;
40QDESIGNER_UILIB_EXPORT DomProperty *variantToDomProperty(QAbstractFormBuilder *abstractFormBuilder,
const QMetaObject *meta,
const QString &propertyName,
const QVariant &value);
44QDESIGNER_UILIB_EXPORT QVariant domPropertyToVariant(QAbstractFormBuilder *abstractFormBuilder,
const QMetaObject *meta,
const DomProperty *property);
51 Q_PROPERTY(Qt::ItemFlags itemFlags READ fakeItemFlags)
93template <
class EnumType>
94inline EnumType
enumKeyToValue(
const QMetaEnum &metaEnum,
const char *key,
const EnumType* =
nullptr)
96 int val = metaEnum.keyToValue(key);
99 uiLibWarning(QCoreApplication::translate(
"QFormBuilder",
"The enumeration-value '%1' is invalid. The default value '%2' will be used instead.")
100 .arg(QString::fromUtf8(key), QString::fromUtf8(metaEnum.key(0))));
101 val = metaEnum.value(0);
103 return static_cast<EnumType>(val);
107template <
class EnumType>
108inline EnumType
enumKeysToValue(
const QMetaEnum &metaEnum,
const char *keys,
const EnumType* =
nullptr)
110 int val = metaEnum.keysToValue(keys);
113 uiLibWarning(QCoreApplication::translate(
"QFormBuilder",
"The flag-value '%1' is invalid. Zero will be used instead.")
114 .arg(QString::fromUtf8(keys)));
117 return static_cast<EnumType>(QFlag(val));
121template <
class QObjectType>
124 const int e_index = QObjectType::staticMetaObject.indexOfProperty(name);
125 Q_ASSERT(e_index != -1);
126 return QObjectType::staticMetaObject.property(e_index).enumerator();
130template <
class QObjectType,
class EnumType>
133 const QMetaEnum me = metaEnum<QObjectType>(enumName);
134 return enumKeyToValue<EnumType>(me, key);
137#ifdef QFORMINTERNAL_NAMESPACE
Combined button and popup list for selecting options.
#define QDESIGNER_UILIB_EXPORT