Changed: Launch upgrade script from 7z or ZIP archives if present, see #279
This commit is contained in:
parent
265390a6c5
commit
b416322a31
2 changed files with 17 additions and 6 deletions
|
@ -553,9 +553,11 @@ void COperationDialog::extractDownloadedClient()
|
|||
m_currentOperation = tr("Extract client files required by server %1").arg(server.name);
|
||||
m_currentOperationProgressFormat = tr("Extracting %1...");
|
||||
|
||||
QString destinationDirectory = server.getDirectory();
|
||||
|
||||
CFilesExtractor extractor(this);
|
||||
extractor.setSourceFile(config->getInstallationDirectory() + "/" + config->expandVariables(server.clientDownloadFilename));
|
||||
extractor.setDestinationDirectory(server.getDirectory());
|
||||
extractor.setDestinationDirectory(destinationDirectory);
|
||||
|
||||
if (extractor.exec())
|
||||
{
|
||||
|
@ -564,6 +566,8 @@ void COperationDialog::extractDownloadedClient()
|
|||
{
|
||||
}
|
||||
|
||||
launchUpgradeScript(destinationDirectory, server.clientFilename);
|
||||
|
||||
emit done();
|
||||
}
|
||||
|
||||
|
@ -652,7 +656,14 @@ void COperationDialog::extractBnpClient()
|
|||
extractor.setDestinationDirectory(destinationDirectory);
|
||||
extractor.exec();
|
||||
|
||||
QString upgradeScript = destinationDirectory + "/upgd_nl.";
|
||||
launchUpgradeScript(destinationDirectory, server.clientFilename);
|
||||
|
||||
emit done();
|
||||
}
|
||||
|
||||
void COperationDialog::launchUpgradeScript(const QString &directory, const QString &executable)
|
||||
{
|
||||
QString upgradeScript = directory + "/upgd_nl.";
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
upgradeScript += "bat";
|
||||
|
@ -665,9 +676,9 @@ void COperationDialog::extractBnpClient()
|
|||
QProcess process;
|
||||
|
||||
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
|
||||
env.insert("RYZOM_CLIENT", QDir::toNativeSeparators(destinationDirectory + "/" + server.clientFilename));
|
||||
env.insert("UNPACKPATH", QDir::toNativeSeparators(destinationDirectory + "/unpack"));
|
||||
env.insert("ROOTPATH", QDir::toNativeSeparators(destinationDirectory));
|
||||
env.insert("RYZOM_CLIENT", QDir::toNativeSeparators(directory + "/" + executable));
|
||||
env.insert("UNPACKPATH", QDir::toNativeSeparators(directory + "/unpack"));
|
||||
env.insert("ROOTPATH", QDir::toNativeSeparators(directory));
|
||||
env.insert("STARTUPPATH", "");
|
||||
process.setProcessEnvironment(env);
|
||||
|
||||
|
@ -694,7 +705,6 @@ void COperationDialog::extractBnpClient()
|
|||
}
|
||||
}
|
||||
|
||||
emit done();
|
||||
}
|
||||
|
||||
void COperationDialog::copyInstaller()
|
||||
|
|
|
@ -132,6 +132,7 @@ protected:
|
|||
virtual bool operationShouldStop();
|
||||
|
||||
void renamePartFile();
|
||||
void launchUpgradeScript(const QString &directory, const QString &executable);
|
||||
|
||||
// hacks to prevent an infinite loop
|
||||
void acceptDelayed();
|
||||
|
|
Loading…
Reference in a new issue