summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rw-r--r--gui/mainwindow.cpp5
-rw-r--r--gui/settingsdialog.cpp2
-rw-r--r--logic/NagUtils.cpp37
-rw-r--r--logic/NagUtils.h23
5 files changed, 69 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5da43a0b..36a3dce0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -322,6 +322,8 @@ logic/tasks/Task.cpp
# Utilities
logic/JavaUtils.h
logic/JavaUtils.cpp
+logic/NagUtils.h
+logic/NagUtils.cpp
)
diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp
index 00cfacf7..316117b7 100644
--- a/gui/mainwindow.cpp
+++ b/gui/mainwindow.cpp
@@ -66,6 +66,7 @@
#include "logic/OneSixAssets.h"
#include "logic/OneSixUpdate.h"
#include "logic/JavaUtils.h"
+#include "logic/NagUtils.h"
#include "logic/LegacyInstance.h"
@@ -471,9 +472,12 @@ void MainWindow::instanceActivated(QModelIndex index)
{
if (!index.isValid())
return;
+
BaseInstance *inst =
(BaseInstance *)index.data(InstanceList::InstancePointerRole).value<void *>();
+ NagUtils::checkJVMArgs(MMC->settings()->get("JvmArgs").toString(), this);
+
bool autoLogin = MMC->settings()->get("AutoLogin").toBool();
if (autoLogin)
doAutoLogin();
@@ -485,6 +489,7 @@ void MainWindow::on_actionLaunchInstance_triggered()
{
if (m_selectedInstance)
{
+ NagUtils::checkJVMArgs(MMC->settings()->get("JvmArgs").toString(), this);
doLogin();
}
}
diff --git a/gui/settingsdialog.cpp b/gui/settingsdialog.cpp
index 346f7414..703ade31 100644
--- a/gui/settingsdialog.cpp
+++ b/gui/settingsdialog.cpp
@@ -17,6 +17,7 @@
#include "settingsdialog.h"
#include "ui_settingsdialog.h"
#include "logic/JavaUtils.h"
+#include "logic/NagUtils.h"
#include "gui/versionselectdialog.h"
#include "gui/platform.h"
#include "gui/CustomMessageBox.h"
@@ -159,6 +160,7 @@ void SettingsDialog::applySettings(SettingsObject *s)
// Java Settings
s->set("JavaPath", ui->javaPathTextBox->text());
s->set("JvmArgs", ui->jvmArgsTextBox->text());
+ NagUtils::checkJVMArgs(s->get("JvmArgs").toString(), this->parentWidget());
// Custom Commands
s->set("PreLaunchCommand", ui->preLaunchCmdTextBox->text());
diff --git a/logic/NagUtils.cpp b/logic/NagUtils.cpp
new file mode 100644
index 00000000..ccabf71f
--- /dev/null
+++ b/logic/NagUtils.cpp
@@ -0,0 +1,37 @@
+/* Copyright 2013 MultiMC Contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "NagUtils.h"
+#include "gui/CustomMessageBox.h"
+
+namespace NagUtils
+{
+void checkJVMArgs(QString jvmargs, QWidget *parent)
+{
+ if(jvmargs.contains("-XX:PermSize=") || jvmargs.contains(QRegExp("-Xm[sx]")))
+ {
+ CustomMessageBox::selectable(parent, parent->tr("JVM arguments warning"),
+ parent->tr("You tried to manually set a JVM memory option (using "
+ " \"-XX:PermSize\", \"-Xmx\" or \"-Xms\") - there"
+ " are dedicated boxes for these in the settings (Java"
+ " tab, in the Memory group at the top).\n"
+ "Your manual settings will be overridden by the"
+ " dedicated options.\n"
+ "This message will be displayed until you remove them"
+ " from the JVM arguments."),
+ QMessageBox::Warning)->exec();
+ }
+}
+}
diff --git a/logic/NagUtils.h b/logic/NagUtils.h
new file mode 100644
index 00000000..9564a2b1
--- /dev/null
+++ b/logic/NagUtils.h
@@ -0,0 +1,23 @@
+/* Copyright 2013 MultiMC Contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <QWidget>
+
+namespace NagUtils
+{
+void checkJVMArgs(QString args, QWidget *parent);
+}