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