diff options
Diffstat (limited to 'app/pebblestoreview.h')
| -rw-r--r-- | app/pebblestoreview.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/app/pebblestoreview.h b/app/pebblestoreview.h new file mode 100644 index 0000000..a19b43d --- /dev/null +++ b/app/pebblestoreview.h @@ -0,0 +1,52 @@ +#ifndef PEBBLESTOREVIEW_H +#define PEBBLESTOREVIEW_H + +#include <private/qquickwebview_p.h> +#include <private/qwebnavigationrequest_p.h> +#include <QNetworkReply> +#include <QNetworkAccessManager> +#include <QJsonDocument> +#include <QJsonObject> + +class PebbleStoreView : public QQuickWebView +{ + Q_OBJECT +public: + PebbleStoreView(); + Q_PROPERTY(bool loggedin READ loggedin NOTIFY accessTokenChanged) + Q_PROPERTY(bool downloadInProgress READ downloadInProgress NOTIFY downloadInProgressChanged) + Q_PROPERTY(QString accessToken READ accessToken WRITE setAccessToken NOTIFY accessTokenChanged) + + bool loggedin(); + bool downloadInProgress(); + QString accessToken() const; + void setAccessToken(const QString &accessToken); + +public slots: + void gotoWatchFaces(); + void gotoWatchApps(); + void logout(); + +private slots: + void onNavigationRequested(QWebNavigationRequest* request); + void onNetworkReplyFinished(QNetworkReply* reply); + +signals: + void accessTokenChanged(const QString & accessToken); + void downloadPebbleApp(const QString & downloadTitle, const QString & downloadUrl); + void downloadInProgressChanged(); + void call(const QString &, const QString &); + +private: + QNetworkAccessManager* m_networkManager; + QUrl m_configUrl; + QString m_accessToken; + QJsonObject downloadObject; + QJsonObject storeConfigObject; + bool m_downloadInProgress; + + QUrl prepareUrl(QString baseUrl); + void fetchData(QUrl url); +}; + +#endif // PEBBLESTOREVIEW_H |
