diff options
author | Eike Ziller <eike.ziller@qt.io> | 2018-03-28 16:03:11 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2018-04-11 06:42:27 +0000 |
commit | ab7960f6cf391fbf650d576eef2467118698c328 (patch) | |
tree | d891184630a5591729ba732b92a2ae3143c593ef /src/libs/utils/stringutils.h | |
parent | 7160b8358980d5d6f246a4e7ac2d70dd195444e9 (diff) | |
download | qt-creator-ab7960f6cf391fbf650d576eef2467118698c328.tar.gz |
Move Project::makeUnique to Utils
This is more generic than projects
Change-Id: Ifdbc57ff48f9fd4a40e6149ba636e0a55cbac502
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Diffstat (limited to 'src/libs/utils/stringutils.h')
-rw-r--r-- | src/libs/utils/stringutils.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/libs/utils/stringutils.h b/src/libs/utils/stringutils.h index 4bd513dc7c..d07a734a9b 100644 --- a/src/libs/utils/stringutils.h +++ b/src/libs/utils/stringutils.h @@ -27,9 +27,11 @@ #include "utils_global.h" +#include <QList> +#include <QString> + QT_BEGIN_NAMESPACE class QJsonValue; -class QStringList; QT_END_NAMESPACE namespace Utils { @@ -86,4 +88,18 @@ QTCREATOR_UTILS_EXPORT QString expandMacros(const QString &str, AbstractMacroExp QTCREATOR_UTILS_EXPORT int parseUsedPortFromNetstatOutput(const QByteArray &line); +template<typename T, typename Container> +T makeUniquelyNumbered(const T &preferred, const Container &reserved) +{ + if (!reserved.contains(preferred)) + return preferred; + int i = 2; + T tryName = preferred + QString::number(i); + while (reserved.contains(tryName)) + tryName = preferred + QString::number(++i); + return tryName; +} + + + } // namespace Utils |