Dekko
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 
28 Q_DECLARE_LOGGING_CATEGORY(PLUGIN_INCUBATOR)
29 
30 class PluginIncubator : public QObject, public QQmlIncubator
31 {
32  Q_OBJECT
33 public:
34  explicit PluginIncubator(QObject *parent = 0);
35 
36  void setSourceUrl(QQmlEngine *engine, const QUrl &source);
37 
38 signals:
39  void objectReady();
40  void error();
41 
42  // QQmlIncubator interface
43 protected:
44  virtual void statusChanged(Status status) override;
45 
46 private:
47  QQmlComponent *m_comp;
48 };
49 
50 typedef QList<PluginIncubator *> IncubatorList;
51 
52 #endif // PLUGININCUBATOR_H
PluginIncubator
Definition: PluginIncubator.h:30