From aca7764afc82f39bef32f41c5c53eb70e8f54ba8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 20 Oct 2013 22:28:31 +0200 Subject: [PATCH] Ask for java path when hostname changes from the last run. --- MultiMC.cpp | 1 + gui/mainwindow.cpp | 41 +++++++++++++++++++++++++++++++---------- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/MultiMC.cpp b/MultiMC.cpp index 6c3c0269..26cbcb93 100644 --- a/MultiMC.cpp +++ b/MultiMC.cpp @@ -265,6 +265,7 @@ void MultiMC::initGlobalSettings() // Java Settings m_settings->registerSetting(new Setting("JavaPath", "")); + m_settings->registerSetting(new Setting("LastHostname", "")); m_settings->registerSetting(new Setting("JvmArgs", "")); // Custom Commands diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp index 0bd6f651..2efcda44 100644 --- a/gui/mainwindow.cpp +++ b/gui/mainwindow.cpp @@ -73,7 +73,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { - MultiMCPlatform::fixWM_CLASS(this); + MultiMCPlatform::fixWM_CLASS(this); ui->setupUi(this); setWindowTitle(QString("MultiMC %1").arg(MMC->version().toString())); @@ -615,8 +615,9 @@ void MainWindow::on_actionChangeInstMCVersion_triggered() auto result = QMessageBox::warning( this, tr("Are you sure?"), tr("This will remove any library/version customization you did previously. " - "This includes things like Forge install and similar."), QMessageBox::Ok, QMessageBox::Abort); - if(result != QMessageBox::Ok) + "This includes things like Forge install and similar."), + QMessageBox::Ok, QMessageBox::Abort); + if (result != QMessageBox::Ok) return; } m_selectedInstance->setIntendedVersionId(vselect.selectedVersion()->descriptor()); @@ -708,22 +709,42 @@ void MainWindow::instanceEnded() void MainWindow::checkSetDefaultJava() { - QString currentJavaPath = MMC->settings()->get("JavaPath").toString(); - if(currentJavaPath.isEmpty()) + bool askForJava = false; { - QLOG_DEBUG() << "Java path not set, showing Java selection dialog..."; + QString currentHostName = QHostInfo::localHostName(); + QString oldHostName = MMC->settings()->get("LastHostname").toString(); + if (currentHostName != oldHostName) + { + MMC->settings()->set("LastHostname", currentHostName); + askForJava = true; + } + } + + { + QString currentJavaPath = MMC->settings()->get("JavaPath").toString(); + if (currentJavaPath.isEmpty()) + { + askForJava = true; + } + } + + if (askForJava) + { + QLOG_DEBUG() << "Java path needs resetting, showing Java selection dialog..."; JavaVersionPtr java; - VersionSelectDialog vselect(MMC->javalist().get(), tr("First run: select a Java version"), this, false); + VersionSelectDialog vselect(MMC->javalist().get(), tr("Select a Java version"), this, + false); vselect.setResizeOn(2); vselect.exec(); if (!vselect.selectedVersion()) { - QMessageBox::warning( - this, tr("Invalid version selected"), tr("You didn't select a valid Java version, so MultiMC will select the default. " - "You can change this in the settings dialog.")); + QMessageBox::warning(this, tr("Invalid version selected"), + tr("You didn't select a valid Java version, so MultiMC will " + "select the default. " + "You can change this in the settings dialog.")); JavaUtils ju; java = ju.GetDefaultJava();