dde-control-center
Deepin Control Center
载入中...
搜索中...
未找到
dccfactory.h
1// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4#ifndef DCCFACTORY_H
5#define DCCFACTORY_H
6
7#include <QObject>
8
9namespace dccV25 {
10#define DccFactory_iid "org.deepin.dde.dcc-factory/v1.0"
11class DccObject;
12
13class DccFactory : public QObject
14{
15 Q_OBJECT
16public:
17 using QObject::QObject;
18
19 // 作为数据返回,会导出为dccData供main.qml使用
20 virtual QObject *create(QObject * = nullptr) { return nullptr; }
21
22 // 未提供qml的,可在此自己加载qml返回DccObject对象
23 virtual DccObject *dccObject(QObject * = nullptr) { return nullptr; }
24};
25} // namespace dccV25
26Q_DECLARE_INTERFACE(dccV25::DccFactory, DccFactory_iid)
27
28#define DCC_FACTORY_CLASS(classname) \
29 namespace { \
30 class Q_DECL_EXPORT classname##DccFactory : public dccV25::DccFactory \
31 { \
32 Q_OBJECT \
33 Q_PLUGIN_METADATA(IID DccFactory_iid) \
34 Q_INTERFACES(dccV25::DccFactory) \
35 public: \
36 using dccV25::DccFactory::DccFactory; \
37 QObject *create(QObject *parent = nullptr) override \
38 { \
39 return new classname(parent); \
40 } \
41 }; \
42 }
43#endif // DCCFACTORY_H
Definition dccfactory.h:14
Definition dccobject.h:14