Added NagUtils, nag people about trying to override JVM memory options

This commit is contained in:
Sky 2013-11-03 15:20:26 +00:00
parent 09dc356883
commit bade253a1a
5 changed files with 69 additions and 0 deletions

View File

@ -322,6 +322,8 @@ logic/tasks/Task.cpp
# Utilities
logic/JavaUtils.h
logic/JavaUtils.cpp
logic/NagUtils.h
logic/NagUtils.cpp
)

View File

@ -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();
}
}

View File

@ -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());

37
logic/NagUtils.cpp Normal file
View File

@ -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();
}
}
}

23
logic/NagUtils.h Normal file
View File

@ -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);
}