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
qquickvectorimageincubator_p.h
Go to the documentation of this file.
1// Copyright (C) 2026 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 QQUICKVECTORIMAGEINCUBATOR_P_H
5#define QQUICKVECTORIMAGEINCUBATOR_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 <QtCore/qthread.h>
19#include <QtQml/qqmlincubator.h>
20
21#include <QtQuickVectorImage/qtquickvectorimageexports.h>
22#include <QtQuickVectorImageGenerator/private/qquickqmlgenerator_p.h>
23#include <QtQuickVectorImageGenerator/private/qquickvectorimageplugin_p.h>
24#include <QtQuickVectorImageGenerator/private/qquickvectorimageglobal_p.h>
25
27
28class QQuickVectorImageIncubatorPrivate;
29class QQuickVectorImagePluginGenerator;
30class QQmlContext;
31
33{
35public:
37
38 void createGenerator(const QQuickVectorImageSource &source,
39 QQuickVectorImageGenerator::GeneratorFlags flags)
40 {
41 m_generator.reset(new QQuickQmlGenerator(source, flags, QString{}));
42 }
43
44 QQuickQmlGenerator *generator() const { return m_generator.get(); }
45
46 void addPluginGenerator(QQuickVectorImagePluginGenerator *pluginGenerator)
47 {
48 m_pluginGenerators.push_back(std::unique_ptr<QQuickVectorImagePluginGenerator>(pluginGenerator));
49 }
50
51public Q_SLOTS:
52 void process();
53
55 void finished();
56
57private:
58 std::unique_ptr<QQuickQmlGenerator> m_generator;
60};
61
62class Q_QUICKVECTORIMAGE_EXPORT QQuickVectorImageIncubator : public QObject, public QQmlIncubator
63{
64 Q_OBJECT
65public:
66 QQuickVectorImageIncubator(IncubationMode incubationMode,
67 QQmlContext *context,
68 QObject *parent = nullptr);
69 ~QQuickVectorImageIncubator();
70
71 void start(const QQuickVectorImageSource &source,
72 QQuickVectorImageGenerator::GeneratorFlags flags);
73
74 QQmlIncubator::Status status() const;
75
76protected:
77 void statusChanged(Status status) override;
78
79private Q_SLOTS:
80 void generatorFinished();
81 void componentUpdated();
82
83Q_SIGNALS:
84 void statusUpdated();
85
86private:
87 Q_DISABLE_COPY(QQuickVectorImageIncubator)
88 Q_DECLARE_PRIVATE(QQuickVectorImageIncubator)
89};
90
91QT_END_NAMESPACE
92
93#endif // QQUICKVECTORIMAGEINCUBATOR_P_H
void createGenerator(const QQuickVectorImageSource &source, QQuickVectorImageGenerator::GeneratorFlags flags)
QQuickQmlGenerator * generator() const
void addPluginGenerator(QQuickVectorImagePluginGenerator *pluginGenerator)
Combined button and popup list for selecting options.
#define QQuickVectorImageFormatsPluginFactory_iid