From f623dc54efc505264ab40746b284289435a2ec26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 26 Apr 2015 00:01:41 +0200 Subject: [PATCH] GH-909 warn about MultiMC running from temporary folders --- application/MainWindow.cpp | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/application/MainWindow.cpp b/application/MainWindow.cpp index 8b85f1ce..8084f361 100644 --- a/application/MainWindow.cpp +++ b/application/MainWindow.cpp @@ -1958,15 +1958,36 @@ void MainWindow::checkInstancePathForProblems() QString instanceFolder = MMC->settings()->get("InstanceDir").toString(); if (checkProblemticPathJava(QDir(instanceFolder))) { - QMessageBox warning; + QMessageBox warning(this); warning.setText(tr( "Your instance folder contains \'!\' and this is known to cause Java problems!")); warning.setInformativeText( - tr("You have now three options:
" - " - ignore this warning
" - " - change the instance dir in the settings
" + tr("You have now two options:
" + " - change the instance folder in the settings
" " - move this installation of MultiMC5 to a different folder")); warning.setDefaultButton(QMessageBox::Ok); warning.exec(); } + auto tempFolderText = tr("This is a problem:
" + " - MultiMC will likely be deleted without warning by the operating system
" + " - close MultiMC now and extract it to a real location, not a temporary folder"); + QString pathfoldername = QDir(instanceFolder).absolutePath(); + if(pathfoldername.contains("Rar$", Qt::CaseInsensitive)) + { + QMessageBox warning(this); + warning.setText(tr( + "Your instance folder contains \'Rar$\' - that means you haven't extracted the MultiMC zip!")); + warning.setInformativeText(tempFolderText); + warning.setDefaultButton(QMessageBox::Ok); + warning.exec(); + } + else if(pathfoldername.contains(QDir::tempPath())) + { + QMessageBox warning(this); + warning.setText(tr( + "Your instance folder is in a temporary folder: \'%1\'!").arg(QDir::tempPath())); + warning.setInformativeText(tempFolderText); + warning.setDefaultButton(QMessageBox::Ok); + warning.exec(); + } }