summaryrefslogtreecommitdiffstats
path: root/src/interfaceframework/qifconfiguration.h
blob: 1a4748ed2bc434afeb07f0477fc6faca04101778 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only

#ifndef QIFCONFIGURATION_H
#define QIFCONFIGURATION_H

#include <QtCore/QObject>
#include <QtQml/QQmlEngine>
#include <QtQml/QQmlParserStatus>

#include <QtInterfaceFramework/QIfAbstractFeature>
#include <QtInterfaceFramework/qtifglobal.h>

QT_BEGIN_NAMESPACE

class QIfConfigurationPrivate;

class Q_QTINTERFACEFRAMEWORK_EXPORT QIfConfiguration : public QObject, public QQmlParserStatus
{
    Q_OBJECT
    Q_DISABLE_COPY(QIfConfiguration)
    QML_NAMED_ELEMENT(InterfaceFrameworkConfiguration)
    QML_ADDED_IN_MINOR_VERSION(5)
    Q_INTERFACES(QQmlParserStatus)

    Q_PROPERTY(bool valid READ isValid NOTIFY isValidChanged FINAL)
    Q_PROPERTY(bool ignoreOverrideWarnings READ ignoreOverrideWarnings WRITE setIgnoreOverrideWarnings NOTIFY ignoreOverrideWarningsChanged FINAL)
    Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged FINAL)
    Q_PROPERTY(QVariantMap serviceSettings READ serviceSettings WRITE setServiceSettings NOTIFY serviceSettingsChanged FINAL)
    Q_PROPERTY(QString simulationFile READ simulationFile WRITE setSimulationFile NOTIFY simulationFileChanged FINAL)
    Q_PROPERTY(QString simulationDataFile READ simulationDataFile WRITE setSimulationDataFile NOTIFY simulationDataFileChanged FINAL)
    Q_PROPERTY(QIfAbstractFeature::DiscoveryMode discoveryMode READ discoveryMode WRITE setDiscoveryMode NOTIFY discoveryModeChanged FINAL)
    Q_PROPERTY(QStringList preferredBackends READ preferredBackends WRITE setPreferredBackends NOTIFY preferredBackendsChanged FINAL)
    Q_PROPERTY(QIfServiceObject *serviceObject READ serviceObject WRITE setServiceObject NOTIFY serviceObjectChanged FINAL)
    Q_PROPERTY(bool backendUpdatesEnabled READ backendUpdatesEnabled WRITE setBackendUpdatesEnabled NOTIFY backendUpdatesEnabledChanged REVISION(6, 8) FINAL)
    Q_PROPERTY(bool asynchronousBackendLoading READ asynchronousBackendLoading WRITE setAsynchronousBackendLoading NOTIFY asynchronousBackendLoadingChanged REVISION(6, 8) FINAL)

public:
    explicit QIfConfiguration(const QString &name = QString(), QObject *parent = nullptr);
    ~QIfConfiguration() override;

    bool isValid() const;
    bool ignoreOverrideWarnings() const;
    QString name() const;
    QVariantMap serviceSettings() const;
    QString simulationFile() const;
    QString simulationDataFile() const;
    QIfAbstractFeature::DiscoveryMode discoveryMode() const;
    QStringList preferredBackends() const;
    QIfServiceObject *serviceObject() const;
    bool backendUpdatesEnabled() const;
    bool asynchronousBackendLoading() const;

public Q_SLOTS:
    void setIgnoreOverrideWarnings(bool ignoreOverrideWarnings);
    bool setName(const QString &name);
    bool setServiceSettings(const QVariantMap &serviceSettings);
    bool setSimulationFile(const QString &simulationFile);
    bool setSimulationDataFile(const QString &simulationDataFile);
    bool setDiscoveryMode(QIfAbstractFeature::DiscoveryMode discoveryMode);
    bool setPreferredBackends(const QStringList &preferredBackends);
    bool setServiceObject(QIfServiceObject *serviceObject);
    Q_REVISION(6, 8) bool setBackendUpdatesEnabled(bool backendUpdatesEnabled);
    Q_REVISION(6, 8) bool setAsynchronousBackendLoading(bool asynchronousBackendLoading);
    Q_REVISION(6, 8) bool startAutoDiscovery();

Q_SIGNALS:
    void isValidChanged(bool isValid);
    void nameChanged(const QString &name);
    void serviceSettingsChanged(const QVariantMap &serviceSettings);
    void simulationFileChanged(const QString &simulationFile);
    void simulationDataFileChanged(const QString &simulationDataFile);
    void discoveryModeChanged(QIfAbstractFeature::DiscoveryMode discoveryMode);
    void preferredBackendsChanged(const QStringList &preferredBackends);
    void serviceObjectChanged(const QIfServiceObject *serviceObject);
    void ignoreOverrideWarningsChanged(bool ignoreOverrideWarnings);
    Q_REVISION(6, 8) void backendUpdatesEnabledChanged(bool backendUpdatesEnabled);
    Q_REVISION(6, 8) void asynchronousBackendLoadingChanged(bool asynchronousBackendLoading);

public: //static methods
    static bool exists(const QString &group);

    static QVariantMap serviceSettings(const QString &group);
    static bool setServiceSettings(const QString &group, const QVariantMap &serviceSettings);
    static bool areServiceSettingsSet(const QString &group);

    static QString simulationFile(const QString &group);
    static bool setSimulationFile(const QString &group, const QString &simulationFile);
    static bool isSimulationFileSet(const QString &group);

    static QString simulationDataFile(const QString &group);
    static bool setSimulationDataFile(const QString &group, const QString &simulationDataFile);
    static bool isSimulationDataFileSet(const QString &group);

    static QIfAbstractFeature::DiscoveryMode discoveryMode(const QString &group);
    static bool setDiscoveryMode(const QString &group, QIfAbstractFeature::DiscoveryMode discoveryMode);
    static bool isDiscoveryModeSet(const QString &group);

    static QStringList preferredBackends(const QString &group);
    static bool setPreferredBackends(const QString &group, const QStringList &preferredBackends);
    static bool arePreferredBackendsSet(const QString &group);

    static QIfServiceObject *serviceObject(const QString &group);
    static bool setServiceObject(const QString &group, QIfServiceObject *serviceObject);
    static bool isServiceObjectSet(const QString &group);

    static bool backendUpdatesEnabled(const QString &group);
    static bool setBackendUpdatesEnabled(const QString &group, bool backendUpdatesEnabled);
    static bool isBackendUpdatesEnabledSet(const QString &group);

    static bool asynchronousBackendLoading(const QString &group);
    static bool setAsynchronousBackendLoading(const QString &group, bool asynchronousBackendLoading);
    static bool isAsynchronousBackendLoadingSet(const QString &group);

    static bool startAutoDiscovery(const QString &group);

protected:
    QIfConfiguration(QIfConfigurationPrivate &dd, QObject *parent);

    void classBegin() override;
    void componentComplete() override;

private:
    Q_DECLARE_PRIVATE(QIfConfiguration)
};

QT_END_NAMESPACE

#endif // QIFCONFIGURATION_H