Dekko
Loading...
Searching...
No Matches
PluginIncubator.h
1/* Copyright (C) 2017 Dan Chapman <dpniel@ubuntu.com>
2
3 This file is part of Dekko email client for Ubuntu devices
4
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License as
7 published by the Free Software Foundation; either version 2 of
8 the License or (at your option) version 3
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18#ifndef PLUGININCUBATOR_H
19#define PLUGININCUBATOR_H
20
21#include <QLoggingCategory>
22#include <QObject>
23#include <QQmlIncubator>
24#include <QQmlComponent>
25#include <QQmlEngine>
26#include <QUrl>
27
28Q_DECLARE_LOGGING_CATEGORY(PLUGIN_INCUBATOR)
29
30class PluginIncubator : public QObject, public QQmlIncubator
31{
32 Q_OBJECT
33public:
34 explicit PluginIncubator(QObject *parent = 0);
35
36 void setSourceUrl(QQmlEngine *engine, const QUrl &source);
37
38signals:
39 void objectReady();
40 void error();
41
42 // QQmlIncubator interface
43protected:
44 virtual void statusChanged(Status status) override;
45
46private:
47 QQmlComponent *m_comp;
48};
49
50typedef QList<PluginIncubator *> IncubatorList;
51
52#endif // PLUGININCUBATOR_H