Use shared pointers to fix incompatibility with new Qt

This commit is contained in:
Petr Mrázek
2013-06-22 23:34:33 +02:00
parent 3b38e5f924
commit 929698ff15
4 changed files with 46 additions and 36 deletions

View File

@ -78,7 +78,7 @@ void GameUpdateTask::executeTask()
QUrl mcJarURL = targetVersion->downloadURL() + jarFilename + ".jar";
qDebug() << mcJarURL.toString();
m_downloadList.append(FileToDownload(mcJarURL, PathCombine(m_inst->minecraftDir(), "bin/minecraft.jar")));
m_downloadList.append(FileToDownload::Create(mcJarURL, PathCombine(m_inst->minecraftDir(), "bin/minecraft.jar")));
@ -111,10 +111,10 @@ void GameUpdateTask::executeTask()
emit gameUpdateComplete(m_response);
}
bool GameUpdateTask::downloadFile(const FileToDownload &file)
bool GameUpdateTask::downloadFile( const PtrFileToDownload file )
{
setSubStatus("Downloading " + file.url().toString());
QNetworkReply *reply = netMgr->get(QNetworkRequest(file.url()));
setSubStatus("Downloading " + file->url().toString());
QNetworkReply *reply = netMgr->get(QNetworkRequest(file->url()));
this->connect(reply, SIGNAL(downloadProgress(qint64,qint64)),
SLOT(updateDownloadProgress(qint64,qint64)));
@ -123,16 +123,17 @@ bool GameUpdateTask::downloadFile(const FileToDownload &file)
if (reply->error() == QNetworkReply::NoError)
{
QFile outFile = file.path();
QString filePath = file->path();
QFile outFile(filePath);
if (outFile.exists() && !outFile.remove())
{
error("Can't delete old file " + file.path() + ": " + outFile.errorString());
error("Can't delete old file " + file->path() + ": " + outFile.errorString());
return false;
}
if (!outFile.open(QIODevice::WriteOnly))
{
error("Can't write to " + file.path() + ": " + outFile.errorString());
error("Can't write to " + file->path() + ": " + outFile.errorString());
return false;
}
@ -141,7 +142,7 @@ bool GameUpdateTask::downloadFile(const FileToDownload &file)
}
else
{
error("Can't download " + file.url().toString() + ": " + reply->errorString());
error("Can't download " + file->url().toString() + ": " + reply->errorString());
return false;
}
@ -230,16 +231,13 @@ void GameUpdateTask::updateDownloadProgress(qint64 current, qint64 total)
setProgress((int)(overallDLProgress * 100));
}
PtrFileToDownload FileToDownload::Create(const QUrl &url, const QString &path, QObject *parent)
{
return PtrFileToDownload(new FileToDownload (url, path, parent));
}
FileToDownload::FileToDownload(const QUrl &url, const QString &path, QObject *parent) :
QObject(parent), m_dlURL(url), m_dlPath(path)
{
}
FileToDownload::FileToDownload(const FileToDownload &other) :
QObject(other.parent()), m_dlURL(other.m_dlURL), m_dlPath(other.m_dlPath)
{
}

View File

@ -45,15 +45,15 @@ QVariant LWJGLVersionList::data(const QModelIndex &index, int role) const
if (index.row() > count())
return QVariant();
const LWJGLVersion &version = at(index.row());
const PtrLWJGLVersion version = at(index.row());
switch (role)
{
case Qt::DisplayRole:
return version.name();
return version->name();
case Qt::ToolTipRole:
return version.url().toString();
return version->url().toString();
default:
return QVariant();
@ -125,7 +125,7 @@ void LWJGLVersionList::netRequestComplete()
QDomNodeList items = doc.elementsByTagName("item");
QList<LWJGLVersion> tempList;
QList<PtrLWJGLVersion> tempList;
for (int i = 0; i < items.length(); i++)
{
@ -155,7 +155,7 @@ void LWJGLVersionList::netRequestComplete()
continue;
}
tempList.append(LWJGLVersion(name, link));
tempList.append(LWJGLVersion::Create(name, link));
}
}
@ -175,14 +175,14 @@ void LWJGLVersionList::netRequestComplete()
reply->deleteLater();
}
const LWJGLVersion *LWJGLVersionList::getVersion(const QString &versionName)
const PtrLWJGLVersion LWJGLVersionList::getVersion(const QString &versionName)
{
for (int i = 0; i < count(); i++)
{
if (at(i).name() == versionName)
return &at(i);
if (at(i)->name() == versionName)
return at(i);
}
return NULL;
return PtrLWJGLVersion();
}