QTfrontend/pagedata.cpp
branchhedgeroid
changeset 6224 42b256eca362
parent 6055 88cfcd9161d3
parent 6223 cc3eb9b7230f
child 6226 3106add9a5bf
--- a/QTfrontend/pagedata.cpp	Fri Oct 28 17:41:39 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,224 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QGridLayout>
-#include <QPushButton>
-#include <QNetworkAccessManager>
-#include <QNetworkRequest>
-#include <QNetworkReply>
-#include <QFileInfo>
-#include <QFileDialog>
-#include <QDebug>
-#include <QProgressBar>
-#include <QBuffer>
-
-#include "pagedata.h"
-#include "databrowser.h"
-#include "hwconsts.h"
-
-#include "quazip.h"
-#include "quazipfile.h"
-
-PageDataDownload::PageDataDownload(QWidget* parent) : AbstractPage(parent)
-{
-    QGridLayout * pageLayout = new QGridLayout(this);
-    pageLayout->setColumnStretch(0, 1);
-    pageLayout->setColumnStretch(1, 1);
-    pageLayout->setColumnStretch(2, 1);
-
-
-    web = new DataBrowser(this);
-    connect(web, SIGNAL(anchorClicked(QUrl)), this, SLOT(request(const QUrl&)));
-    web->setOpenLinks(false);
-    pageLayout->addWidget(web, 0, 0, 1, 3);
-
-    progressBarsLayout = new QVBoxLayout();
-    pageLayout->addLayout(progressBarsLayout, 1, 0, 1, 3);
-
-    fetchList();
-
-
-    BtnBack = addButton(":/res/Exit.png", pageLayout, 2, 0, true);
-    connect(BtnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
-}
-
-void PageDataDownload::request(const QUrl &url)
-{
-    QUrl finalUrl;
-    if(url.host().isEmpty())
-        finalUrl = QUrl("http://www.hedgewars.org" + url.path());
-    else
-        finalUrl = url;
-
-    if(url.path().endsWith(".zip"))
-    {
-        qWarning() << "Download Request" << url.toString();
-        QString fileName = QFileInfo(url.toString()).fileName();
-
-        QNetworkRequest newRequest(finalUrl);
-        newRequest.setAttribute(QNetworkRequest::User, fileName);
-
-        QNetworkAccessManager *manager = new QNetworkAccessManager(this);
-        QNetworkReply *reply = manager->get(newRequest);
-        connect(reply, SIGNAL(finished()), this, SLOT(fileDownloaded()));
-        connect(reply, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(downloadProgress(qint64, qint64)));
-
-        QProgressBar *progressBar = new QProgressBar(this);
-        progressBarsLayout->addWidget(progressBar);
-        progressBars.insert(reply, progressBar);
-    } else
-    {
-        qWarning() << "Page Request" << url.toString();
-
-        QNetworkRequest newRequest(finalUrl);
-
-        QNetworkAccessManager *manager = new QNetworkAccessManager(this);
-        QNetworkReply *reply = manager->get(newRequest);
-        connect(reply, SIGNAL(finished()), this, SLOT(pageDownloaded()));
-    }
-}
-
-
-void PageDataDownload::pageDownloaded()
-{
-    QNetworkReply * reply = qobject_cast<QNetworkReply *>(sender());
-
-    if(reply)
-    {
-        QString html = QString::fromUtf8(reply->readAll());
-        int begin = html.indexOf("<!-- BEGIN -->");
-        int end = html.indexOf("<!-- END -->");
-        if(begin != -1 && begin < end)
-        {
-            html.truncate(end);
-            html.remove(0, begin);
-        }
-        web->setHtml(html);
-    }
-}
-
-void PageDataDownload::fileDownloaded()
-{
-    QNetworkReply * reply = qobject_cast<QNetworkReply *>(sender());
-
-    if(reply)
-    {
-        QByteArray fileContents = reply->readAll();
-        QProgressBar *progressBar = progressBars.value(reply, 0);
-
-        if(progressBar)
-        {
-            progressBars.remove(reply);
-            progressBar->deleteLater();
-        }
-
-        extractDataPack(&fileContents);
-    }
-}
-
-void PageDataDownload::downloadProgress(qint64 bytesRecieved, qint64 bytesTotal)
-{
-    QNetworkReply * reply = qobject_cast<QNetworkReply *>(sender());
-
-    if(reply)
-    {
-        QProgressBar *progressBar = progressBars.value(reply, 0);
-
-        if(progressBar)
-        {
-            progressBar->setValue(bytesRecieved);
-            progressBar->setMaximum(bytesTotal);
-        }
-    }
-}
-
-void PageDataDownload::fetchList()
-{
-    request(QUrl("http://hedgewars.org/content.html"));
-}
-
-bool PageDataDownload::extractDataPack(QByteArray * buf)
-{
-    QBuffer buffer;
-    buffer.setBuffer(buf);
-
-    QuaZip zip;
-    zip.setIoDevice(&buffer);
-    if(!zip.open(QuaZip::mdUnzip))
-    {
-      qWarning("testRead(): zip.open(): %d", zip.getZipError());
-      return false;
-    }
-
-    QuaZipFile file(&zip);
-
-    QDir extractDir(*cfgdir);
-    extractDir.cd("Data");
-
-    for(bool more = zip.goToFirstFile(); more; more = zip.goToNextFile())
-    {
-        if(!file.open(QIODevice::ReadOnly))
-        {
-            qWarning("file.open(): %d", file.getZipError());
-            return false;
-        }
-
-
-        QString fileName = file.getActualFileName();
-        QString filePath = extractDir.filePath(fileName);
-        if (fileName.endsWith("/"))
-        {
-            QFileInfo fi(filePath);
-            QDir().mkpath(fi.filePath());
-        } else
-        {
-            qDebug() << "Extracting" << filePath;
-            QFile out(filePath);
-            if(!out.open(QFile::WriteOnly))
-            {
-                qWarning() << "out.open():" << out.errorString();
-                return false;
-            }
-
-            out.write(file.readAll());
-
-            out.close();
-
-            if(file.getZipError() != UNZ_OK) {
-                qWarning("file.getFileName(): %d", file.getZipError());
-                return false;
-            }
-
-            if(!file.atEnd()) {
-                qWarning("read all but not EOF");
-                return false;
-            }
-        }
-
-        file.close();
-
-        if(file.getZipError()!=UNZ_OK) {
-            qWarning("file.close(): %d", file.getZipError());
-            return false;
-        }
-    }
-
-    zip.close();
-
-    return true;
-}