From 157e8c763c10a24cfb24fe5b738ddcf6faa3c3a8 Mon Sep 17 00:00:00 2001 From: elsid Date: Wed, 21 May 2025 22:07:17 +0200 Subject: [PATCH] Show progress dialog for setting content list --- components/contentselector/model/contentmodel.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/components/contentselector/model/contentmodel.cpp b/components/contentselector/model/contentmodel.cpp index 4309850f2d..6f5772986e 100644 --- a/components/contentselector/model/contentmodel.cpp +++ b/components/contentselector/model/contentmodel.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -707,10 +708,14 @@ bool ContentSelectorModel::ContentModel::isLoadOrderError(const EsmFile* file) c void ContentSelectorModel::ContentModel::setContentList(const QStringList& fileList) { + QProgressDialog progressDialog("Setting content list", {}, 0, static_cast(fileList.size())); + progressDialog.setWindowModality(Qt::WindowModal); + progressDialog.setValue(0); + int previousPosition = -1; - for (const QString& filepath : fileList) + for (qsizetype i = 0, n = fileList.size(); i < n; ++i) { - const EsmFile* file = item(filepath); + const EsmFile* file = item(fileList[i]); if (setCheckState(file, true)) { // setCheckState already gracefully handles builtIn and fromAnotherConfigFile @@ -725,7 +730,10 @@ void ContentSelectorModel::ContentModel::setContentList(const QStringList& fileL previousPosition = filePosition; } } + + progressDialog.setValue(static_cast(i + 1)); } + refreshModel(); }