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