1 /**************************************************************************** 2 ** 3 ** Copyright (C) 2016 Research In Motion. 4 ** Contact: https://www.qt.io/licensing/ 5 ** 6 ** This file is part of the tools applications of the Qt Toolkit. 7 ** 8 ** $QT_BEGIN_LICENSE:GPL-EXCEPT$ 9 ** Commercial License Usage 10 ** Licensees holding valid commercial Qt licenses may use this file in 11 ** accordance with the commercial license agreement provided with the 12 ** Software or, alternatively, in accordance with the terms contained in 13 ** a written agreement between you and The Qt Company. For licensing terms 14 ** and conditions see https://www.qt.io/terms-conditions. For further 15 ** information use the contact form at https://www.qt.io/contact-us. 16 ** 17 ** GNU General Public License Usage 18 ** Alternatively, this file may be used under the terms of the GNU 19 ** General Public License version 3 as published by the Free Software 20 ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT 21 ** included in the packaging of this file. Please review the following 22 ** information to ensure the GNU General Public License requirements will 23 ** be met: https://www.gnu.org/licenses/gpl-3.0.html. 24 ** 25 ** $QT_END_LICENSE$ 26 ** 27 ****************************************************************************/ 28 #ifndef CONF_H 29 #define CONF_H 30 31 #include <QtQml/QQmlContext> 32 #include <QtQml/QQmlListProperty> 33 #include <QtQml/qqml.h> 34 #include <QObject> 35 #include <QUrl> 36 37 class PartialScene : public QObject 38 { 39 Q_OBJECT Q_PROPERTY(QUrl container READ container WRITE setContainer NOTIFY containerChanged)40 Q_PROPERTY(QUrl container READ container WRITE setContainer NOTIFY containerChanged) 41 Q_PROPERTY(QString itemType READ itemType WRITE setItemType NOTIFY itemTypeChanged) 42 QML_ELEMENT 43 public: 44 PartialScene(QObject *parent = 0) : QObject(parent) 45 {} 46 container()47 const QUrl container() const { return m_container; } itemType()48 const QString itemType() const { return m_itemType; } 49 setContainer(const QUrl & a)50 void setContainer(const QUrl &a) { 51 if (a==m_container) 52 return; 53 m_container = a; 54 emit containerChanged(); 55 } setItemType(const QString & a)56 void setItemType(const QString &a) { 57 if (a==m_itemType) 58 return; 59 m_itemType = a; 60 emit itemTypeChanged(); 61 } 62 63 signals: 64 void containerChanged(); 65 void itemTypeChanged(); 66 67 private: 68 QUrl m_container; 69 QString m_itemType; 70 }; 71 72 class Config : public QObject 73 { 74 Q_OBJECT Q_PROPERTY(QQmlListProperty<PartialScene> sceneCompleters READ sceneCompleters)75 Q_PROPERTY(QQmlListProperty<PartialScene> sceneCompleters READ sceneCompleters) 76 Q_CLASSINFO("DefaultProperty", "sceneCompleters") 77 QML_NAMED_ELEMENT(Configuration) 78 public: 79 Config (QObject* parent=0) : QObject(parent) 80 {} 81 sceneCompleters()82 QQmlListProperty<PartialScene> sceneCompleters() 83 { 84 return QQmlListProperty<PartialScene>(this, &completers); 85 } 86 87 QList<PartialScene*> completers; 88 }; 89 90 #endif 91