4 Utils::Utils(QmlApplicationViewer *viewer, QSettings *settings, QObject *parent) :
9 _clipboard = QApplication::clipboard();
11 _nam = new QNetworkAccessManager(this);
15 void Utils::minimizeWindow()
17 #if defined(Q_WS_MAEMO_5)
18 // This is needed for Maemo5 to recognize minimization
19 QDBusConnection connection = QDBusConnection::sessionBus();
20 QDBusMessage message = QDBusMessage::createSignal(
21 "/","com.nokia.hildon_desktop","exit_app_view");
22 connection.send(message);
24 _viewer->setWindowState(Qt::WindowMinimized);
28 void Utils::setOrientation(const QString &orientation)
30 if(orientation=="auto")
31 _viewer->setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
32 if(orientation=="landscape")
33 _viewer->setOrientation(QmlApplicationViewer::ScreenOrientationLockLandscape);
34 if(orientation=="portrait")
35 _viewer->setOrientation(QmlApplicationViewer::ScreenOrientationLockPortrait);
38 bool Utils::isAuthorized()
40 QString ck = customerKey();
41 QString cs = customerSecret();
43 QString ts = tokenSecret();
45 if(ck!="" && cs!="" && t!="" && ts!="")
51 void Utils::resetAuthorization()
54 setCustomerSecret("");
62 return _settings->value("name").toString();
65 void Utils::setName(const QString &name)
67 _settings->setValue("name",name);
70 QString Utils::locale()
72 return _settings->value("locale").toString();
75 void Utils::setLocale(const QString &locale)
77 _settings->setValue("locale",locale);
80 QString Utils::customerKey()
82 return _settings->value("customer_key").toString();
85 void Utils::setCustomerKey(const QString &ckey)
87 _settings->setValue("customer_key",ckey);
90 QString Utils::customerSecret()
92 return _settings->value("customer_secret").toString();
95 void Utils::setCustomerSecret(const QString &csecret)
97 _settings->setValue("customer_secret",csecret);
100 QString Utils::token()
102 return _settings->value("token").toString();
105 void Utils::setToken(const QString &token)
107 _settings->setValue("token",token);
110 QString Utils::tokenSecret()
112 return _settings->value("token_secret").toString();
115 /*QString Utils::backgroundColor()
117 return _settings->value("background_color").toString();
120 void Utils::setTokenSecret(const QString &tsecret)
122 _settings->setValue("token_secret",tsecret);
125 QString Utils::lastFolder()
127 return _settings->value("last_folder").toString();
130 void Utils::setLastFolder(const QString &folder)
132 _settings->setValue("last_folder",folder);
135 /*void Utils::setBackgroundColor(const QString &color)
137 _settings->setValue("background_color",color);
141 void Utils::downloadFile(const QString &folder, const QString &filename,
142 const QString &url, int size, const QString &auth)
145 data.isDownload = true;
146 data.folder = folder;
147 data.filename = filename;
153 emit downloadAdded(filename);
163 //qDebug() << "quee.isEmpty";
167 RequestData data = quee.takeFirst();
170 QNetworkRequest req(url);
171 req.setRawHeader("Authorization", data.auth.toAscii());
175 QNetworkReply* reply = _nam->get(req);
177 connect(reply,SIGNAL(finished()),this,SLOT(downloadFinished()));
178 connect(reply,SIGNAL(downloadProgress(qint64,qint64)),this,SLOT(downloadProgress(qint64,qint64)));
179 connect(reply,SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(error(QNetworkReply::NetworkError)));
182 cur_folder = data.folder;
183 cur_filename = data.filename;
184 cur_size = data.size;
188 emit downloadStarted(data.filename);
190 //qDebug() << "startDownload, filename: " << cur_filename;
194 QString filepath = data.folder + "/" + data.filename;
195 //qDebug() << "filapath: " << filepath;
196 cur_file = new QFile(filepath);
197 if(cur_file->open(QIODevice::ReadOnly)) {
198 QNetworkReply* reply = _nam->put(req,cur_file);
200 connect(reply,SIGNAL(finished()),this,SLOT(uploadFinished()));
201 connect(reply,SIGNAL(uploadProgress(qint64,qint64)),this,SLOT(uploadProgress(qint64,qint64)));
202 connect(reply,SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(error(QNetworkReply::NetworkError)));
205 cur_folder = data.folder;
206 cur_filename = data.filename;
207 cur_size = cur_file->size();
211 emit uploadStarted(data.filename);
213 //qDebug() << "size:" << cur_file->size();
216 qDebug() << "error: file not open!";
222 void Utils::downloadFinished()
224 //qDebug() << "downloadFinished";
226 if (cur_reply->error() == QNetworkReply::NoError)
228 int httpStatus = cur_reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
229 //qDebug() << "status: " << httpStatus;
232 QByteArray bytes = cur_reply->readAll();
233 QString filepath = cur_folder + "/" + cur_filename;
234 QFile file(filepath);
235 file.open(QIODevice::WriteOnly);
236 int len = bytes.length();
237 QDataStream out(&file);
238 out.writeRawData(bytes.constData(),len);
240 emit fileDownloaded(cur_filename);
242 qDebug() << "download error";
243 emit downloadError(cur_filename);
246 else if (cur_reply->error() == QNetworkReply::OperationCanceledError)
248 emit operationCanceled(cur_filename);
252 //qDebug() << "download error";
253 emit downloadError(cur_filename);
257 cur_reply->deleteLater();
262 void Utils::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
264 //qDebug() << "progres: " << 100*bytesReceived/cur_size << "%";
266 float progress = (float)bytesReceived/cur_size;
268 emit fileDownloadProgress(cur_filename,progress);
271 void Utils::error(QNetworkReply::NetworkError code)
273 qDebug() << "error: " << code;
276 void Utils::uploadFile(const QString &folder, const QString &filename,
277 const QString &url, const QString &auth)
279 //qDebug() << "uploadFile";
282 data.isDownload = false;
283 data.folder = folder;
284 data.filename = filename;
289 emit uploadAdded(filename);
291 //qDebug() << "utils.cpp:uploadFile url=" << url;
298 void Utils::uploadProgress(qint64 bytesSent, qint64 bytesTotal)
300 //qDebug() << "progres: " << 100*bytesSent/cur_size << "%";
301 //qDebug() << "progres: " << 100*bytesSent/bytesTotal << "%";
303 float progress = (float)bytesSent/cur_size;
304 emit fileUploadProgress(cur_filename,progress);
307 void Utils::uploadFinished()
309 //qDebug() << "uploadFinished";
311 if (cur_reply->error() == QNetworkReply::NoError)
313 emit fileUploaded(cur_filename);
315 else if (cur_reply->error() == QNetworkReply::OperationCanceledError)
317 emit operationCanceled(cur_filename);
321 int httpStatus = cur_reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
323 //QString httpStatusMessage = cur_reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString();
324 //QByteArray bytes = cur_reply->readAll();
325 //qDebug() << "status: " << httpStatus << " " << httpStatusMessage;
326 //qDebug() << "bytes: " << bytes;
330 emit fileUploaded(cur_filename);
332 //qDebug() << "upload error: " << httpStatus << " " << cur_reply->error() << " " << cur_reply->errorString();
333 emit uploadError(cur_filename);
340 cur_reply->deleteLater();
345 bool Utils::emptyQuee()
347 return isFinished && quee.length()==0;
353 msgBox.setText("Test!");
357 void Utils::deleteFile(const QString &url, const QString &auth)
359 //qDebug() << "Utils::deleteFile";
362 QNetworkRequest req(_url);
364 /*qDebug() << "url1=" << url;
365 qDebug() << "url2=" << req.url().toString();
366 qDebug() << "url3=" << req.url().path();*/
368 //qDebug() << "auth: " << auth;
369 req.setRawHeader("Authorization", auth.toAscii());
371 //qDebug() << "utils.cpp:uploadFile _nam=" << _nam->;
373 /*QList<QByteArray> l = req.rawHeaderList();
374 QList<QByteArray>::iterator i;
375 for(i=l.begin(); i!=l.end(); ++i)
376 qDebug() << "header=" << *i;
379 temp_reply = _nam->deleteResource(req);
380 connect(temp_reply,SIGNAL(finished()),this,SLOT(deleteFinished()));
381 connect(temp_reply,SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(error(QNetworkReply::NetworkError)));
384 void Utils::deleteFinished()
386 //qDebug() << "Utils::deleteFinished";
388 int httpStatus = temp_reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
389 QString httpStatusMessage = temp_reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString();
390 QByteArray bytes = temp_reply->readAll();
392 //qDebug() << "status: " << httpStatus << " " << httpStatusMessage;
393 //qDebug() << "bytes: " << bytes;
395 if (temp_reply->error() == QNetworkReply::NoError)
401 emit operationError(httpStatus);
405 temp_reply->deleteLater();
408 void Utils::setClipboardText(const QString &text)
410 _clipboard->setText(text, QClipboard::Clipboard);
411 _clipboard->setText(text, QClipboard::Selection);
414 bool Utils::isMaemo()
416 #if defined(Q_WS_MAEMO_5)
422 void Utils::cancelFile(const QString & filename)
424 //qDebug() << "Utils::cancelFile";
425 if(!isFinished && cur_filename==filename)
432 for(int i=0;i<l;++i) {
433 RequestData data = quee.at(i);
434 //qDebug() << data.filename;
435 if(data.filename==filename) {
437 emit fileRemovedFromQuee(filename);