15#ifndef UILIBPROPERTIES_H
16#define UILIBPROPERTIES_H
20#include <QtCore/qobject.h>
21#include <QtCore/qmetaobject.h>
22#include <QtCore/qlocale.h>
23#include <QtCore/qcoreapplication.h>
25#include <QtWidgets/qwidget.h>
31#ifdef QFORMINTERNAL_NAMESPACE
32namespace QFormInternal
36class QAbstractFormBuilder;
39QDESIGNER_UILIB_EXPORT DomProperty *variantToDomProperty(QAbstractFormBuilder *abstractFormBuilder,
const QMetaObject *meta,
const QString &propertyName,
const QVariant &value);
43QDESIGNER_UILIB_EXPORT QVariant domPropertyToVariant(QAbstractFormBuilder *abstractFormBuilder,
const QMetaObject *meta,
const DomProperty *property);
50 Q_PROPERTY(Qt::ItemFlags itemFlags READ fakeItemFlags)
92template <
class EnumType>
93inline EnumType
enumKeyToValue(
const QMetaEnum &metaEnum,
const char *key,
const EnumType* =
nullptr)
95 int val = metaEnum.keyToValue(key);
98 uiLibWarning(QCoreApplication::translate(
"QFormBuilder",
"The enumeration-value '%1' is invalid. The default value '%2' will be used instead.")
99 .arg(QString::fromUtf8(key), QString::fromUtf8(metaEnum.key(0))));
100 val = metaEnum.value(0);
102 return static_cast<EnumType>(val);
106template <
class EnumType>
107inline EnumType
enumKeysToValue(
const QMetaEnum &metaEnum,
const char *keys,
const EnumType* =
nullptr)
109 int val = metaEnum.keysToValue(keys);
112 uiLibWarning(QCoreApplication::translate(
"QFormBuilder",
"The flag-value '%1' is invalid. Zero will be used instead.")
113 .arg(QString::fromUtf8(keys)));
116 return static_cast<EnumType>(QFlag(val));
120template <
class QObjectType>
123 const int e_index = QObjectType::staticMetaObject.indexOfProperty(name);
124 Q_ASSERT(e_index != -1);
125 return QObjectType::staticMetaObject.property(e_index).enumerator();
129template <
class QObjectType,
class EnumType>
132 const QMetaEnum me = metaEnum<QObjectType>(enumName);
133 return enumKeyToValue<EnumType>(me, key);
136#ifdef QFORMINTERNAL_NAMESPACE
Combined button and popup list for selecting options.
#define QDESIGNER_UILIB_EXPORT