ImagingTools Core SDK
CGqlRequest.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtNetwork/QNetworkReply>
7
8// ImtCore includes
9#include <imtbase/CTreeItemModel.h>
10#include <imtgql/CGqlRequest.h>
11
12
13namespace imtqml
14{
15
16
17class CGqlRequest: public QObject
18{
19 Q_OBJECT
20 Q_PROPERTY(QString state READ State WRITE SetState NOTIFY stateChanged)
21 Q_PROPERTY(QString json READ GetJson WRITE SetJson NOTIFY jsonChanged)
22
23public:
24 typedef QObject BaseClass;
25
26 Q_INVOKABLE inline bool setGqlQuery(QString query, QVariantMap headers = QVariantMap()){ return SetGqlQuery(query, headers); }
27
28 explicit CGqlRequest(QObject* parent = nullptr);
29 ~CGqlRequest();
30
31 bool SetGqlQuery(QString query, QVariantMap headers = QVariantMap());
32
33public Q_SLOTS:
34 void replyFinished();
35 void errorOccurred(QNetworkReply::NetworkError code);
36 void onSslErrors(const QList<QSslError>& errors);
37
38Q_SIGNALS:
39 void stateChanged(const QString& state);
40 void jsonChanged(const QString& state);
41
42private:
43 const QString &State() const;
44 void SetState(const QString& newState);
45
46 QString GetJson() const;
47 void SetJson(const QString& json);
48
49 QString m_json;
50 QString m_state;
51};
52
53
54} // namespace imtqml
55
56
57Q_DECLARE_METATYPE(imtqml::CGqlRequest*)
58
59