Kactus2
Kactus2 reference guide
Loading...
Searching...
No Matches
ListHelper.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// File: ListHelper.h
3//-----------------------------------------------------------------------------
4// Project: Kactus2
5// Author: Esko Pekkarinen
6// Date: 1.11.2023
7//
8// Description:
9//
10//-----------------------------------------------------------------------------
11
12#ifndef LIST_HELPER_H
13#define LIST_HELPER_H
14
15#include <vector>
16#include <string>
17
18namespace ListHelper
19{
20 template <typename T>
21 std::vector<std::string> listNames(QSharedPointer<QList<QSharedPointer<T> > > container)
22 {
23 std::vector<std::string> names;
24 std::for_each(container->cbegin(), container->cend(), [&names](auto const& item)
25 {
26 names.push_back(item->name().toStdString());
27 });
28 return names;
29 }
30
31 template <typename T>
32 int itemIndex(std::string const& itemName, QSharedPointer<QList<QSharedPointer<T> > > container)
33 {
34 if (container == nullptr)
35 {
36 return -1;
37 }
38
39 const QString name = QString::fromStdString(itemName);
40
41 const auto pos = std::find_if(container->cbegin(), container->cend(), [&name](auto const& item)
42 {
43 return item->name().compare(name) == 0;
44 });
45
46 if (pos == container->cend())
47 {
48 return -1;
49 }
50
51 return std::distance(container->cbegin(), pos);
52 }
53};
54
55#endif // LIST_HELPER_H
std::vector< std::string > listNames(QSharedPointer< QList< QSharedPointer< T > > > container)
Definition ListHelper.h:21
int itemIndex(std::string const &itemName, QSharedPointer< QList< QSharedPointer< T > > > container)
Definition ListHelper.h:32