Fix update unpacking

This commit is contained in:
woblight
2018-07-22 18:59:07 +02:00
parent 563fb98f64
commit dbb95f47a1
4 changed files with 13 additions and 8 deletions
+4 -1
View File
@@ -37,7 +37,10 @@ HEADERS += \
LIBS += -lgit2 LIBS += -lgit2
win32 { win32 {
DEFINES += _WIN32_WINNT=0x06010000 DEFINES += _WIN32_WINNT=0x06010000 GAM_EXEC=\\\"$${TARGET}.exe\\\"
}
unix {
DEFINES += GAM_EXEC=\\\"$${TARGET}\\\"
} }
isEmpty(GIT_DESCRIBE){ isEmpty(GIT_DESCRIBE){
+6 -4
View File
@@ -490,10 +490,12 @@ void Control::downloadUpdate()
void Control::executeUpdate() void Control::executeUpdate()
{ {
delegate("Apply Update", [this](){ delegate("Apply Update", [this](){
QuaZip zip("GitAddonsManager.zip"); QDir appRoot(QApplication::applicationDirPath());
QuaZip zip(appRoot.absoluteFilePath("GitAddonsManager.zip"));
if (!zip.open(QuaZip::mdUnzip)) if (!zip.open(QuaZip::mdUnzip))
return; return;
QDir root(QApplication::applicationDirPath() + "/update"); QDir root(appRoot.absoluteFilePath("update"));
appRoot.mkdir(root.absolutePath());
unsigned int size = 0; unsigned int size = 0;
foreach (const QuaZipFileInfo &info, zip.getFileInfoList()) foreach (const QuaZipFileInfo &info, zip.getFileInfoList())
size += info.uncompressedSize; size += info.uncompressedSize;
@@ -515,8 +517,8 @@ void Control::executeUpdate()
f.close(); f.close();
} }
zip.close(); zip.close();
QFile::remove("GitAddonsManager.zip"); QFile::remove(appRoot.absoluteFilePath("GitAddonsManager.zip"));
QFile exe(root.absoluteFilePath("GitAddonsManager")); QFile exe(root.absoluteFilePath(GAM_EXEC));
exe.setPermissions(QFile::ExeOwner | exe.permissions()); exe.setPermissions(QFile::ExeOwner | exe.permissions());
},[this](){ },[this](){
setUpdateStatus(UpdateStatus::UpdateDone); setUpdateStatus(UpdateStatus::UpdateDone);
+2 -2
View File
@@ -83,9 +83,9 @@ int main(int argc, char *argv[])
if (res == 2) { if (res == 2) {
QStringList args = app.arguments().mid(1); QStringList args = app.arguments().mid(1);
args << "--update" << QString("\"%1\"").arg(app.applicationDirPath()); args << "--update" << QString("\"%1\"").arg(app.applicationDirPath());
QProcess().startDetached(app.applicationDirPath()+"/update/GitAddonsManager", args); QProcess().startDetached(app.applicationDirPath()+"/update/" + GAM_EXEC, args);
} }
if (res == 3) if (res == 3)
QProcess().startDetached(update + "/GitAddonsManager", QApplication::arguments().mid(1) << "--update" << ""); QProcess().startDetached(update + "/" + GAM_EXEC, QApplication::arguments().mid(1) << "--update" << "");
return res; return res;
} }
+1 -1
View File
@@ -169,7 +169,7 @@ ApplicationWindow {
Engine.updateStatus === Engine.DownloadingUpdate ? Engine.updateStatus === Engine.DownloadingUpdate ?
qsTr("Downloading update...") : qsTr("Downloading update...") :
Engine.updateStatus === Engine.UpdateReady ? Engine.updateStatus === Engine.UpdateReady ?
qsTr("Apply update") : qsTr("error") qsTr("Unpacking update") : qsTr("error")
} }
} }
onClicked: Engine.updateStatus === Engine.NoUpdate ? onClicked: Engine.updateStatus === Engine.NoUpdate ?