From 731fefbf8cd494b1a27c9e6d97330cf1122beefb Mon Sep 17 00:00:00 2001 From: Esko Pekkarinen Date: Tue, 7 Nov 2023 07:19:11 +0200 Subject: [PATCH] [CORRECTIVE] Add missing file --- KactusAPI/include/ListHelper.h | 55 ++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 KactusAPI/include/ListHelper.h diff --git a/KactusAPI/include/ListHelper.h b/KactusAPI/include/ListHelper.h new file mode 100644 index 000000000..cb7ae4922 --- /dev/null +++ b/KactusAPI/include/ListHelper.h @@ -0,0 +1,55 @@ +//----------------------------------------------------------------------------- +// File: ListHelper.h +//----------------------------------------------------------------------------- +// Project: Kactus2 +// Author: Esko Pekkarinen +// Date: 1.11.2023 +// +// Description: +// +//----------------------------------------------------------------------------- + +#ifndef LIST_HELPER_H +#define LIST_HELPER_H + +#include +#include + +namespace ListHelper +{ + template + std::vector listNames(QSharedPointer > > container) + { + std::vector names; + std::for_each(container->cbegin(), container->cend(), [&names](auto const& item) + { + names.push_back(item->name().toStdString()); + }); + return names; + } + + template + int itemIndex(std::string const& itemName, QSharedPointer > > container) + { + if (container == nullptr) + { + return -1; + } + + const QString name = QString::fromStdString(itemName); + + const auto pos = std::find_if(container->cbegin(), container->cend(), [&name](auto const& item) + { + return item->name().compare(name) == 0; + }); + + if (pos == container->cend()) + { + return -1; + } + + return std::distance(container->cbegin(), pos); + } +}; + +#endif // LIST_HELPER_H \ No newline at end of file