#ifndef SCIQLOP_STRINGUTILS_H #define SCIQLOP_STRINGUTILS_H #include "CoreGlobal.h" #include class QString; /** * Utility class with methods for strings */ struct SCIQLOP_CORE_EXPORT StringUtils { /** * Generates a unique name from a default name and a set of forbidden names. * * Generating the unique name is done by adding an index to the default name and stopping at the * first index for which the generated name is not in the forbidden names. * * Examples (defaultName, forbiddenNames -> result): * - "FGM", {"FGM"} -> "FGM1" * - "FGM", {"ABC"} -> "FGM" * - "FGM", {"FGM", "FGM1"} -> "FGM2" * - "FGM", {"FGM", "FGM2"} -> "FGM1" * - "", {"ABC"} -> "1" * * @param defaultName the default name * @param forbiddenNames the set of forbidden names * @return the unique name generated */ static QString uniqueName(const QString &defaultName, const std::vector &forbiddenNames) noexcept; }; #endif // SCIQLOP_STRINGUTILS_H