0.9.3-1 release
[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     Q_INVOKABLE bool isMaemo();
33     Q_INVOKABLE void cancelFile(const QString &);
34     
35 signals:
36     void downloadAdded(QString filename);
37     void uploadAdded(QString filename);
38     void downloadStarted(QString filename);
39     void uploadStarted(QString filename);
40     void fileDownloaded(QString filename);
41     void fileUploaded(QString filename);
42     void downloadError(QString filename);
43     void uploadError(QString filename);
44     void fileDownloadProgress(QString filename, float progress);
45     void fileUploadProgress(QString filename, float progress);
46     void operationCanceled(QString filename);
47     void fileRemovedFromQuee(QString filename);
48
49     // U1 api
50     void fileDeleted();
51     void operationError(int status);
52     
53 public slots:
54     void minimizeWindow();
55     //QString backgroundColor();
56     QString customerKey();
57     QString customerSecret();
58     QString token();
59     QString tokenSecret();
60     QString name();
61     QString lastFolder();
62     QString locale();
63     bool emptyQuee();
64     void error(QNetworkReply::NetworkError code);
65     bool isAuthorized();
66     void resetAuthorization();
67     //void setBackgroundColor(const QString &);
68     void setCustomerKey(const QString &);
69     void setCustomerSecret(const QString &);
70     void setToken(const QString &);
71     void setName(const QString &);
72     void setTokenSecret(const QString &);
73     void setOrientation(const QString &);
74     void setLastFolder(const QString &);
75     void setLocale(const QString &);
76     void downloadFile(const QString &folder,const QString &filename,
77                       const QString &url,int size,const QString &auth);
78     void downloadFinished();
79     void downloadProgress(qint64,qint64);
80     void uploadFile(const QString &folder,const QString &filename,
81                     const QString &url,const QString &auth);
82     void uploadFinished();
83     void uploadProgress(qint64,qint64);
84
85     // U1 api
86     void deleteFile(const QString &url,const QString &auth);
87     void deleteFinished();
88     // ---
89
90     void test();
91
92 private:
93
94     struct RequestData {
95         bool isDownload;
96         QString folder;
97         QString filename;
98         QString url;
99         QString auth;
100         qint64 size;
101     };
102
103     QmlApplicationViewer *_viewer;
104     QSettings *_settings;
105     QNetworkAccessManager *_nam;
106
107     QNetworkReply* cur_reply;
108     QNetworkReply* temp_reply;
109
110     QString cur_folder;
111     QString cur_filename;
112     QFile* cur_file;
113
114     qint64 cur_size;
115     bool isFinished;
116
117     QList<RequestData> quee;
118
119     QMap<QNetworkReply*,QStringList> downloads;
120
121     QClipboard *_clipboard;
122
123     void start();
124 };
125
126 #endif // UTILS_H