2017-01-05 03:05:08 +00:00
|
|
|
#include "JavaWizardPage.h"
|
2021-11-22 02:55:16 +00:00
|
|
|
#include "Application.h"
|
2017-01-05 03:05:08 +00:00
|
|
|
|
2023-08-02 17:35:35 +01:00
|
|
|
#include <QFileDialog>
|
2017-01-05 03:05:08 +00:00
|
|
|
#include <QGroupBox>
|
|
|
|
#include <QLabel>
|
|
|
|
#include <QLineEdit>
|
|
|
|
#include <QPushButton>
|
2023-08-02 17:35:35 +01:00
|
|
|
#include <QSpinBox>
|
2017-01-07 05:52:09 +00:00
|
|
|
#include <QToolButton>
|
2023-08-02 17:35:35 +01:00
|
|
|
#include <QVBoxLayout>
|
2017-01-05 03:05:08 +00:00
|
|
|
|
|
|
|
#include <sys.h>
|
2021-11-22 02:55:16 +00:00
|
|
|
|
|
|
|
#include "FileSystem.h"
|
2023-08-02 17:35:35 +01:00
|
|
|
#include "JavaCommon.h"
|
2021-11-22 02:55:16 +00:00
|
|
|
#include "java/JavaInstall.h"
|
|
|
|
#include "java/JavaUtils.h"
|
|
|
|
|
|
|
|
#include "ui/dialogs/CustomMessageBox.h"
|
|
|
|
#include "ui/widgets/JavaSettingsWidget.h"
|
2023-08-02 17:35:35 +01:00
|
|
|
#include "ui/widgets/VersionSelectWidget.h"
|
2017-01-05 03:05:08 +00:00
|
|
|
|
2023-08-02 17:35:35 +01:00
|
|
|
JavaWizardPage::JavaWizardPage(QWidget* parent) : BaseWizardPage(parent)
|
2017-01-05 03:05:08 +00:00
|
|
|
{
|
|
|
|
setupUi();
|
|
|
|
}
|
|
|
|
|
|
|
|
void JavaWizardPage::setupUi()
|
|
|
|
{
|
|
|
|
setObjectName(QStringLiteral("javaPage"));
|
2023-08-02 17:35:35 +01:00
|
|
|
QVBoxLayout* layout = new QVBoxLayout(this);
|
2017-01-05 03:05:08 +00:00
|
|
|
|
2018-02-18 11:39:35 +00:00
|
|
|
m_java_widget = new JavaSettingsWidget(this);
|
|
|
|
layout->addWidget(m_java_widget);
|
|
|
|
setLayout(layout);
|
2017-01-05 03:05:08 +00:00
|
|
|
|
|
|
|
retranslate();
|
|
|
|
}
|
|
|
|
|
|
|
|
void JavaWizardPage::refresh()
|
|
|
|
{
|
2018-02-18 11:39:35 +00:00
|
|
|
m_java_widget->refresh();
|
2017-01-05 03:05:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void JavaWizardPage::initializePage()
|
|
|
|
{
|
2018-02-18 11:39:35 +00:00
|
|
|
m_java_widget->initialize();
|
2017-01-05 03:05:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool JavaWizardPage::wantsRefreshButton()
|
|
|
|
{
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2018-02-18 11:39:35 +00:00
|
|
|
bool JavaWizardPage::validatePage()
|
2017-01-05 03:05:08 +00:00
|
|
|
{
|
2021-11-20 15:22:22 +00:00
|
|
|
auto settings = APPLICATION->settings();
|
2018-02-18 11:39:35 +00:00
|
|
|
auto result = m_java_widget->validate();
|
2023-08-02 17:35:35 +01:00
|
|
|
switch (result) {
|
2018-02-18 11:39:35 +00:00
|
|
|
default:
|
2023-08-02 17:35:35 +01:00
|
|
|
case JavaSettingsWidget::ValidationStatus::Bad: {
|
2018-02-18 11:39:35 +00:00
|
|
|
return false;
|
2017-01-05 03:05:08 +00:00
|
|
|
}
|
2023-08-02 17:35:35 +01:00
|
|
|
case JavaSettingsWidget::ValidationStatus::AllOK: {
|
2018-02-18 11:39:35 +00:00
|
|
|
settings->set("JavaPath", m_java_widget->javaPath());
|
2023-07-04 21:39:24 +01:00
|
|
|
return true;
|
2017-01-05 03:05:08 +00:00
|
|
|
}
|
2023-08-02 17:35:35 +01:00
|
|
|
case JavaSettingsWidget::ValidationStatus::JavaBad: {
|
2018-02-18 11:39:35 +00:00
|
|
|
// Memory
|
2021-11-20 15:22:22 +00:00
|
|
|
auto s = APPLICATION->settings();
|
2018-02-18 11:39:35 +00:00
|
|
|
s->set("MinMemAlloc", m_java_widget->minHeapSize());
|
|
|
|
s->set("MaxMemAlloc", m_java_widget->maxHeapSize());
|
2023-08-02 17:35:35 +01:00
|
|
|
if (m_java_widget->permGenEnabled()) {
|
2018-02-18 11:39:35 +00:00
|
|
|
s->set("PermGen", m_java_widget->permGenSize());
|
2023-08-02 17:35:35 +01:00
|
|
|
} else {
|
2018-02-18 11:39:35 +00:00
|
|
|
s->reset("PermGen");
|
2017-01-07 05:52:09 +00:00
|
|
|
}
|
2018-02-18 11:39:35 +00:00
|
|
|
return true;
|
2017-01-07 05:52:09 +00:00
|
|
|
}
|
2017-01-05 03:05:08 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void JavaWizardPage::retranslate()
|
|
|
|
{
|
2017-01-17 20:17:36 +00:00
|
|
|
setTitle(tr("Java"));
|
2023-08-02 17:35:35 +01:00
|
|
|
setSubTitle(
|
|
|
|
tr("You do not have a working Java set up yet or it went missing.\n"
|
|
|
|
"Please select one of the following or browse for a Java executable."));
|
2018-02-18 11:39:35 +00:00
|
|
|
m_java_widget->retranslate();
|
2017-01-05 03:05:08 +00:00
|
|
|
}
|