File indexing completed on 2024-04-28 17:05:12
0001 // SPDX-FileCopyrightText: 2022 Felipe Kinoshita <kinofhek@gmail.com> 0002 // SPDX-License-Identifier: LGPL-2.1-or-later 0003 0004 #pragma once 0005 0006 #include <QObject> 0007 #include <QJsonObject> 0008 #include <QNetworkAccessManager> 0009 #include <QQmlEngine> 0010 0011 class Controller : public QObject 0012 { 0013 Q_OBJECT 0014 QML_ELEMENT 0015 QML_SINGLETON 0016 0017 Q_PROPERTY(QJsonObject data MEMBER m_data NOTIFY dataChanged) 0018 0019 public: 0020 explicit Controller(QObject* parent = nullptr); 0021 0022 Q_INVOKABLE void fetch(QUrl url, QJsonObject options); 0023 0024 QJsonObject data() 0025 { 0026 return m_data; 0027 } 0028 Q_INVOKABLE void setData(QJsonObject data) 0029 { 0030 m_data = data; 0031 Q_EMIT dataChanged(); 0032 } 0033 Q_SIGNAL void dataChanged(); 0034 0035 Q_SIGNAL void response(QString); 0036 Q_SIGNAL void status(int statusCode, QString statusText); 0037 0038 private: 0039 QNetworkAccessManager m_manager; 0040 QJsonObject m_data; 0041 };