Move Project::makeUnique to Utils

This is more generic than projects

Change-Id: Ifdbc57ff48f9fd4a40e6149ba636e0a55cbac502
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Eike Ziller
2018-03-28 16:03:11 +02:00
parent 7160b83589
commit ab7960f6cf
8 changed files with 33 additions and 29 deletions

View File

@@ -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