Update WWW
[ubi] / utils.h
1 #ifndef UTILS_H
2 #define UTILS_H
3
4 #include <QObject>
5 #include <QSettings>
6 #include <QFile>
7 #include <QByteArray>
8 #include <QNetworkAccessManager>
9 #include <QUrl>
10 #include <QNetworkRequest>
11 #include <QNetworkReply>
12 #include <QMap>
13 #include <QStringList>
14 #include <QMessageBox>
15
16 #if defined(Q_WS_MAEMO_5)
17 #include <QDBusConnection>
18 #include <QDBusMessage>
19 #endif
20
21 #include "qmlapplicationviewer.h"
22
23 class Utils : public QObject
24 {
25     Q_OBJECT
26 public:
27     explicit Utils(QmlApplicationViewer *viewer, QSettings *settings, QObject *parent = 0);
28     
29 signals:
30     void downloadAdded(QString filename);
31     void uploadAdded(QString filename);
32     void downloadStarted(QString filename);
33     void uploadStarted(QString filename);
34     void fileDownloaded(QString filename);
35     void fileUploaded(QString filename);
36     void downloadError(QString filename);
37     void uploadError(QString filename);
38     void fileDownloadProgress(QString filename, float progress);
39     void fileUploadProgress(QString filename, float progress);
40
41     // U1 api
42     void fileDeleted();
43     void operationError(int status);
44     
45 public slots:
46     void minimizeWindow();
47     //QString backgroundColor();
48     QString customerKey();
49     QString customerSecret();
50     QString token();
51     QString tokenSecret();
52     QString name();
53     QString lastFolder();
54     QString locale();
55     bool emptyQuee();
56     void error(QNetworkReply::NetworkError code);
57     bool isAuthorized();
58     void resetAuthorization();
59     //void setBackgroundColor(const QString &);
60     void setCustomerKey(const QString &);
61     void setCustomerSecret(const QString &);
62     void setToken(const QString &);
63     void setName(const QString &);
64     void setTokenSecret(const QString &);
65     void setOrientation(const QString &);
66     void setLastFolder(const QString &);
67     void setLocale(const QString &);
68     void downloadFile(const QString &folder,const QString &filename,
69                       const QString &url,int size,const QString &auth);
70     void downloadFinished();
71     void downloadProgress(qint64,qint64);
72     void uploadFile(const QString &folder,const QString &filename,
73                     const QString &url,const QString &auth);
74     void uploadFinished();
75     void uploadProgress(qint64,qint64);
76
77     // U1 api
78     void deleteFile(const QString &url,const QString &auth);
79     void deleteFinished();
80     // ---
81
82     void test();
83
84 private:
85
86     struct RequestData {
87         bool isDownload;
88         QString folder;
89         QString filename;
90         QString url;
91         QString auth;
92         qint64 size;
93     };
94
95     QmlApplicationViewer *_viewer;
96     QSettings *_settings;
97     QNetworkAccessManager *_nam;
98
99     QNetworkReply* cur_reply;
100     QNetworkReply* temp_reply;
101
102     QString cur_folder;
103     QString cur_filename;
104     QFile* cur_file;
105
106     qint64 cur_size;
107     bool isFinished;
108
109     QList<RequestData> quee;
110
111     QMap<QNetworkReply*,QStringList> downloads;
112
113     void start();
114 };
115
116 #endif // UTILS_H