Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qtquickcontrols2nativestyleplugin.cpp
Go to the documentation of this file.
1// Copyright (C) 2020 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// Qt-Security score:significant reason:default
4
5#include <private/qquickstyleplugin_p.h>
6
7#include <QtQml/qqml.h>
8#include <QtQml/qqmlextensionplugin.h>
9
10#if defined(Q_OS_MACOS)
11# include <private/qquickmacfocusframe_p.h>
12#elif defined(Q_OS_WINDOWS)
13# include <private/qquickwindowsfocusframe_p.h>
14#endif
15
17
20
21namespace QQC2 {
22
24{
25 Q_OBJECT
26 Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
27
28public:
31
32 void initializeEngine(QQmlEngine *, const char * /*uri*/) override;
33
34 void initializeTheme(QQuickTheme *) override { }
35 QString name() const override { return QStringLiteral("NativeStyle"); }
36};
37
38QtQuickControls2NativeStylePlugin::QtQuickControls2NativeStylePlugin(QObject *parent):
39 QQuickStylePlugin(parent)
40{
41 volatile auto registration = &qml_register_types_QtQuick_NativeStyle;
42 Q_UNUSED(registration);
43}
44
46
47void QtQuickControls2NativeStylePlugin::initializeEngine(QQmlEngine *, const char *)
48{
49 if (g_focusFrame)
50 return;
51
52#if defined(Q_OS_MACOS)
53 g_focusFrame = std::make_unique<QQuickMacFocusFrame>();
54#elif defined(Q_OS_WIN)
55 g_focusFrame = std::make_unique<QQuickWindowsFocusFrame>();
56#endif
57 if (!g_focusFrame)
58 return;
59
60 qAddPostRoutine([] {
61 g_focusFrame.reset();
62 });
63}
64
65} // namespace QQC2
66
67QT_END_NAMESPACE
68
69#include "qtquickcontrols2nativestyleplugin.moc"
void initializeEngine(QQmlEngine *, const char *) override
Initializes the extension from the uri using the engine.
~QtQuickControls2NativeStylePlugin() override=default
static std::unique_ptr< QQuickFocusFrame > g_focusFrame
QT_BEGIN_NAMESPACE void qml_register_types_QtQuick_NativeStyle()
Q_GHS_KEEP_REFERENCE(qml_register_types_QtQuick_NativeStyle)