1// Copyright (C) 2019 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
4#ifndef QQMLTYPEMODULEVERSION_P_H
5#define QQMLTYPEMODULEVERSION_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtQml/qtqmlglobal.h>
19#include <QtQml/private/qqmltype_p.h>
20#include <QtQml/private/qqmltypemodule_p.h>
21#include <QtCore/qversionnumber.h>
22
23QT_BEGIN_NAMESPACE
24
25class QQmlTypeModule;
26class QQmlType;
27class QHashedStringRef;
28
29namespace QV4 {
30struct String;
31}
32
33class QQmlTypeModuleVersion
34{
35public:
36 QQmlTypeModuleVersion();
37 QQmlTypeModuleVersion(QQmlTypeModule *, QTypeRevision);
38 QQmlTypeModuleVersion(const QQmlTypeModuleVersion &);
39 QQmlTypeModuleVersion &operator=(const QQmlTypeModuleVersion &);
40
41 template<typename String>
42 QQmlType type(String name) const
43 {
44 if (!m_module)
45 return QQmlType();
46 return m_module->type(name, QTypeRevision::isValidSegment(segment: m_minor)
47 ? QTypeRevision::fromMinorVersion(minorVersion: m_minor)
48 : QTypeRevision());
49 }
50
51private:
52 QQmlTypeModule *m_module;
53 quint8 m_minor;
54};
55
56QT_END_NAMESPACE
57
58#endif // QQMLTYPEMODULEVERSION_P_H
59

source code of qtdeclarative/src/qml/qml/qqmltypemoduleversion_p.h