2018-02-18 11:39:35 +00:00
|
|
|
#pragma once
|
|
|
|
#include <QWidget>
|
|
|
|
|
|
|
|
#include <BaseVersion.h>
|
|
|
|
#include <QObjectPtr.h>
|
2023-08-14 17:16:53 +01:00
|
|
|
#include <java/JavaChecker.h>
|
2018-02-18 11:39:35 +00:00
|
|
|
#include <QIcon>
|
|
|
|
|
|
|
|
class QLineEdit;
|
|
|
|
class VersionSelectWidget;
|
|
|
|
class QSpinBox;
|
|
|
|
class QPushButton;
|
|
|
|
class QVBoxLayout;
|
|
|
|
class QHBoxLayout;
|
|
|
|
class QGroupBox;
|
|
|
|
class QGridLayout;
|
|
|
|
class QLabel;
|
|
|
|
class QToolButton;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This is a widget for all the Java settings dialogs and pages.
|
|
|
|
*/
|
2023-08-14 17:16:53 +01:00
|
|
|
class JavaSettingsWidget : public QWidget {
|
2018-02-18 11:39:35 +00:00
|
|
|
Q_OBJECT
|
|
|
|
|
2023-08-14 17:16:53 +01:00
|
|
|
public:
|
|
|
|
explicit JavaSettingsWidget(QWidget* parent);
|
|
|
|
virtual ~JavaSettingsWidget(){};
|
2018-02-18 11:39:35 +00:00
|
|
|
|
2023-08-14 17:16:53 +01:00
|
|
|
enum class JavaStatus { NotSet, Pending, Good, DoesNotExist, DoesNotStart, ReturnedInvalidData } javaStatus = JavaStatus::NotSet;
|
2018-02-18 11:39:35 +00:00
|
|
|
|
2023-08-14 17:16:53 +01:00
|
|
|
enum class ValidationStatus { Bad, JavaBad, AllOK };
|
2018-02-18 11:39:35 +00:00
|
|
|
|
|
|
|
void refresh();
|
|
|
|
void initialize();
|
|
|
|
ValidationStatus validate();
|
|
|
|
void retranslate();
|
|
|
|
|
|
|
|
bool permGenEnabled() const;
|
|
|
|
int permGenSize() const;
|
|
|
|
int minHeapSize() const;
|
|
|
|
int maxHeapSize() const;
|
|
|
|
QString javaPath() const;
|
|
|
|
|
2022-11-20 17:16:19 +00:00
|
|
|
void updateThresholds();
|
|
|
|
|
2023-08-14 17:16:53 +01:00
|
|
|
protected slots:
|
2018-02-18 11:39:35 +00:00
|
|
|
void memoryValueChanged(int);
|
2023-08-14 17:16:53 +01:00
|
|
|
void javaPathEdited(const QString& path);
|
2022-11-01 22:48:26 +00:00
|
|
|
void javaVersionSelected(BaseVersion::Ptr version);
|
2018-02-18 11:39:35 +00:00
|
|
|
void on_javaBrowseBtn_clicked();
|
|
|
|
void on_javaStatusBtn_clicked();
|
|
|
|
void checkFinished(JavaCheckResult result);
|
|
|
|
|
2023-08-14 17:16:53 +01:00
|
|
|
protected: /* methods */
|
|
|
|
void checkJavaPathOnEdit(const QString& path);
|
|
|
|
void checkJavaPath(const QString& path);
|
2018-02-18 11:39:35 +00:00
|
|
|
void setJavaStatus(JavaStatus status);
|
|
|
|
void setupUi();
|
|
|
|
|
2023-08-14 17:16:53 +01:00
|
|
|
private: /* data */
|
|
|
|
VersionSelectWidget* m_versionWidget = nullptr;
|
|
|
|
QVBoxLayout* m_verticalLayout = nullptr;
|
|
|
|
|
|
|
|
QLineEdit* m_javaPathTextBox = nullptr;
|
|
|
|
QPushButton* m_javaBrowseBtn = nullptr;
|
|
|
|
QToolButton* m_javaStatusBtn = nullptr;
|
|
|
|
QHBoxLayout* m_horizontalLayout = nullptr;
|
|
|
|
|
|
|
|
QGroupBox* m_memoryGroupBox = nullptr;
|
|
|
|
QGridLayout* m_gridLayout_2 = nullptr;
|
|
|
|
QSpinBox* m_maxMemSpinBox = nullptr;
|
|
|
|
QLabel* m_labelMinMem = nullptr;
|
|
|
|
QLabel* m_labelMaxMem = nullptr;
|
|
|
|
QLabel* m_labelMaxMemIcon = nullptr;
|
|
|
|
QSpinBox* m_minMemSpinBox = nullptr;
|
|
|
|
QLabel* m_labelPermGen = nullptr;
|
|
|
|
QSpinBox* m_permGenSpinBox = nullptr;
|
2018-02-18 11:39:35 +00:00
|
|
|
QIcon goodIcon;
|
|
|
|
QIcon yellowIcon;
|
|
|
|
QIcon badIcon;
|
|
|
|
|
2022-11-20 17:16:19 +00:00
|
|
|
unsigned int observedMinMemory = 0;
|
|
|
|
unsigned int observedMaxMemory = 0;
|
|
|
|
unsigned int observedPermGenMemory = 0;
|
2018-02-18 11:39:35 +00:00
|
|
|
QString queuedCheck;
|
|
|
|
uint64_t m_availableMemory = 0ull;
|
|
|
|
shared_qobject_ptr<JavaChecker> m_checker;
|
|
|
|
JavaCheckResult m_result;
|
|
|
|
};
|