From cdf339856a6cdd373a3a06fb919f4540924a108e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Monta=C3=B1ana=20G=C3=B3mez?= Date: Wed, 13 Mar 2024 17:56:44 +0100 Subject: [PATCH] Fix b_manage error if no results were present --- src/manage/ManageResults.cpp | 14 ++++++++------ src/manage/ResultsManager.cpp | 11 ++++++++--- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/manage/ManageResults.cpp b/src/manage/ManageResults.cpp index a1c9119..5d32828 100644 --- a/src/manage/ManageResults.cpp +++ b/src/manage/ManageResults.cpp @@ -14,12 +14,14 @@ namespace platform { numFiles{ numFiles }, complete{ complete }, partial{ partial }, compare{ compare }, results(ResultsManager(model, score, complete, partial)) { results.load(); - results.sortDate(); - indexList = true; - openExcel = false; - workbook = NULL; - if (numFiles == 0 or numFiles > results.size()) { - this->numFiles = results.size(); + if (!results.empty()) { + results.sortDate(); + indexList = true; + openExcel = false; + workbook = NULL; + if (numFiles == 0 or numFiles > results.size()) { + this->numFiles = results.size(); + } } } void ManageResults::doMenu() diff --git a/src/manage/ResultsManager.cpp b/src/manage/ResultsManager.cpp index 53b75a4..cc15a87 100644 --- a/src/manage/ResultsManager.cpp +++ b/src/manage/ResultsManager.cpp @@ -10,6 +10,7 @@ namespace platform { void ResultsManager::load() { using std::filesystem::directory_iterator; + bool found = false; for (const auto& file : directory_iterator(path)) { auto filename = file.path().filename().string(); if (filename.find(".json") != std::string::npos && filename.find("results_") == 0) { @@ -18,12 +19,16 @@ namespace platform { bool addResult = true; if (model != "any" && result.getModel() != model || scoreName != "any" && scoreName != result.getScoreName() || complete && !result.isComplete() || partial && result.isComplete()) addResult = false; - if (addResult) + if (addResult) { files.push_back(result); + found = true; + } } } - maxModel = std::max(size_t(5), (*max_element(files.begin(), files.end(), [](const Result& a, const Result& b) { return a.getModel().size() < b.getModel().size(); })).getModel().size()); - maxTitle = std::max(size_t(5), (*max_element(files.begin(), files.end(), [](const Result& a, const Result& b) { return a.getTitle().size() < b.getTitle().size(); })).getTitle().size()); + if (found) { + maxModel = std::max(size_t(5), (*max_element(files.begin(), files.end(), [](const Result& a, const Result& b) { return a.getModel().size() < b.getModel().size(); })).getModel().size()); + maxTitle = std::max(size_t(5), (*max_element(files.begin(), files.end(), [](const Result& a, const Result& b) { return a.getTitle().size() < b.getTitle().size(); })).getTitle().size()); + } } void ResultsManager::hideResult(int index, const std::string& pathHidden) {