From 990b16a34a97cb3df9569db6dfc4ffa8250247a7 Mon Sep 17 00:00:00 2001 From: glank Date: Fri, 11 Jul 2025 12:08:59 +0200 Subject: [PATCH 1/2] Add max thread count --- gui/settings.ui | 4 ++-- gui/settingsdialog.cpp | 8 +++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/gui/settings.ui b/gui/settings.ui index 3ead9bad07d..264353cce2d 100644 --- a/gui/settings.ui +++ b/gui/settings.ui @@ -82,12 +82,12 @@ - Ideal count: + Max count: - + TextLabel diff --git a/gui/settingsdialog.cpp b/gui/settingsdialog.cpp index e377c1e5cf2..bab859ddbcf 100644 --- a/gui/settingsdialog.cpp +++ b/gui/settingsdialog.cpp @@ -121,9 +121,9 @@ SettingsDialog::SettingsDialog(ApplicationList *list, const int count = QThread::idealThreadCount(); if (count != -1) - mUI->mLblIdealThreads->setText(QString::number(count)); + mUI->mLblMaxThreads->setText(QString::number(count)); else - mUI->mLblIdealThreads->setText(tr("N/A")); + mUI->mLblMaxThreads->setText(tr("N/A")); loadSettings(); initTranslationsList(); @@ -180,9 +180,7 @@ void SettingsDialog::saveSettings() const void SettingsDialog::saveSettingValues() const { int jobs = mUI->mJobs->text().toInt(); - if (jobs <= 0) { - jobs = 1; - } + jobs = std::min(std::max(jobs, 1), QThread::idealThreadCount()); QSettings settings; settings.setValue(SETTINGS_CHECK_THREADS, jobs); From 966fe1fba0e30cd59eaf60f21f1d411bc8341525 Mon Sep 17 00:00:00 2001 From: glank Date: Fri, 11 Jul 2025 17:57:42 +0200 Subject: [PATCH 2/2] Change job count validation mechanism --- gui/settings.ui | 6 ------ gui/settingsdialog.cpp | 15 ++++++--------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/gui/settings.ui b/gui/settings.ui index 264353cce2d..6db6ec70809 100644 --- a/gui/settings.ui +++ b/gui/settings.ui @@ -65,15 +65,9 @@ 20 - - 009 - - - 3 - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter diff --git a/gui/settingsdialog.cpp b/gui/settingsdialog.cpp index bab859ddbcf..c232ff14c7d 100644 --- a/gui/settingsdialog.cpp +++ b/gui/settingsdialog.cpp @@ -63,7 +63,10 @@ SettingsDialog::SettingsDialog(ApplicationList *list, QSettings settings; mTempApplications->copy(list); + int maxjobs = QThread::idealThreadCount(); + mUI->mJobs->setText(settings.value(SETTINGS_CHECK_THREADS, 1).toString()); + mUI->mJobs->setValidator(new QIntValidator(1, maxjobs, this)); mUI->mForce->setCheckState(boolToCheckState(settings.value(SETTINGS_CHECK_FORCE, false).toBool())); mUI->mShowFullPath->setCheckState(boolToCheckState(settings.value(SETTINGS_SHOW_FULL_PATH, false).toBool())); mUI->mShowNoErrorsMessage->setCheckState(boolToCheckState(settings.value(SETTINGS_SHOW_NO_ERRORS, false).toBool())); @@ -119,11 +122,7 @@ SettingsDialog::SettingsDialog(ApplicationList *list, mUI->mListWidget->setSortingEnabled(false); populateApplicationList(); - const int count = QThread::idealThreadCount(); - if (count != -1) - mUI->mLblMaxThreads->setText(QString::number(count)); - else - mUI->mLblMaxThreads->setText(tr("N/A")); + mUI->mLblMaxThreads->setText(QString::number(maxjobs)); loadSettings(); initTranslationsList(); @@ -179,11 +178,9 @@ void SettingsDialog::saveSettings() const void SettingsDialog::saveSettingValues() const { - int jobs = mUI->mJobs->text().toInt(); - jobs = std::min(std::max(jobs, 1), QThread::idealThreadCount()); - QSettings settings; - settings.setValue(SETTINGS_CHECK_THREADS, jobs); + if (mUI->mJobs->hasAcceptableInput()) + settings.setValue(SETTINGS_CHECK_THREADS, mUI->mJobs->text().toInt()); saveCheckboxValue(&settings, mUI->mForce, SETTINGS_CHECK_FORCE); saveCheckboxValue(&settings, mUI->mSaveAllErrors, SETTINGS_SAVE_ALL_ERRORS); saveCheckboxValue(&settings, mUI->mSaveFullPath, SETTINGS_SAVE_FULL_PATH);