Custom environment variables UI and implementation

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
This commit is contained in:
TheKodeToad
2023-07-12 18:10:13 +01:00
parent 9499066375
commit 997a3709d4
31 changed files with 6722 additions and 486 deletions

View File

@ -84,6 +84,9 @@ void InstanceSettingsPage::globalSettingsButtonClicked(bool)
case 2:
APPLICATION->ShowGlobalSettings(this, "custom-commands");
return;
case 3:
APPLICATION->ShowGlobalSettings(this, "environment-variables");
return;
default:
APPLICATION->ShowGlobalSettings(this, "minecraft-settings");
return;
@ -217,6 +220,11 @@ void InstanceSettingsPage::applySettings()
m_settings->reset("PostExitCommand");
}
// Environment Variables
m_settings->set("UseEnv", ui->environmentVariables->checked());
m_settings->set("OverrideEnv", ui->environmentVariables->override());
m_settings->set("Env", ui->environmentVariables->value());
// Workarounds
bool workarounds = ui->nativeWorkaroundsGroupBox->isChecked();
m_settings->set("OverrideNativeWorkarounds", workarounds);
@ -345,6 +353,14 @@ void InstanceSettingsPage::loadSettings()
m_settings->get("PostExitCommand").toString()
);
// Environment variables
ui->environmentVariables->initialize(
true,
m_settings->get("UseEnv").toBool(),
m_settings->get("OverrideEnv").toBool(),
m_settings->get("Env").toMap()
);
// Workarounds
ui->nativeWorkaroundsGroupBox->setChecked(m_settings->get("OverrideNativeWorkarounds").toBool());
ui->useNativeGLFWCheck->setChecked(m_settings->get("UseNativeGLFW").toBool());
@ -492,6 +508,7 @@ void InstanceSettingsPage::retranslate()
{
ui->retranslateUi(this);
ui->customCommands->retranslate(); // TODO: why is this seperate from the others?
ui->environmentVariables->retranslate();
}
void InstanceSettingsPage::updateThresholds()

View File

@ -35,13 +35,10 @@
</item>
<item>
<widget class="QTabWidget" name="settingsTabs">
<property name="tabShape">
<enum>QTabWidget::Rounded</enum>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="minecraftTab">
<widget class="QWidget" name="minecraftPage">
<attribute name="title">
<string notr="true">Java</string>
</attribute>
@ -246,7 +243,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="javaTab">
<widget class="QWidget" name="javaPage">
<attribute name="title">
<string>Game windows</string>
</attribute>
@ -406,7 +403,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="tab">
<widget class="QWidget" name="customCommandsPage">
<attribute name="title">
<string>Custom commands</string>
</attribute>
@ -416,6 +413,16 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="environmentVariablesPage">
<attribute name="title">
<string>Environment variables</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_16">
<item>
<widget class="EnvironmentVariables" name="environmentVariables" native="true"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="workaroundsPage">
<attribute name="title">
<string>Workarounds</string>
@ -669,6 +676,12 @@
<header>ui/widgets/CustomCommands.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>EnvironmentVariables</class>
<extends>QWidget</extends>
<header>ui/widgets/EnvironmentVariables.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>openGlobalJavaSettingsButton</tabstop>