Dekko
ListenerRegistry.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 LISTENERREGISTRY_H
19 #define LISTENERREGISTRY_H
20 
21 #include <QLoggingCategory>
22 #include <QObject>
23 #include <QQuickItem>
24 #include <QQmlParserStatus>
25 
26 Q_DECLARE_LOGGING_CATEGORY(PLUGIN_LISTENER)
27 
28 class ListenerRegistry : public QObject, public QQmlParserStatus
29 {
30  Q_OBJECT
31  Q_INTERFACES(QQmlParserStatus)
32  Q_PROPERTY(QQmlListProperty<QQuickItem> defaultListeners READ defaultListeners)
33 public:
34  explicit ListenerRegistry(QObject *parent = 0);
35 
36  QQmlListProperty<QQuickItem> defaultListeners();
37 
38  virtual void classBegin() override {}
39  virtual void componentComplete() override;
40 private:
41  QQuickItem *createListenerFromURl(const QString &url);
42  QList<QQuickItem *> m_defaults;
43  QList<QQuickItem *> m_plugins;
44 };
45 
46 #endif // LISTENERREGISTRY_H
ListenerRegistry
Definition: ListenerRegistry.h:28