NOISSUE polish the java setup wizard page

* Added a button to check why Java failed
* It will now avoid automatically scanning binaries that do not have 'java' in their filename
* Fixed some crashes related to running too many Java checks (it only does one at a time now)
* It can now distinguish between more Java failure states (not there at all, crashing, returning nonsense)
* Changed '...' button to Browse button to match the wizard page subtitle
* Changing minimum and maximum memory will no longer trigger a java check twice
This commit is contained in:
Petr Mrázek
2017-01-07 06:52:09 +01:00
parent 705a658fef
commit c4ec6bc0f5
8 changed files with 228 additions and 76 deletions

View File

@ -15,7 +15,7 @@ class QHBoxLayout;
class QGroupBox;
class QGridLayout;
class QLabel;
class IconLabel;
class QToolButton;
class JavaWizardPage : public BaseWizardPage
{
@ -35,15 +35,20 @@ public:
enum class JavaStatus
{
NotSet,
Pending,
Good,
Bad
} javaStatus;
DoesNotExist,
DoesNotStart,
ReturnedInvalidData
} javaStatus = JavaStatus::NotSet;
protected slots:
void memoryValueChanged(int);
void javaPathEdited(const QString &path);
void javaVersionSelected(BaseVersionPtr version);
void on_javaBrowseBtn_clicked();
void on_javaStatusBtn_clicked();
void checkFinished(JavaCheckResult result);
protected: /* methods */
@ -58,7 +63,7 @@ private: /* data */
QLineEdit * m_javaPathTextBox = nullptr;
QPushButton * m_javaBrowseBtn = nullptr;
IconLabel * m_javaStatusLabel = nullptr;
QToolButton * m_javaStatusBtn = nullptr;
QHBoxLayout *m_horizontalLayout = nullptr;
QGroupBox *m_memoryGroupBox = nullptr;
@ -73,7 +78,12 @@ private: /* data */
QIcon yellowIcon;
QIcon badIcon;
int observedMinMemory = 0;
int observedMaxMemory = 0;
int observedPermGenMemory = 0;
QString queuedCheck;
uint64_t m_availableMemory = 0ull;
shared_qobject_ptr<JavaChecker> m_checker;
JavaCheckResult m_result;
};