Revert sliders

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
This commit is contained in:
TheKodeToad 2025-03-24 11:59:29 +00:00
parent e1e0a3d887
commit 4e6bfde723
No known key found for this signature in database
GPG key ID: 5E39D70B4C93C38E
5 changed files with 129 additions and 487 deletions

View file

@ -53,11 +53,6 @@
#include "ui_JavaSettingsWidget.h"
static QString formatGiBLabel(int value)
{
return QObject::tr("%1 GiB").arg(value / 1024.0, 0, 'f', 1);
}
JavaSettingsWidget::JavaSettingsWidget(InstancePtr instance, QWidget* parent)
: QWidget(parent), m_instance(std::move(instance)), m_ui(new Ui::JavaSettingsWidget)
{
@ -106,50 +101,11 @@ JavaSettingsWidget::JavaSettingsWidget(InstancePtr instance, QWidget* parent)
connect(m_ui->javaDetectBtn, &QPushButton::clicked, this, &JavaSettingsWidget::onJavaAutodetect);
connect(m_ui->javaBrowseBtn, &QPushButton::clicked, this, &JavaSettingsWidget::onJavaBrowse);
connect(m_ui->minMemSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), m_ui->minMemSlider, [this](int value) {
m_ui->minMemSlider->blockSignals(true);
m_ui->minMemSlider->setValue(value);
m_ui->minMemSlider->blockSignals(false);
});
connect(m_ui->maxMemSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), m_ui->maxMemSlider, [this](int value) {
m_ui->maxMemSlider->blockSignals(true);
m_ui->maxMemSlider->setValue(value);
m_ui->maxMemSlider->blockSignals(false);
});
connect(m_ui->minMemSlider, &QAbstractSlider::valueChanged, m_ui->minMemSpinBox, QOverload<int>::of(&QSpinBox::setValue));
connect(m_ui->maxMemSlider, &QAbstractSlider::valueChanged, m_ui->maxMemSpinBox, QOverload<int>::of(&QSpinBox::setValue));
connect(m_ui->minMemSpinBox, &QAbstractSpinBox::editingFinished, this, &JavaSettingsWidget::finishAdjustingMinMemory);
connect(m_ui->maxMemSpinBox, &QAbstractSpinBox::editingFinished, this, &JavaSettingsWidget::finishAdjustingMaxMemory);
connect(m_ui->minMemSlider, &QAbstractSlider::valueChanged, this, &JavaSettingsWidget::finishAdjustingMinMemory);
connect(m_ui->maxMemSlider, &QAbstractSlider::valueChanged, this, &JavaSettingsWidget::finishAdjustingMaxMemory);
connect(m_ui->maxMemSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), this, &JavaSettingsWidget::onMemoryChange);
connect(m_ui->minMemSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), this, &JavaSettingsWidget::onMemoryChange);
int maxSystemMemory = (Sys::getSystemRam() / Sys::mebibyte) - 1;
m_ui->minMemSlider->setMaximum(maxSystemMemory - 1);
m_ui->maxMemSlider->setMaximum(maxSystemMemory - 1);
m_ui->minMemMaxValueHint->setText(formatGiBLabel(maxSystemMemory - 1));
m_ui->maxMemMaxValueHint->setText(formatGiBLabel(maxSystemMemory - 1));
SettingsObjectPtr settings = APPLICATION->settings();
enableAdvancedMemoryControl(settings->get("AdvancedJavaMemoryControl").toBool());
connect(m_ui->memorySimpleButton, &QPushButton::clicked, this, [this, settings] () {
enableAdvancedMemoryControl(false);
settings->set("AdvancedJavaMemoryControl", false);
});
connect(m_ui->memoryAdvancedButton, &QPushButton::clicked, this, [this, settings] () {
enableAdvancedMemoryControl(true);
settings->set("AdvancedJavaMemoryControl", true);
});
connect(m_ui->maxMemSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), this, &JavaSettingsWidget::updateThresholds);
connect(m_ui->minMemSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), this, &JavaSettingsWidget::updateThresholds);
loadSettings();
onMemoryChange();
updateThresholds();
}
JavaSettingsWidget::~JavaSettingsWidget()
@ -327,43 +283,23 @@ void JavaSettingsWidget::onJavaAutodetect()
}
}
}
void JavaSettingsWidget::onMemoryChange()
void JavaSettingsWidget::updateThresholds()
{
auto sysMiB = Sys::getSystemRam() / Sys::mebibyte;
unsigned int maxMem = m_ui->maxMemSpinBox->value();
unsigned int minMem = m_ui->minMemSpinBox->value();
const QString warningColour(QStringLiteral("<span style='color:#f5c211'>%1</span>"));
if (maxMem >= sysMiB) {
m_ui->labelMaxMemNotice->setText(QString("<span style='color:red'>%1</span>").arg(tr("Your maximum memory allocation exceeds your system memory capacity.")));
m_ui->labelMaxMemNotice->show();
} else if (maxMem > (sysMiB * 0.9)) {
// TODO: where is this colour from
m_ui->labelMaxMemNotice->setText(QString("<span style='color:#f5c211'>%1</span>")
.arg(tr("Your maximum memory allocation is close to your system memory capacity.")));
m_ui->labelMaxMemNotice->setText(warningColour.arg(tr("Your maximum memory allocation is close to your system memory capacity.")));
m_ui->labelMaxMemNotice->show();
} else if (maxMem < minMem) {
m_ui->labelMaxMemNotice->setText(warningColour.arg(tr("Your maximum memory allocation is below the minimum memory allocation.")))
} else {
m_ui->labelMaxMemNotice->hide();
}
m_ui->minMemGBLabel->setText(formatGiBLabel(m_ui->minMemSlider->value()));
m_ui->maxMemGBLabel->setText(formatGiBLabel(m_ui->maxMemSlider->value()));
}
void JavaSettingsWidget::finishAdjustingMinMemory()
{
if (m_ui->minMemSpinBox->value() > m_ui->maxMemSpinBox->value())
m_ui->maxMemSpinBox->setValue(m_ui->minMemSpinBox->value());
}
void JavaSettingsWidget::finishAdjustingMaxMemory()
{
if (m_ui->maxMemSpinBox->value() < m_ui->minMemSpinBox->value())
m_ui->minMemSpinBox->setValue(m_ui->maxMemSpinBox->value());
}
void JavaSettingsWidget::enableAdvancedMemoryControl(bool enabled) {
m_ui->memorySimpleButton->setChecked(!enabled);
m_ui->memoryAdvancedButton->setChecked(enabled);
m_ui->memorySimple->setVisible(!enabled);
m_ui->memoryAdvanced->setVisible(enabled);
}