forked from qt-creator/qt-creator
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user