root / nativeQtClient / zipnetworkreply.cpp @ 013f9124
History | View | Annotate | Download (1.9 kB)
| 1 | //TODO gpl?
|
|---|---|
| 2 | |
| 3 | #include "zipnetworkreply.h" |
| 4 | |
| 5 | #include "odfcontainer.h" |
| 6 | |
| 7 | #include <QtCore/QDebug> |
| 8 | |
| 9 | ZipNetworkReply::ZipNetworkReply(QObject* parent, OdfContainer *odf, const QNetworkRequest &req, const QNetworkAccessManager::Operation op) |
| 10 | :QNetworkReply(parent) |
| 11 | {
|
| 12 | setRequest(req); |
| 13 | setUrl(req.url()); |
| 14 | setOperation(op); |
| 15 | QNetworkReply::open(QIODevice::ReadOnly); |
| 16 | |
| 17 | //the name of the file within the zip
|
| 18 | QString fileName = req.url().toString(QUrl::RemoveScheme); |
| 19 | qDebug() << fileName; |
| 20 | |
| 21 | m_file = odf->getFile(fileName, this);
|
| 22 | m_file->open(QIODevice::ReadOnly); |
| 23 | qint64 fileSize = m_file->size(); |
| 24 | qDebug() << fileSize; |
| 25 | m_remaining = fileSize; |
| 26 | |
| 27 | //setHeader(QNetworkRequest::LastModifiedHeader, fi.lastModified());
|
| 28 | setHeader(QNetworkRequest::ContentLengthHeader, fileSize); |
| 29 | |
| 30 | QMetaObject::invokeMethod(this, "metaDataChanged", Qt::QueuedConnection); |
| 31 | QMetaObject::invokeMethod(this, "downloadProgress", Qt::QueuedConnection, |
| 32 | Q_ARG(qint64, fileSize), Q_ARG(qint64, fileSize)); |
| 33 | QMetaObject::invokeMethod(this, "readyRead", Qt::QueuedConnection); |
| 34 | QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection); |
| 35 | |
| 36 | } |
| 37 | |
| 38 | void ZipNetworkReply::close()
|
| 39 | {
|
| 40 | QNetworkReply::close(); |
| 41 | m_file->close(); |
| 42 | } |
| 43 | |
| 44 | void ZipNetworkReply::abort()
|
| 45 | {
|
| 46 | QNetworkReply::close(); |
| 47 | m_file->close(); |
| 48 | } |
| 49 | |
| 50 | qint64 ZipNetworkReply::readData(char *data, qint64 maxSize)
|
| 51 | {
|
| 52 | qDebug() << "reading " << maxSize;
|
| 53 | qint64 read = m_file->read(data, maxSize); |
| 54 | qDebug() << "read " << read;
|
| 55 | if (read > 0) { |
| 56 | m_remaining -= read; |
| 57 | } |
| 58 | return read;
|
| 59 | } |
| 60 | |
| 61 | qint64 ZipNetworkReply::bytesAvailable() const
|
| 62 | {
|
| 63 | qDebug() << "avail " << m_remaining << " + " << QNetworkReply::bytesAvailable(); |
| 64 | return m_remaining + QNetworkReply::bytesAvailable();
|
| 65 | } |
| 66 | |
| 67 | qint64 ZipNetworkReply::size() const
|
| 68 | {
|
| 69 | qDebug() << "size " << m_file->size();
|
| 70 | return m_file->size();
|
| 71 | } |
| 72 | |
| 73 |