aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui/pages/instance
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/ui/pages/instance')
-rw-r--r--launcher/ui/pages/instance/InstanceSettingsPage.cpp26
-rw-r--r--launcher/ui/pages/instance/InstanceSettingsPage.h3
-rw-r--r--launcher/ui/pages/instance/InstanceSettingsPage.ui87
3 files changed, 77 insertions, 39 deletions
diff --git a/launcher/ui/pages/instance/InstanceSettingsPage.cpp b/launcher/ui/pages/instance/InstanceSettingsPage.cpp
index 5da7f19f..50039e87 100644
--- a/launcher/ui/pages/instance/InstanceSettingsPage.cpp
+++ b/launcher/ui/pages/instance/InstanceSettingsPage.cpp
@@ -59,12 +59,12 @@ InstanceSettingsPage::InstanceSettingsPage(BaseInstance *inst, QWidget *parent)
{
m_settings = inst->settings();
ui->setupUi(this);
- auto sysMB = Sys::getSystemRam() / Sys::mebibyte;
- ui->maxMemSpinBox->setMaximum(sysMB);
+
connect(ui->openGlobalJavaSettingsButton, &QCommandLinkButton::clicked, this, &InstanceSettingsPage::globalSettingsButtonClicked);
connect(APPLICATION, &Application::globalSettingsAboutToOpen, this, &InstanceSettingsPage::applySettings);
connect(APPLICATION, &Application::globalSettingsClosed, this, &InstanceSettingsPage::loadSettings);
loadSettings();
+ updateThresholds();
}
bool InstanceSettingsPage::shouldDisplay() const
@@ -437,6 +437,11 @@ void InstanceSettingsPage::on_javaTestBtn_clicked()
checker->run();
}
+void InstanceSettingsPage::on_maxMemSpinBox_valueChanged(int i)
+{
+ updateThresholds();
+}
+
void InstanceSettingsPage::checkerFinished()
{
checker.reset();
@@ -447,3 +452,20 @@ void InstanceSettingsPage::retranslate()
ui->retranslateUi(this);
ui->customCommands->retranslate(); // TODO: why is this seperate from the others?
}
+
+void InstanceSettingsPage::updateThresholds()
+{
+ auto sysMiB = Sys::getSystemRam() / Sys::mebibyte;
+ unsigned int maxMem = ui->maxMemSpinBox->value();
+
+ if (maxMem >= sysMiB) {
+ ui->labelMaxMemIcon->setText(u8"✘");
+ ui->labelMaxMemIcon->setToolTip(tr("Your maximum memory allocation exceeds your system memory capacity."));
+ } else if (maxMem > (sysMiB * 0.9)) {
+ ui->labelMaxMemIcon->setText(u8"⚠");
+ ui->labelMaxMemIcon->setToolTip(tr("Your maximum memory allocation approaches your system memory capacity."));
+ } else {
+ ui->labelMaxMemIcon->setText(u8"✔");
+ ui->labelMaxMemIcon->setToolTip("");
+ }
+}
diff --git a/launcher/ui/pages/instance/InstanceSettingsPage.h b/launcher/ui/pages/instance/InstanceSettingsPage.h
index 97d1296f..7450188d 100644
--- a/launcher/ui/pages/instance/InstanceSettingsPage.h
+++ b/launcher/ui/pages/instance/InstanceSettingsPage.h
@@ -77,10 +77,13 @@ public:
virtual bool shouldDisplay() const override;
void retranslate() override;
+ void updateThresholds();
+
private slots:
void on_javaDetectBtn_clicked();
void on_javaTestBtn_clicked();
void on_javaBrowseBtn_clicked();
+ void on_maxMemSpinBox_valueChanged(int i);
void applySettings();
void loadSettings();
diff --git a/launcher/ui/pages/instance/InstanceSettingsPage.ui b/launcher/ui/pages/instance/InstanceSettingsPage.ui
index 8b3c3370..43488aa2 100644
--- a/launcher/ui/pages/instance/InstanceSettingsPage.ui
+++ b/launcher/ui/pages/instance/InstanceSettingsPage.ui
@@ -112,40 +112,54 @@
<property name="checked">
<bool>false</bool>
</property>
- <layout class="QGridLayout" name="gridLayout_2">
- <item row="0" column="0">
- <widget class="QLabel" name="labelMinMem">
+ <layout class="QGridLayout" name="gridLayout_2" columnstretch="1,0,0">
+ <item row="2" column="0">
+ <widget class="QLabel" name="labelPermGen">
<property name="text">
- <string>Minimum memory allocation:</string>
+ <string notr="true">PermGen:</string>
</property>
</widget>
</item>
- <item row="1" column="1">
- <widget class="QSpinBox" name="maxMemSpinBox">
+ <item row="1" column="0">
+ <widget class="QLabel" name="labelMaxMem">
+ <property name="text">
+ <string>Maximum memory allocation:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="3">
+ <widget class="QLabel" name="labelPermgenNote">
+ <property name="text">
+ <string>Note: Permgen is set automatically by Java 8 and later</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2">
+ <widget class="QSpinBox" name="permGenSpinBox">
<property name="toolTip">
- <string>The maximum amount of memory Minecraft is allowed to use.</string>
+ <string>The amount of memory available to store loaded Java classes.</string>
</property>
<property name="suffix">
<string notr="true"> MiB</string>
</property>
<property name="minimum">
- <number>128</number>
+ <number>64</number>
</property>
<property name="maximum">
- <number>65536</number>
+ <number>999999999</number>
</property>
<property name="singleStep">
- <number>128</number>
+ <number>8</number>
</property>
<property name="value">
- <number>1024</number>
+ <number>64</number>
</property>
</widget>
</item>
- <item row="0" column="1">
- <widget class="QSpinBox" name="minMemSpinBox">
+ <item row="1" column="2">
+ <widget class="QSpinBox" name="maxMemSpinBox">
<property name="toolTip">
- <string>The amount of memory Minecraft is started with.</string>
+ <string>The maximum amount of memory Minecraft is allowed to use.</string>
</property>
<property name="suffix">
<string notr="true"> MiB</string>
@@ -160,50 +174,49 @@
<number>128</number>
</property>
<property name="value">
- <number>256</number>
+ <number>1024</number>
</property>
</widget>
</item>
- <item row="2" column="1">
- <widget class="QSpinBox" name="permGenSpinBox">
+ <item row="0" column="0">
+ <widget class="QLabel" name="labelMinMem">
+ <property name="text">
+ <string>Minimum memory allocation:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <widget class="QSpinBox" name="minMemSpinBox">
<property name="toolTip">
- <string>The amount of memory available to store loaded Java classes.</string>
+ <string>The amount of memory Minecraft is started with.</string>
</property>
<property name="suffix">
<string notr="true"> MiB</string>
</property>
<property name="minimum">
- <number>64</number>
+ <number>128</number>
</property>
<property name="maximum">
- <number>999999999</number>
+ <number>65536</number>
</property>
<property name="singleStep">
- <number>8</number>
+ <number>128</number>
</property>
<property name="value">
- <number>64</number>
+ <number>256</number>
</property>
</widget>
</item>
- <item row="2" column="0">
- <widget class="QLabel" name="labelPermGen">
+ <item row="1" column="1">
+ <widget class="QLabel" name="labelMaxMemIcon">
<property name="text">
- <string notr="true">PermGen:</string>
+ <string notr="true"/>
</property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="labelMaxMem">
- <property name="text">
- <string>Maximum memory allocation:</string>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
</property>
- </widget>
- </item>
- <item row="3" column="0" colspan="2">
- <widget class="QLabel" name="labelPermgenNote">
- <property name="text">
- <string>Note: Permgen is set automatically by Java 8 and later</string>
+ <property name="buddy">
+ <cstring>maxMemSpinBox</cstring>
</property>
</widget>
</item>