4#ifndef QQMLJSREGISTERCONTENT_P_H
5#define QQMLJSREGISTERCONTENT_P_H
18#include <QtCore/qhash.h>
19#include <QtCore/qstring.h>
64 bool isValid()
const {
return !m_storedType.isNull(); }
66 QString descriptiveName()
const;
70 return a.m_storedType ==
b.m_storedType &&
a.m_variant ==
b.m_variant
71 &&
a.m_scope ==
b.m_scope &&
a.m_content ==
b.m_content;
79 bool isType()
const {
return m_content.index() ==
Type; }
80 bool isProperty()
const {
return m_content.index() == Property; }
82 bool isMethod()
const {
return m_content.index() == Method; }
84 bool isConversion()
const {
return m_content.index() == Conversion; }
87 bool isWritable()
const;
96 return std::get<std::pair<QQmlJSMetaEnum, QString>>(m_content).
first;
100 return std::get<std::pair<QQmlJSMetaEnum, QString>>(m_content).second;
107 return std::get<ConvertedTypes>(m_content).result;
112 return std::get<ConvertedTypes>(m_content).origins;
119 seed =
qHashMulti(
seed, registerContent.m_storedType, registerContent.m_content.index(),
120 registerContent.m_scope, registerContent.m_variant);
121 switch (registerContent.m_content.index()) {
123 return qHash(std::get<QQmlJSScope::ConstPtr>(registerContent.m_content),
seed);
125 return qHash(std::get<QQmlJSMetaProperty>(registerContent.m_content),
seed);
127 return qHash(std::get<std::pair<QQmlJSMetaEnum, QString>>(registerContent.m_content),
131 case ImportNamespace:
132 return qHash(std::get<uint>(registerContent.m_content),
seed);
134 return qHash(std::get<ConvertedTypes>(registerContent.m_content),
seed);
137 Q_UNREACHABLE_RETURN(
seed);
159 uint importNamespaceStringId, ContentVariant
variant,
171 result.m_storedType = newStoredType;
176 enum ContentKind {
Type, Property, Enum, Method, ImportNamespace, Conversion };
178 struct ConvertedTypes
188 friend bool operator==(
const ConvertedTypes &
a,
const ConvertedTypes &
b)
190 return a.origins ==
b.origins &&
a.result ==
b.result;
193 friend bool operator!=(
const ConvertedTypes &
a,
const ConvertedTypes &
b)
199 using Content = std::variant<
202 std::pair<QQmlJSMetaEnum, QString>,
210 : m_storedType(storedType), m_scope(scope), m_variant(
variant)
217 ContentVariant m_variant =
Unknown;
static JNINativeMethod methods[]
QQmlJSRegisterContent storedIn(const QQmlJSScope::ConstPtr &newStoredType) const
QQmlJSRegisterContent()=default
QQmlJSScope::ConstPtr conversionResult() const
QQmlJSMetaProperty property() const
QQmlJSScope::ConstPtr scopeType() const
uint importNamespace() const
bool isConversion() const
QList< QQmlJSScope::ConstPtr > conversionOrigins() const
bool isImportNamespace() const
ContentVariant variant() const
friend size_t qHash(const QQmlJSRegisterContent ®isterContent, size_t seed=0)
QQmlJSScope::ConstPtr type() const
QQmlJSScope::ConstPtr storedType() const
friend bool operator!=(const QQmlJSRegisterContent &a, const QQmlJSRegisterContent &b)
QQmlJSMetaEnum enumeration() const
friend bool operator==(const QQmlJSRegisterContent &a, const QQmlJSRegisterContent &b)
@ JavaScriptScopeProperty
@ ExtensionObjectProperty
QString enumMember() const
bool isEnumeration() const
QList< QQmlJSMetaMethod > method() const
QDeferredSharedPointer< const QQmlJSScope > ConstPtr
\macro QT_RESTRICTED_CAST_FROM_ASCII
Combined button and popup list for selecting options.
constexpr bool operator!=(const timespec &t1, const timespec &t2)
static const QCssKnownValue origins[NumKnownOrigins - 1]
size_t qHash(const QFileSystemWatcherPathKey &key, size_t seed=0)
constexpr QtPrivate::QHashMultiReturnType< T... > qHashMulti(size_t seed, const T &... args) noexcept(std::conjunction_v< QtPrivate::QNothrowHashable< T >... >)
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
[7]
GLsizei GLenum GLenum * types
static Q_CONSTINIT QBasicAtomicInteger< unsigned > seed
bool operator==(const QRandomGenerator &rng1, const QRandomGenerator &rng2)