1/****************************************************************************
2**
3** Copyright (C) 2017 The Qt Company Ltd.
4** Contact: http://www.qt.io/licensing/
5**
6** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:LGPL3$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see http://www.qt.io/terms-conditions. For further
15** information use the contact form at http://www.qt.io/contact-us.
16**
17** GNU Lesser General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU Lesser
19** General Public License version 3 as published by the Free Software
20** Foundation and appearing in the file LICENSE.LGPLv3 included in the
21** packaging of this file. Please review the following information to
22** ensure the GNU Lesser General Public License version 3 requirements
23** will be met: https://www.gnu.org/licenses/lgpl.html.
24**
25** GNU General Public License Usage
26** Alternatively, this file may be used under the terms of the GNU
27** General Public License version 2.0 or later as published by the Free
28** Software Foundation and appearing in the file LICENSE.GPL included in
29** the packaging of this file. Please review the following information to
30** ensure the GNU General Public License version 2.0 requirements will be
31** met: http://www.gnu.org/licenses/gpl-2.0.html.
32**
33** $QT_END_LICENSE$
34**
35****************************************************************************/
36
37#include <QtQuickControls2/private/qquickstyleplugin_p.h>
38
39#include "qquickuniversalbusyindicator_p.h"
40#include "qquickuniversalfocusrectangle_p.h"
41#include "qquickuniversalprogressbar_p.h"
42#include "qquickuniversalstyle_p.h"
43#include "qquickuniversaltheme_p.h"
44
45QT_BEGIN_NAMESPACE
46
47class QtQuickControls2UniversalStylePlugin: public QQuickStylePlugin
48{
49 Q_OBJECT
50 Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
51
52public:
53 QtQuickControls2UniversalStylePlugin(QObject *parent = nullptr);
54
55 void registerTypes(const char *uri) override;
56
57 QString name() const override;
58 void initializeTheme(QQuickTheme *theme) override;
59};
60
61QtQuickControls2UniversalStylePlugin::QtQuickControls2UniversalStylePlugin(QObject *parent) : QQuickStylePlugin(parent)
62{
63 QQuickUniversalStyle::initGlobals();
64}
65
66void QtQuickControls2UniversalStylePlugin::registerTypes(const char *uri)
67{
68 qmlRegisterModule(uri, versionMajor: 2, QT_VERSION_MINOR); // Qt 5.12->2.12, 5.13->2.13...
69 qmlRegisterUncreatableType<QQuickUniversalStyle>(uri, versionMajor: 2, versionMinor: 0, qmlName: "Universal", reason: tr(s: "Universal is an attached property"));
70
71 QByteArray import = QByteArray(uri) + ".impl";
72 qmlRegisterModule(uri: import, versionMajor: 2, QT_VERSION_MINOR); // Qt 5.12->2.12, 5.13->2.13...
73
74 qmlRegisterType<QQuickUniversalFocusRectangle>(uri: import, versionMajor: 2, versionMinor: 0, qmlName: "FocusRectangle");
75 qmlRegisterType<QQuickUniversalBusyIndicator>(uri: import, versionMajor: 2, versionMinor: 0, qmlName: "BusyIndicatorImpl");
76 qmlRegisterType<QQuickUniversalProgressBar>(uri: import, versionMajor: 2, versionMinor: 0, qmlName: "ProgressBarImpl");
77
78 qmlRegisterType(url: resolvedUrl(QStringLiteral("CheckIndicator.qml")), uri: import, versionMajor: 2, versionMinor: 0, qmlName: "CheckIndicator");
79 qmlRegisterType(url: resolvedUrl(QStringLiteral("RadioIndicator.qml")), uri: import, versionMajor: 2, versionMinor: 0, qmlName: "RadioIndicator");
80 qmlRegisterType(url: resolvedUrl(QStringLiteral("SwitchIndicator.qml")), uri: import, versionMajor: 2, versionMinor: 0, qmlName: "SwitchIndicator");
81}
82
83QString QtQuickControls2UniversalStylePlugin::name() const
84{
85 return QStringLiteral("Universal");
86}
87
88void QtQuickControls2UniversalStylePlugin::initializeTheme(QQuickTheme *theme)
89{
90 QQuickUniversalTheme::initialize(theme);
91}
92
93QT_END_NAMESPACE
94
95#include "qtquickcontrols2universalstyleplugin.moc"
96

source code of qtquickcontrols2/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp