aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2018-03-28 16:03:11 +0200
committerEike Ziller <eike.ziller@qt.io>2018-04-11 06:42:27 +0000
commitab7960f6cf391fbf650d576eef2467118698c328 (patch)
treed891184630a5591729ba732b92a2ae3143c593ef /src/libs/utils
parent7160b8358980d5d6f246a4e7ac2d70dd195444e9 (diff)
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')
-rw-r--r--src/libs/utils/stringutils.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/libs/utils/stringutils.h b/src/libs/utils/stringutils.h
index 4bd513dc7c9..d07a734a9b3 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