JavaSettingsWidget -> JavaWizardWidget

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
This commit is contained in:
TheKodeToad 2024-11-07 14:51:43 +00:00
parent 8132828ad7
commit 012bbca197
No known key found for this signature in database
GPG Key ID: 5E39D70B4C93C38E
6 changed files with 46 additions and 285 deletions

View File

@ -1085,8 +1085,8 @@ SET(LAUNCHER_SOURCES
ui/widgets/FocusLineEdit.h
ui/widgets/IconLabel.cpp
ui/widgets/IconLabel.h
ui/widgets/JavaSettingsWidget.cpp
ui/widgets/JavaSettingsWidget.h
ui/widgets/JavaWizardWidget.cpp
ui/widgets/JavaWizardWidget.h
ui/widgets/LabeledToolButton.cpp
ui/widgets/LabeledToolButton.h
ui/widgets/LanguageSelectionWidget.cpp

View File

@ -14,7 +14,7 @@
#include "JavaCommon.h"
#include "ui/widgets/JavaSettingsWidget.h"
#include "ui/widgets/JavaWizardWidget.h"
#include "ui/widgets/VersionSelectWidget.h"
JavaWizardPage::JavaWizardPage(QWidget* parent) : BaseWizardPage(parent)
@ -27,7 +27,7 @@ void JavaWizardPage::setupUi()
setObjectName(QStringLiteral("javaPage"));
QVBoxLayout* layout = new QVBoxLayout(this);
m_java_widget = new JavaSettingsWidget(this);
m_java_widget = new JavaWizardWidget(this);
layout->addWidget(m_java_widget);
setLayout(layout);
@ -58,13 +58,13 @@ bool JavaWizardPage::validatePage()
settings->set("UserAskedAboutAutomaticJavaDownload", true);
switch (result) {
default:
case JavaSettingsWidget::ValidationStatus::Bad: {
case JavaWizardWidget::ValidationStatus::Bad: {
return false;
}
case JavaSettingsWidget::ValidationStatus::AllOK: {
case JavaWizardWidget::ValidationStatus::AllOK: {
settings->set("JavaPath", m_java_widget->javaPath());
} /* fallthrough */
case JavaSettingsWidget::ValidationStatus::JavaBad: {
case JavaWizardWidget::ValidationStatus::JavaBad: {
// Memory
auto s = APPLICATION->settings();
s->set("MinMemAlloc", m_java_widget->minHeapSize());

View File

@ -2,7 +2,7 @@
#include "BaseWizardPage.h"
class JavaSettingsWidget;
class JavaWizardWidget;
class JavaWizardPage : public BaseWizardPage {
Q_OBJECT
@ -21,5 +21,5 @@ class JavaWizardPage : public BaseWizardPage {
void retranslate() override;
private: /* data */
JavaSettingsWidget* m_java_widget = nullptr;
JavaWizardWidget* m_java_widget = nullptr;
};

View File

@ -1,4 +1,4 @@
#include "JavaSettingsWidget.h"
#include "JavaWizardWidget.h"
#include <QFileDialog>
#include <QGroupBox>
@ -29,7 +29,7 @@
#include "Application.h"
#include "BuildConfig.h"
JavaSettingsWidget::JavaSettingsWidget(QWidget* parent) : QWidget(parent)
JavaWizardWidget::JavaWizardWidget(QWidget* parent) : QWidget(parent)
{
m_availableMemory = Sys::getSystemRam() / Sys::mebibyte;
@ -42,17 +42,17 @@ JavaSettingsWidget::JavaSettingsWidget(QWidget* parent) : QWidget(parent)
connect(m_minMemSpinBox, SIGNAL(valueChanged(int)), this, SLOT(onSpinBoxValueChanged(int)));
connect(m_maxMemSpinBox, SIGNAL(valueChanged(int)), this, SLOT(onSpinBoxValueChanged(int)));
connect(m_permGenSpinBox, SIGNAL(valueChanged(int)), this, SLOT(onSpinBoxValueChanged(int)));
connect(m_memoryTimer, &QTimer::timeout, this, &JavaSettingsWidget::memoryValueChanged);
connect(m_versionWidget, &VersionSelectWidget::selectedVersionChanged, this, &JavaSettingsWidget::javaVersionSelected);
connect(m_javaBrowseBtn, &QPushButton::clicked, this, &JavaSettingsWidget::on_javaBrowseBtn_clicked);
connect(m_javaPathTextBox, &QLineEdit::textEdited, this, &JavaSettingsWidget::javaPathEdited);
connect(m_javaStatusBtn, &QToolButton::clicked, this, &JavaSettingsWidget::on_javaStatusBtn_clicked);
connect(m_memoryTimer, &QTimer::timeout, this, &JavaWizardWidget::memoryValueChanged);
connect(m_versionWidget, &VersionSelectWidget::selectedVersionChanged, this, &JavaWizardWidget::javaVersionSelected);
connect(m_javaBrowseBtn, &QPushButton::clicked, this, &JavaWizardWidget::on_javaBrowseBtn_clicked);
connect(m_javaPathTextBox, &QLineEdit::textEdited, this, &JavaWizardWidget::javaPathEdited);
connect(m_javaStatusBtn, &QToolButton::clicked, this, &JavaWizardWidget::on_javaStatusBtn_clicked);
if (BuildConfig.JAVA_DOWNLOADER_ENABLED) {
connect(m_javaDownloadBtn, &QPushButton::clicked, this, &JavaSettingsWidget::javaDownloadBtn_clicked);
connect(m_javaDownloadBtn, &QPushButton::clicked, this, &JavaWizardWidget::javaDownloadBtn_clicked);
}
}
void JavaSettingsWidget::setupUi()
void JavaWizardWidget::setupUi()
{
setObjectName(QStringLiteral("javaSettingsWidget"));
m_verticalLayout = new QVBoxLayout(this);
@ -183,7 +183,7 @@ void JavaSettingsWidget::setupUi()
retranslate();
}
void JavaSettingsWidget::initialize()
void JavaWizardWidget::initialize()
{
m_versionWidget->initialize(APPLICATION->javalist().get());
m_versionWidget->selectSearch();
@ -202,7 +202,7 @@ void JavaSettingsWidget::initialize()
}
}
void JavaSettingsWidget::refresh()
void JavaWizardWidget::refresh()
{
if (BuildConfig.JAVA_DOWNLOADER_ENABLED && m_autodownloadCheckBox->isChecked()) {
return;
@ -214,7 +214,7 @@ void JavaSettingsWidget::refresh()
m_versionWidget->loadList();
}
JavaSettingsWidget::ValidationStatus JavaSettingsWidget::validate()
JavaWizardWidget::ValidationStatus JavaWizardWidget::validate()
{
switch (javaStatus) {
default:
@ -277,12 +277,12 @@ JavaSettingsWidget::ValidationStatus JavaSettingsWidget::validate()
}
}
QString JavaSettingsWidget::javaPath() const
QString JavaWizardWidget::javaPath() const
{
return m_javaPathTextBox->text();
}
int JavaSettingsWidget::maxHeapSize() const
int JavaWizardWidget::maxHeapSize() const
{
auto min = m_minMemSpinBox->value();
auto max = m_maxMemSpinBox->value();
@ -291,7 +291,7 @@ int JavaSettingsWidget::maxHeapSize() const
return max;
}
int JavaSettingsWidget::minHeapSize() const
int JavaWizardWidget::minHeapSize() const
{
auto min = m_minMemSpinBox->value();
auto max = m_maxMemSpinBox->value();
@ -300,17 +300,17 @@ int JavaSettingsWidget::minHeapSize() const
return min;
}
bool JavaSettingsWidget::permGenEnabled() const
bool JavaWizardWidget::permGenEnabled() const
{
return m_permGenSpinBox->isVisible();
}
int JavaSettingsWidget::permGenSize() const
int JavaWizardWidget::permGenSize() const
{
return m_permGenSpinBox->value();
}
void JavaSettingsWidget::memoryValueChanged()
void JavaWizardWidget::memoryValueChanged()
{
bool actuallyChanged = false;
unsigned int min = m_minMemSpinBox->value();
@ -334,7 +334,7 @@ void JavaSettingsWidget::memoryValueChanged()
}
}
void JavaSettingsWidget::javaVersionSelected(BaseVersion::Ptr version)
void JavaWizardWidget::javaVersionSelected(BaseVersion::Ptr version)
{
auto java = std::dynamic_pointer_cast<JavaInstall>(version);
if (!java) {
@ -347,7 +347,7 @@ void JavaSettingsWidget::javaVersionSelected(BaseVersion::Ptr version)
checkJavaPath(java->path);
}
void JavaSettingsWidget::on_javaBrowseBtn_clicked()
void JavaWizardWidget::on_javaBrowseBtn_clicked()
{
auto filter = QString("Java (%1)").arg(JavaUtils::javaExecutable);
auto raw_path = QFileDialog::getOpenFileName(this, tr("Find Java executable"), QString(), filter);
@ -359,13 +359,13 @@ void JavaSettingsWidget::on_javaBrowseBtn_clicked()
checkJavaPath(cooked_path);
}
void JavaSettingsWidget::javaDownloadBtn_clicked()
void JavaWizardWidget::javaDownloadBtn_clicked()
{
auto jdialog = new Java::InstallDialog({}, nullptr, this);
jdialog->exec();
}
void JavaSettingsWidget::on_javaStatusBtn_clicked()
void JavaWizardWidget::on_javaStatusBtn_clicked()
{
QString text;
bool failed = false;
@ -412,7 +412,7 @@ void JavaSettingsWidget::on_javaStatusBtn_clicked()
->show();
}
void JavaSettingsWidget::setJavaStatus(JavaSettingsWidget::JavaStatus status)
void JavaWizardWidget::setJavaStatus(JavaWizardWidget::JavaStatus status)
{
javaStatus = status;
switch (javaStatus) {
@ -429,12 +429,12 @@ void JavaSettingsWidget::setJavaStatus(JavaSettingsWidget::JavaStatus status)
}
}
void JavaSettingsWidget::javaPathEdited(const QString& path)
void JavaWizardWidget::javaPathEdited(const QString& path)
{
checkJavaPathOnEdit(path);
}
void JavaSettingsWidget::checkJavaPathOnEdit(const QString& path)
void JavaWizardWidget::checkJavaPathOnEdit(const QString& path)
{
auto realPath = FS::ResolveExecutable(path);
QFileInfo pathInfo(realPath);
@ -447,7 +447,7 @@ void JavaSettingsWidget::checkJavaPathOnEdit(const QString& path)
}
}
void JavaSettingsWidget::checkJavaPath(const QString& path)
void JavaWizardWidget::checkJavaPath(const QString& path)
{
if (m_checker) {
queuedCheck = path;
@ -461,11 +461,11 @@ void JavaSettingsWidget::checkJavaPath(const QString& path)
setJavaStatus(JavaStatus::Pending);
m_checker.reset(
new JavaChecker(path, "", minHeapSize(), maxHeapSize(), m_permGenSpinBox->isVisible() ? m_permGenSpinBox->value() : 0, 0, this));
connect(m_checker.get(), &JavaChecker::checkFinished, this, &JavaSettingsWidget::checkFinished);
connect(m_checker.get(), &JavaChecker::checkFinished, this, &JavaWizardWidget::checkFinished);
m_checker->start();
}
void JavaSettingsWidget::checkFinished(const JavaChecker::Result& result)
void JavaWizardWidget::checkFinished(const JavaChecker::Result& result)
{
m_result = result;
switch (result.validity) {
@ -490,7 +490,7 @@ void JavaSettingsWidget::checkFinished(const JavaChecker::Result& result)
}
}
void JavaSettingsWidget::retranslate()
void JavaWizardWidget::retranslate()
{
m_memoryGroupBox->setTitle(tr("Memory"));
m_maxMemSpinBox->setToolTip(tr("The maximum amount of memory Minecraft is allowed to use."));
@ -506,7 +506,7 @@ void JavaSettingsWidget::retranslate()
m_autoJavaGroupBox->setTitle(tr("Autodetect Java"));
}
void JavaSettingsWidget::updateThresholds()
void JavaWizardWidget::updateThresholds()
{
QString iconName;
@ -538,22 +538,22 @@ void JavaSettingsWidget::updateThresholds()
}
}
bool JavaSettingsWidget::autoDownloadJava() const
bool JavaWizardWidget::autoDownloadJava() const
{
return m_autodownloadCheckBox && m_autodownloadCheckBox->isChecked();
}
bool JavaSettingsWidget::autoDetectJava() const
bool JavaWizardWidget::autoDetectJava() const
{
return m_autodetectJavaCheckBox->isChecked();
}
void JavaSettingsWidget::onSpinBoxValueChanged(int)
void JavaWizardWidget::onSpinBoxValueChanged(int)
{
m_memoryTimer->start(500);
}
JavaSettingsWidget::~JavaSettingsWidget()
JavaWizardWidget::~JavaWizardWidget()
{
delete m_verticalSpacer;
};

View File

@ -22,12 +22,12 @@ class QSpacerItem;
/**
* This is a widget for all the Java settings dialogs and pages.
*/
class JavaSettingsWidget : public QWidget {
class JavaWizardWidget : public QWidget {
Q_OBJECT
public:
explicit JavaSettingsWidget(QWidget* parent);
virtual ~JavaSettingsWidget();
explicit JavaWizardWidget(QWidget* parent);
virtual ~JavaWizardWidget();
enum class JavaStatus { NotSet, Pending, Good, DoesNotExist, DoesNotStart, ReturnedInvalidData } javaStatus = JavaStatus::NotSet;

View File

@ -282,245 +282,6 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="javaPage">
<attribute name="title">
<string>Java</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_11">
<item>
<widget class="QScrollArea" name="scrollArea_4">
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents_6">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>610</width>
<height>454</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_18">
<item>
<widget class="QGroupBox" name="javaSettingsGroupBox">
<property name="enabled">
<bool>true</bool>
</property>
<property name="title">
<string>Java Insta&amp;llation</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="4" column="0">
<widget class="QCheckBox" name="skipCompatibilityCheckbox">
<property name="toolTip">
<string>If enabled, the launcher will not check if an instance is compatible with the selected Java version.</string>
</property>
<property name="text">
<string>Skip Java compatibility checks</string>
</property>
</widget>
</item>
<item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLineEdit" name="javaPathTextBox"/>
</item>
<item>
<widget class="QPushButton" name="javaBrowseBtn">
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QPushButton" name="javaDownloadBtn">
<property name="text">
<string>Download Java</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="javaDetectBtn">
<property name="text">
<string>Auto-detect...</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="javaTestBtn">
<property name="text">
<string>Test</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="memoryGroupBox">
<property name="enabled">
<bool>true</bool>
</property>
<property name="title">
<string>Memor&amp;y</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<layout class="QGridLayout" name="gridLayout_5" columnstretch="1,0,0,0">
<item row="2" column="0">
<widget class="QLabel" name="labelPermGen">
<property name="text">
<string>PermGen:</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="labelMinMem">
<property name="text">
<string>Minimum memory allocation:</string>
</property>
</widget>
</item>
<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="0" column="2">
<widget class="QSpinBox" name="minMemSpinBox">
<property name="toolTip">
<string>The amount of memory Minecraft is started with.</string>
</property>
<property name="suffix">
<string notr="true"> MiB</string>
</property>
<property name="minimum">
<number>8</number>
</property>
<property name="maximum">
<number>1048576</number>
</property>
<property name="singleStep">
<number>128</number>
</property>
<property name="value">
<number>256</number>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QSpinBox" name="maxMemSpinBox">
<property name="toolTip">
<string>The maximum amount of memory Minecraft is allowed to use.</string>
</property>
<property name="suffix">
<string notr="true"> MiB</string>
</property>
<property name="minimum">
<number>8</number>
</property>
<property name="maximum">
<number>1048576</number>
</property>
<property name="singleStep">
<number>128</number>
</property>
<property name="value">
<number>1024</number>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QSpinBox" name="permGenSpinBox">
<property name="toolTip">
<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>4</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="singleStep">
<number>8</number>
</property>
<property name="value">
<number>64</number>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLabel" name="labelMaxMemIcon">
<property name="text">
<string notr="true"/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="buddy">
<cstring>maxMemSpinBox</cstring>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="javaArgumentsGroupBox">
<property name="enabled">
<bool>true</bool>
</property>
<property name="title">
<string>Java Argumen&amp;ts</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<layout class="QGridLayout" name="gridLayout_6">
<item row="1" column="1">
<widget class="QPlainTextEdit" name="jvmArgsTextBox"/>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tweaksPage">
<attribute name="title">
<string>Tweaks</string>